测试工作中,日常需要用到很多工具。
从工具的来源上看,有接入和自研两种:
一种是利用现有的一些开源或者开发环境自带的一些工具和库,进行二次封装和优化,或者直接使用,涉及到测试的各个环节中。
- 开发环境:Xcode、Android sdk,基于自带的一些组件和服务封装,实现更简洁可视化的界面和操作。
- 接口测试:Postman、Jmeter、python的requests库、腾讯的qtaf。
- UI自动化测试:
- 性能测试:Locust、wrk
- 静态代码检查:Findbugs、pylint 等等。
另一种是结合项目特性和测试内容自研的一些工具。
比如之前做编辑器,编辑器的核心在于文档的排版,函数的计算,以及与其他竞品的兼容,因此工具主要基本上是为编辑器定制的。将文件打开排版完成后,通过与竞品比较的方式,判断排版的准确性。另外将文档打开函数自动计算完后,提取各单元格的值,与基线数值比较的方式,来判断函数计算的准确性。
现在的项目类似于中后台,提供货架商品管理的服务,不同商品的配置信息差别深大,比如图片、标题、其实日期、开售状态等等,因此做了一个平台来一键触发检查信息的配置准确性。自动获取配置后台接口返回的产品的各个配置项信息,与产品提供的标准需求对比,输出结果。这样大大减少了肉眼检查的工作量。
从工具的作用来看,大致可分为三部分,分别是做平台支撑、效率提升以及专项测试。
一部分属于测试日常工作支撑用的平台。比如缺陷管理、用例管理、持续构建的平台。
另一部分属于为减轻项目测试的重复体力劳动。将一些固化的流程和固化的案例,用工具自动化处理,提高测试和工作效率。比如上述所讲的编辑器测试定制工具,即是为了提高测试效率,减轻重复劳动所做。
还有一部分,是辅助专项测试的。比如测试性能、兼容、电量等等。
从工具运行时机来讲,可以在项目中的各个环节去使用。
比如daily run,Monk