1.1 自动化测试的意义
什么是自动化测试?
简单讲,自动化测试就是通过编写代码,运行程序,完成需要手工需要做的软件测试任务。
一般的测试对象是计算机软件,包括但不限于Windows应用,web应用,server服务等。
自动化测试的优势:
1. 可重复
一旦编写好自动化测试脚本或者测试工具,便可以重复使用,使得我们可以避免繁琐重复的手工测试。
2. 可靠性
手工测试在一定条件下存在不确定性,偶尔会出现漏测或者误判的情况,但是自动化的预期输入和输出的确定性,可以弥补此类缺陷。
3. 速度快,时间自由
自动化测试的执行速度比人类快得多;而且不受时间、地点、人员、任务量的限制。
比如说测试脚本可以随时执行,设置定时任务,脚本就可以在下班后执行。
4. 可编程
自动化测试可以完成一些手工不能完成的测试任务,例如性能测试。
自动化测试的劣势:
1.前期需要投入额外的资源
2.要求测试人员要有编码能力
3.对项目及系统稳定性要求高
1.2 自动化测试的分类
单元测试自动化
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作,主要由程序员(部分公司会有白盒测试工程师)来完成。
UI测试自动化
基于Web UI或者客户端应用界面的自动化测试,通过自动化测试脚本,操作UI界面,模拟手工操作进行功能测试。
API接口测试自动化
基于应用程序的接口,使用自动化测试工具,模拟客户端发送请求,主要关注接口的输入和输出。
App移动应用测试自动化
APPUI自动化测试范畴:基于App UI的自动化测试,通过测试工具,模拟手工操作移动应用APP的测试。
性能测试范畴:APP性能测试,主要关注资源消耗,页面加载速度,崩溃率等。
性能测试
性能测试也是自动化测试的一种。
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
1.3 自动化测试的使用范畴
什么情况下适合做自动化测试?
自动化测试脚本的编写和维护成本相对较高,从ROI来讲,自动化脚本的使用率越高,自动化测试的价值越大。
在测试用例库中,执行频率越高的用例,编写自动化测试脚本的价值越大。
此外,稳定的产品,较少的需求变更也是做自动化测试的基础。
哪些业务/类型需要做自动化?
产品的核心流程、关键业务
回归测试
冒烟测试
数据驱动测试
压力测试
何时适合开展自动化测试?
在项目中,项目迭代上线后不会有太大变动的功能模块时;
在项目中,项目上线前含有数据驱动的重复性测试工作时;
自动化测试脚本执行是在执行冒烟测试或者回归测试时,具体的执行场景,需要根据项目的实际情况而定。