Selenium测试实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 什么是自动化测试

随着软件测试行业的不断壮大,自动化测试已经不是新的概念,对自动化测试的要求也越来越高。

自动化测试就是把手工测试转化成用机器、软件、程序来测试软件产品的过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。这个过程会带来大量工作的重复,并且在时间紧迫的情况下会遗漏测试范围。为了节省人力、时间或资源,提高测试效率,保证测试范围,便引入了自动化测试的概念。

自动化测试完全是高效的吗?什么情况下选择自动化测试呢?

自动化测试并不是完全高效的,有时手工测试比自动化测试更高效。比如,应用程序在最近时期变化频繁,并且项目周期短,自动化脚本需要大量的修改,也没有足够的时间运行自动化脚本,那么这时使用手工测试往往更加高效。

然而,测试工具对于一个大型的长期项目是非常有利的,能够充分提高工作效率,减少工作量。

决定项目是否采用自动化测试,必须对软件项目的整体开发过程进行全面分析,用经验和数据来说明是否适合使用自动化测试工具。通常要关注以下几个方面。

1.需求变更有计划性,并且频率不高

测试脚本需要一个稳定的脚本,它的稳定性直接决定了自动化测试的维护成本。如果需求变更没有计划性,或者计划性混乱,会导致测试脚本的维护没有计划性,计划性混乱,这样脚本的利用率和效果都会大打折扣。如果需求变更频率很高,那么测试脚本的维护就会很频繁,脚本的维护本身就是一个代码开发的过程,需要修改、调试的过程,必要的时候还要修改自动化测试的框架,由此带来的成本不低于利用其自动化测试脚本而降低工作量的成本,这样自动化测试便是没有意义并且失败的。

一个项目可以采用自动化和手工测试配合的方式。项目中相对稳定的模块,其测试采用自动化测试;而需求变化很大的模块则采用手工测试。这样能够使测试脚本的维护成本得到保障,也能使项目的测试成本降低。

2.项目周期长,资源丰富

自动化测试需要确定需求、框架设计、编写与调试等步骤,等同于一个测试软件的开发过程,需要较长时间来完成。如果项目的周期不足够长,资源不足够丰富,就没有足够的时间、资源去支持这样的一个过程,自动化测试自然也就无适用之处。因此项目周期足够长、资源足够丰富是决定是否启用自动化测试的关键条件。

3.评估重复使用自动化测试脚本的过程、时间

自动测试脚本的生产过程是需要足够长的时间和足够丰富的资源来支持的,如果花费如此之多的时间和资源开发出来的自动化测试脚本,重复使用率很低,或者说根本不能重复使用,那么其所耗费的成本远远大于节省的成本。自动化测试变成了测试人员个人学习之作,而未能真正产生效益、节省测试成本。

4.项目测试过程中,回归测试轮次比较多,功能点多,时间比较短

回归测试是规范测试流程中的一个必需的部分,但有的项目回归测试轮次很少(两轮以下),功能点也少,这样的回归测试,本身成本就不高,甚至整个测试成本不如测试脚本需求分析的成本高,这样的测试就不需要进行自动化测试;如果整个项目的功能点多,回归测试的轮次也多,那么进行自动化测试是非常必要的,而且当时间紧迫不能保证回归测试的测试范围时,测试脚本不但在时间上占有优势,在测试范围上也有它自身的优势,这样的情况自动化测试就是必不可少的。

5.其他情况

有些测试是手工测试无法完成的,需要投入大量的时间和人力等,这样的测试是要进行自动化测试的,例如性能测试、配置测试、大数据量输入测试等。