前文讲到自动化测试的概念,今天我们来谈谈自动化测试的意义,也即为什么要做自动化测试。
通过观察业界的自动化测试实践,总结有大致这么几个点:
一 . 它可以缩短测试周期,提高效率
前两天听罗辑思维,讲到一个例子,有一位朋友的女儿刚刚学会说话,就接管了他的iPad,还没怎么学会走路,就可以用iPad里的App画画,并操作一些复杂的任务。有一天,朋友将一张打印出来的照片放在咖啡桌上。他注意到女儿走上前去,努力拖放照片想使它变大。她尝试了几次,都没有成功,然后困惑地看着他:“爸爸,坏了。”
人类已经养成了一种做一件事情能够得到反馈的习惯,并且这个趋势会继续下去,并且反馈速度越快越好。就像我们的工资能否变为按天来发或者按照每小时来发,这样人类的工作是否更加有干劲呢?
软件开发中的人们也希望写好代码快速得到反馈,越快越好,靠手工测试验证,反馈速度是无法接受的,一个转测试版本测试1周甚至2,3周,人们已经没有耐心了,能否有什么办法在1小时,5分钟,甚至秒级得到反馈,自动化测试是一种较好的解决办法,充分利用机器,集群替代人工,缩短测试周期,快速反馈结果。
二 . 避免人为出错 说到自动化测试,与之对应的就是手工测试,所谓“人非圣贤,孰能无过”,传统的手工测试很大部分依赖于人,简单概括起来出错的可能性会有:
- 用例执行方法出错
- 输入数据出错
- 用例执行步骤出错
- 测试报告数据出错
- 忘了执行某些用例
- 忘了设置预置条件
- 错误的理解被测系统的行为
通过实现自动化,可以避免出现这些错误,同时人类可以把精力投入到更有个价值的工作中。
三. 测试信息存储 自动化测试主要通过自动化脚本实现,和传统的手工用例相比,脚本中可以记录测试点,测试拓扑图,测试设计思路等信息,是非常理想的测试信息存储处,即“脚本体现思路”。
同时带来的好处是新人接收测试时,可以快速掌握已测试点,因为可以通过运行了解测试。进而如果对待测试用例像对待代码一样,做好版本管理,将达到测试可回溯的目的。
四. 轻易获取覆盖率 在较好的自动化框架下,测试执行完自动化脚本,可以轻易的获取到代码覆盖率,进而根据覆盖情况分析,进行测试用例补充。
五. 其他 比如:自动生成清晰的测试报告,定时执行测试套,数据驱动测试的测试套重用等。
最后, 自动化测试增强软件人员的幸福愉悦感。