万物存在即合理,自动化测试能不断地发展至今,足以证明其在测试领域中有着举足轻重的地位,能切实地帮助项目进度的推动、提高项目的质量和协助测试人员提高工作效率。那么自动化测试究竟有何功能呢?这里归纳了最重要的几点并予以分析。
● 回归测试更方便、可靠。通常来说,这是自动化测试最主要的任务和特点,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的业务流程操作和测试用例是预先完全设计好的,预期结果也是完全在项目人员掌握之中的,将回归测试交给计算机自动运行,可以极大提高测试效率,缩短回归测试时间。这里需要强调一点,上述说的程序修改比较频繁指的是新功能的不断加入,而老功能的逻辑是不变或者很少变化的,不是指整个程序全部或大批量地改动,因为这样是违反自动化测试原理的,在下文也会有类似的讲解。
● 可运行更多、更繁琐的测试,且快速、高效。自动化测试的一个明显好处是,可以在较少的时间内运行更多的测试。我们知道,有很大一部分业务功能由于业务逻辑极其繁琐(暂时不说有多复杂),使用手工测试往往耗费大量的时间,测试1次、2次、3次可以,但是,如果测试10次以上或者更多呢?当一个测试人员测试同一个业务功能10次以上,几乎可以断定,没有一个测试人员会继续耐心地测试下去。所以,此时自动化测试就能发挥作用,自动化测试的耐心是无限大的,而且计算机的执行速度远比人工快!
● 可执行一些对于手工测试来说相当困难或根本做不到的测试。比如,对于大量用户的测试并发,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户并发点击某一功能,从而达到测试的目的。再比如,人工不可能24小时不眠不休地进行测试,但是计算机则不用休息。当然,类似的例子还有很多,无法全部列举出来。
● 更好地利用资源,使资源的使用更有价值。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动化测试,仅适合于手工测试,将可自动化测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。在引入自动化测试后,测试人员的工作很大一部分可以交给计算机,而自己则解放出来,将精力投入新功能或者测试更深的业务逻辑,争取发现更深层次的缺陷,能做到这些,自动化测试可以说功不可没。
● 具有一致性和可重复性的特点。由于测试是机器自动执行的,每次测试的结果和执行的内容与操作的一致性是可以得到保障的,从而达到测试可重复的效果。机器可以按照相同的轨迹不断地执行测试并丝毫没有差错(即使错了也可以自动解决),但是人不能!
● 自动化测试脚本完全具有复用性。由于自动化测试通常以脚本的方式来实现,这样在不同的版本之间,就有可能只需要做少量的维护甚至不做任何修改,实现在不同的测试版本中使用相同的测试脚本执行相同的测试用例。
● 使软件更有信任度。由于测试是由计算机自动代劳的,所以,不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了具有说服力的自动化测试后,软件的信任度一定会大大增加。
● 多环境下测试。我们知道,一个系统往往会被要求能支持各种不同的环境并稳定运行,但是这么多不同的环境,比如常用浏览器有IE6、IE7、IE8、FireFox等,系统有Windows 2003、Windows XP、Windows Vista、Windows 7等,甚至还有杀毒软件,如卡巴斯基、360、诺顿等,那么多的环境组合,如果每一种环境组合我们都需要花人力、物力去把功能测试一遍的话,估计研发周期至少得增加10倍!在这种情况下,自动化测试又可以完全发挥其优势与作用了,由计算机去代劳,在不同的环境组合中执行测试。