目录
1. 自动化测试
为何要开展自动化测试?手工测试与自动化测试相比孰优孰劣呢?本节针对该问题展开讨论与讲解。
测试工作中,往往需要面对很多问题。经常可以听到测试工程师的抱怨,其抱怨内容大体如下:
-
重复、频繁的工作太多;
-
同样的工作,人工重复做的次数越多,抵触情绪较大;
-
测试工作任务重,测试周期短,工作压力大;
-
创新性的工作太少,无法体现自己的能力与自己的人生价值;
-
测试结果有时需要精确到秒,手工测试来做太难了。
那如何将测试工程师从繁杂的测试工作中解脱出来?如何体现测试工程师的价值,发挥测试工程师的特长?又如何将测试结果精确到秒呢?
上述问题均可以通过自动化测试来解决,这样一方面提高了测试的工作效率,另一方面可以通过自动化测试提升测试工程师的价值,改变大部分人对测试工作的观点。
1. 1. 自动化测试定义
既然自动化测试可以弥补手工测试的一些不足,并能体现测试工程师的价值,那何为自动化测试?它又具备哪些特性?
自动化测试即借助于测试工具、依照测试规范,从局部或全部代替人工进行测试以及提高测试效率的过程。其具备如下主要特征:
-
自动测试过程是通过模拟人工操作,完成对被测试系统的输入,并且对输出进行检验的过程。
-
自动测试是由软件代替人工操作,对被测试系统的GUI发出指令,模拟操作,完成自动测试过程。
相对于手工测试,自动化测试可概括为如下几点:
-
优化成本:降低劳动量,降低测试成本;
-
可靠:提高测试的全面性,提高测试精确度;
-
快速:加快测试速度;
-
规范化:提供规范化的测试流程;
-
可重用:提高测试的重用性。
1.2 何时开展自动化测试
什么时候适合开展自动化测试呢?
测试工作中,被测软件(或系统)需要多个版本的迭代。根据公司(或项目)的不同,版本发布的时间也存在差异。
开展自动化测试之前,首先需依照测试用例,对被测功能模块展开手动测试。当手动测试执行通过后,使用自动化测试工具,将手动测试的操作过程录制下来,并将正确的结果进行保存(被称为期望结果)。由于自动化测试工具记录的为关键性功能模块,被测软件(系统)的下一版本发布后,该模块仍应进行测试。
在软件新版本的测试中,启动自动化测试工具,运行前面录制好的自动化测试脚本。对比实际运行后的结果与预期结果,如不一致,则确定为缺陷;如一致,则认为该功能模块在新的版本中测试通过。
到此,可以得出一条结论:自动化测试,适合在被测软件(或系统)版本相对稳定后开展。如软件版本相对不太稳定,则会造成使用自动化测试工具录制的脚本在新的版本中回放失败,这样既浪费人力,又浪费时间。