《精通软件性能测试与LoadRunner最佳实战》—第1章1.7节测试自动化的意义

  1. 云栖社区>
  2. 博客>
  3. 正文

《精通软件性能测试与LoadRunner最佳实战》—第1章1.7节测试自动化的意义

异步社区 2017-05-02 13:05:00 浏览729
展开阅读全文

本节书摘来自异步社区《精通软件性能测试与LoadRunner最佳实战》一书中的第1章1.7节测试自动化的意义,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 测试自动化的意义
精通软件性能测试与LoadRunner最佳实战
软件测试的工作量很大,据统计,测试时间会占到总开发时间的20%~40%,一些可靠性要求非常高的软件,测试时间甚至占到总开发时间的60%。但在整个软件测试过程中,极有可能应用计算机进行自动化测试的工作,原因是测试的许多操作是重复性的、非创造性的、需要细致注意力的工作,而计算机最适合于代替我们去完成这些任务。

测试自动化是通过开发和使用一些工具自动测试软件系统,特别适合于测试中重复而烦琐的活动,其好处是显而易见的。

(1)可以使某些测试任务比手工测试执行的效率高,并可以运行更多更频繁的测试。

(2)对程序的新版本可以自动运行已有的测试,特别是在频繁地修改许多程序的环境中,一系列回归测试的开销应是最小的。

(3)可以执行一些手工测试困难或不可能做的测试,例如,对于200个用户的联机系统,用手工进行并发操作的测试几乎是不可能的,但自动测试工具可以模拟来自200个用户的输入。客户端用户通过定义可以自动回放的测试,随时都可以运行用户脚本,即使是不了解整个商业应用复杂内容的技术人员也可以胜任。

(4)更好地利用资源。将烦琐的任务自动化,如重复输入相同的测试输入,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来,投入更多精力设计更好的测试用例。另外,可以利用整夜或周末空闲的机器执行自动测试。

(5)测试具有一致性和可重复性。对于自动重复的测试可以重复多次相同的测试,如不同的硬件配置、使用不同的操作系统或数据库等,从而获得测试的一致性,这在手工测试中是很难保证的。

(6)测试可以重用,而且软件经过自动测试后,人们对其信任度会增加。

(7)一旦一系列测试已经被自动化,则可以更快地重复执行,从而缩短了测试时间,使软件更快地推向市场。

总之,测试自动化通过较少的开销可以获得更彻底的测试,并提高产品的质量。但是,在实际使用自动化测试的过程中,还存在一些普遍的问题。

(1)人们乐观地期望测试工具可以解决目前遇到的所有问题,但无论工具从技术角度实现得多么好,都满足不了这种不现实的期望。

(2)如果缺乏测试实践经验,测试组织差,文档较少或不一致,测试发现缺陷的能力较差,在这种情况下采用自动测试并不是好办法。

(3)人们容易期望自动化测试发现大量的新缺陷。测试执行工具是回归测试工具,用于重复已经运行过的测试,这是一件很有意义的工作,但并不是用来发现大量新的缺陷。

(4)因为测试软件没有发现任何缺陷并不意味着软件没有缺陷,测试不可能全面或测试本身就有缺陷,但人们在使用自动化测试过程中会缺乏这种意识。

(5)当软件修改后,经常需要对修改部分或全部测试,以便可以重新正确地运行,对于自动化测试更是如此。测试维护的开销打击了测试自动化的积极性。

(6)商用测试执行工具是软件产品,由销售商销售,它们往往不具备解决问题的能力和有力的技术支持,因此给用户带来失望,认为测试工具不能很好地测试。

(7)自动化测试实施起来并不简单,必须有管理支持及组织艺术,必须进行选型、培训和实践,并在组织内普遍使用工具。

测试自动化具有局限性,不可能取代手工测试。手工测试可以比自动测试发现更多的缺陷,而测试自动化对期望结果的正确性有极大的依赖性。测试自动化并不能改进测试有效性,并对软件开发有一定的制约作用,测试工具没有创造性,灵活性也较差。然而,测试自动化可以大大促进软件测试的质量和产品化。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

网友评论

登录后评论
0/500
评论
异步社区
+ 关注