- 精通软件性能测试与LoadRunner实战(第2版)
- 于涌 王磊 曹向志 高楼 于跃
- 1368字
- 2025-02-21 22:31:29
1.7 测试自动化的意义
软件测试的工作量很大,据统计,测试时间会占到总开发时间的20%~40%,一些可靠性要求非常高的软件,测试时间甚至占到总开发时间的60%。但在整个软件测试过程中,极有可能应用计算机进行自动化测试的工作,原因是测试的许多操作是重复性的、非创造性的、需要细致注意力的工作,而计算机最适合于代替我们去完成这些任务。
测试自动化是通过开发和使用一些工具自动测试软件系统,特别适合于测试中重复而烦琐的活动,其好处是显而易见的。
(1)可以使某些测试任务比手工测试执行的效率高,并可以运行更多更频繁的测试。
(2)对程序的新版本可以自动运行已有的测试,特别是在频繁地修改许多程序的环境中,一系列回归测试的开销应是最小的。
(3)可以执行一些手工测试困难或不可能做的测试,例如,对于200个用户的联机系统,用手工进行并发操作的测试几乎是不可能的,但自动测试工具可以模拟来自200个用户的输入。客户端用户通过定义可以自动回放的测试,随时都可以运行用户脚本,即使是不了解整个商业应用复杂内容的技术人员也可以胜任。
(4)更好地利用资源。将烦琐的任务自动化,如重复输入相同的测试输入,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来,投入更多精力设计更好的测试用例。另外,可以利用整夜或周末空闲的机器执行自动测试。
(5)测试具有一致性和可重复性。对于自动重复的测试可以重复多次相同的测试,如不同的硬件配置、使用不同的操作系统或数据库等,从而获得测试的一致性,这在手工测试中是很难保证的。
(6)测试可以重用,而且软件经过自动测试后,人们对其信任度会增加。
(7)一旦一系列测试已经被自动化,则可以更快地重复执行,从而缩短了测试时间,使软件更快地推向市场。
总之,测试自动化通过较少的开销可以获得更彻底的测试,并提高产品的质量。但是,在实际使用自动化测试的过程中,还存在一些普遍的问题。
(1)人们乐观地期望测试工具可以解决目前遇到的所有问题,但无论工具从技术角度实现得多么好,都满足不了这种不现实的期望。
(2)如果缺乏测试实践经验,测试组织差,文档较少或不一致,测试发现缺陷的能力较差,在这种情况下采用自动测试并不是好办法。
(3)人们容易期望自动化测试发现大量的新缺陷。测试执行工具是回归测试工具,用于重复已经运行过的测试,这是一件很有意义的工作,但并不是用来发现大量新的缺陷。
(4)因为测试软件没有发现任何缺陷并不意味着软件没有缺陷,测试不可能全面或测试本身就有缺陷,但人们在使用自动化测试过程中会缺乏这种意识。
(5)当软件修改后,通常需要对修改部分或全部测试,以便可以重新正确地运行,对于自动化测试更是如此。测试维护的开销打击了测试自动化的积极性。
(6)商用测试执行工具是软件产品,由销售商销售,它们往往不具备解决问题的能力和有力的技术支持,因此给用户带来失望,认为测试工具不能很好地测试。
(7)自动化测试实施起来并不简单,必须有管理支持及组织艺术,必须进行选型、培训和实践,并在组织内普遍使用工具。
测试自动化具有局限性,不可能取代手工测试。手工测试可以比自动测试发现更多的缺陷,而测试自动化对期望结果的正确性有极大的依赖性。测试自动化并不能改进测试有效性,并对软件开发有一定的制约作用,测试工具没有创造性,灵活性也较差。然而,测试自动化可以大大提高软件测试的质量。