软件测试一般是由测试人员执行的,如果由机器来代替人执行软件测试,那么这种测试就叫自动化测试。例如,由计算机代替人来单击被测试软件的界面,执行一系列操作并进行验证。
在各种测试中,都可以引入自动化测试。
通过执行自动化测试,可以节省大量的人力、时间或硬件等资源,同时也能大大提高测试效率。
(相关资料图)
当然,这听起来很好,但如果要由机器代替人来执行软件测试,就得开发相应的自动化测试代码。开发自动化测试代码也是需要人力、时间或硬件等资源的。因此,在资源有限的情况下,必须对软件开发过程进行分析,观察哪些地方适合使用自动化测试。使用自动化测试通常需要同时满足以下条件。
(1)软件需求变动不频繁
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改和调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。可以相对稳定的模块进行自动化测试,而变动较大的仍采用手工测试。
(2)项目周期足够长。
自动化测试的过程包括自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写和调试等,这个过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便也无从谈起。
(3)自动化测试脚本可重复使用。
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试,例如性能测试、配置测试、大数据量输入测试等。