一、什么是自动化测试
首先自动化测试技术,是以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。把以人为驱动的测试转化为机器执行的一种过程。目的是为了节省人力,时间或硬件资源,提高测试效率。其次自动化测试涵盖各种各样的测试种类如:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,压力测试,GUI测试,安全性测试等...
二、自动化测试的优势
回归测试更方便,可靠:通常来说,这是自动化测试最主要的任务和特点,特别是在程序修改比较频繁时(新功能的不断加入,老功能逻辑不变或很少变的),效果是非常明显的。由于回归测试的业务流程操作和测试用例是预先完全设计好的,预期结果也是完全在项目人员掌握之中,将回归测试交给计算机自动运行,可以极大提高测试效率,缩短回归测试时间。
可运行更多更繁琐的测试,且快速高效:自动化测试明显的一个好处就是可以在较少的时间内运行更多的测试,有很大一部分业务功能由于业务逻辑极其繁琐,使用手工测试的话要耗费很多时间,测试次数不是太多的话还可以接受,但是要求测试次数多了的话手工测试人员会没有耐心,而自动化测试的耐心是无限大的,并且计算机的执行速度远比人工快。
可执行相对于手工来说相当困难或跟本做不到的测试:比如对于大量用户的并发测试,不可能让足够多的测试人员同时进行,但是可以通过自动化测试模拟很多用户同时并发点击某一功能,从而达到测试的目的,再例如人工不可能二十四小时不休息的进行测试,但是计算机则不用休息....等。
更好的利用资源,使资源的使用更有价值:将更繁琐的任务自动化,以及提高准确性和测试人员的积极性,将测试人员解脱出来投入更多的精力设计更好的测试用例,有些测试不适合自动化测试,手工测试人员可专注于手工测试部分,或将测试人员精力投入新功能或者测试更深的业务逻辑中去争取发现更深层次的缺陷。
具有一致性和可重复性:由于机器是自动执行的,每次测试的内容与操作的一致可以得到保障,从而达到测试可重复的效果 ,机器可以按照相同的轨迹不断的执行测试并不会发生差错,而手动测试很难或者不可能做到这一点。
自动化脚本完全具有复用性:由于自动化测试通常以脚本的方式来实现,这样在不同的版本之间,就有可能只需要做少量的维护甚至不用做任何修改,实现在不同版本中使用相同的测试脚本执行相同的测试用例。
使软件更有信任度:由于测试是由计算机代劳的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量,一旦软件通过了具有说服力的自化测试后,软件的信任度会大大增加。
多环境下测试:一个系统往往会被要求能支持各种不同的环境并稳定运行,但是这么多不同的环境如常用的浏览器:IE6,IE7,IE8,FireFox等,系统有:windows2003,windowsXP,windows Vista,windows7等,甚至还有杀毒软件 ,那么多环境组合,如果每一种环境组合都来人力完成,那么研发周期得成倍增加,而自动化可以发挥其优势与作用,由计算机代劳,在不同的环境组合中运行。