工欲善其事,必先利其器,高效开展软件测试活动,除了测试工程师工作中认真敬业之外,还应有优秀的测试工具辅助其工作。测试工具能提高测试效率,辅助实现测试目标,提升个人的技能。

下面简单介绍一下目前业内常用的测试工具:

01 、测试管理工具

软件测试活动开展过程中,将会涉及到大量的测试活动管理及资源文档管理,因此,拥有一个完善、有效的测试管理工具,将会给软件测试工作带来事半功倍的效果。目前业内应用较为广泛的两款测试管理工具,分别是HP的Application Lifecycle Management(简称ALM)和国内开源的项目管理软件-禅道。

1. ALM

ALM,全称Application Lifecycle Management,应用程序生命周期管理软件,顾名思义,该产品用于软件研发活动的整个生命周期管理。有HP公司生产,其早期版本分别是Test Direct及Quality Center。

2. 禅道

禅道是国内第一款开源的项目管理软件,集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程,如图1所示。

软件测试工程师都在用哪些测试工具?

图1

测试工程师在禅道平台更多应用的是“测试”模块,测试模块中包括用例、用例库、Bug、报告等功能,与ALM类似,从需求分析、用例设计、用例执行、缺陷管理、报告输出完整实现了软件测试流程管理。

02、 单元测试工具

软件测试理论中有一个观点:单元测试大约能发现80%的缺陷。意味着如果在单元测试阶段投入更多的精力,则可最大程度的降低软件系统中的缺陷。

由于目前大多数企业级应用开发语言基本都是Java,故而行业内应用较多的单元测试工具为Junit及TestNG。

1. JUnit

传统的单元测试,需要针对被测对象再重新编写调用断言程序,从而验证被测函数或类的正确性,项目规模小的时候测试人员尚能承受,随着项目的不断复杂化,工作量呈数量级增加,测试人员需要投入更多的精力,而企业也需要投入更多的成本,而Junit的出现,解决了之前的一切问题,使得单元测试变得非常简单,易于实施。

2.TestNG

TestNG与JUnit一样,属于Java语言中的一个测试框架,TestNG与JUnit相比功能更为强大,JUnit目前仅能实现单元测试,并且在编程语法上具有一定的局限性,而TestNG更为简洁,同时支持多组测试Case及更多的测试应用,如功能测试、自动化测试等。。

03、 接口测试工具

系统间接口,通常可以利用为两个不同的系统间,如第三方登录、第三方支付等。这类接口测试相对较难,需要提供较为完善的接口文档。目前业内主流接口测试工具主要有Jmeter、Postman、soapUI等几种,本节介绍相对常用的Jmeter及Postman。

1. Jmeter

Jmeter,是Apache组织开发的基于Java语言的压力/负载测试工具。与LoadRunner一样,用于对软件做压力/负载测试,随着应用范围的不断扩大及功能不断升级,越来越多的测试人员利用Jeter实施接口自动化测试。Jmeter提供断言功能,便于测试人员开发脚本验证被测对象的返回结果是否与预期结果一致。

Jmeter除了可以实现接口功能测试之外,实际上它的主营业务是负载测试。通过设置线程池、参数化、关联等类似于LoadRunner的策略设置后,同样可以实现性能测试。

2. Postman

对于没有UI界面,纯粹是数据传递或业务逻辑处理的接口API时,利用Postman也是个不错的选择。

Postman在测试App接口方面具有一定的优势,App应用开发初期可能涉及大量的接口数据处理,可利用Postman快速构建请求,设置验证点,在Test模块中实现返回结果与预期结果的比较,从而实现测试目的。

04、自动化测试工具

自动化测试,利用自动化测试工具,通过录制/编程方式实现测试活动,发现被测对象存在的缺陷,从而替代手工测试活动。自动化测试不局限于某个具体测试阶段,也不局限被测对象的类型,只要满足自动化测试的必要条件即可实施。

根据被测系统的结构形式,目前业内主要有两款开源的基于UI层面的自动化测试工具应用较为广泛,一是测试Web结构的Selenium,二是测试移动应用结构的Appium。

1. Selenium

Selenium直接运行于浏览器中,更真实的模拟了用户的业务行为,验证被测对象的功能表现及在不同浏览器中的兼容性特性。与传统的自动化测试工具不同,Selenium没有独立的操作UI界面,支持更多的编程语言,如Java、Python等,更为简洁与快捷,易于测试工程师掌握应用。

Selenium实际上不是一个测试工具,而是一个工具集,其主要由三个核心组件构成:Selenium IDE、Selenium RC(Remote Control )及Selenium Grid。

2. Appium

Selenium是目前业内应用较多的Web自动化测试工具,而开源的移动应用自动化测试工具,则多采用Appium。

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持OS、Android。Appium使用WebDriver的json wire协议,驱动Apple系统的UIAutomation库及Android系统的UIAutomator框架。

05、性能测试工具

1 .LoadRunner

LoadRunner是一种评测软件系统性能的负载/压力测试工具。测试工程师利用该工具模拟成千上万个终端用户实施并发负载查找问题,并利用其自带的Analysis模块进行确认问题。LoadRunner适用于各种体系架构的软件系统性能测试,利用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。