自动化测试的现状究竟如何呢?其实就目前来说,自动还测试还远远不能达到完全不需要测试工程师干预的程度。我们都知道,软件测试可以被划分成软件测试需求、软件测试计划、软件测试设计、软件测试执行和软件测试评估总结这几个阶段,自动化测试仅仅能够在软件测试设计、执行和评估总结的阶段发挥有限的作用,因此,我们通常把测试自动化理解为“测试的部分过程的部分自动化”
那么,测试自动化究竟是什么呢?要回答这个问题,我们先看看“测试自动化不是什么”。
测试自动化不是录制回放——更准确的说,测试自动化不仅仅是录制回放;通过录制回放方式的确可以进行一些简单的自动化测试工作,但这种纯粹的录制回放存在相当多的问题——首先是对结果的验证方式,纯粹的录制回放缺乏对结果的验证支持;其次,如果有多组不同的数据需要进行测试,纯粹的录制回放也很难应付。
测试自动化不仅仅是测试工具的应用——一说起测试自动化,很多人头脑中立刻反映出来的就是测试工具,当然,测试自动化一定需要工具的支持,但测试自动化不仅仅是测试工具的堆积,就好像在原始社会,有了汽车,那也不能就说明进入了现代社会,测试自动化是一个系统的工程。
测试自动化不是自发的冲动——在有些组织中,测试自动化是一些测试工程师自发的行为,甚至这些组织还会认为,只要这些工程师足够聪明,他们就能逐渐鼓捣出一个适合公司的自动化测试体系来,这种认识显然是不对的。
测试自动化不是发现问题的最佳手段——很容易理解,由于测试自动化是建立在手工测试的基础上的,因此测试自动化最合适的是用在验证性质的回归测试阶段,而不能指望它去发现最多的错误。
因此,我们可以明显地看到,测试自动化具有明显的约束。那么,测试自动化具有这么多的约束,那么它到底能做什么呢?接下来我们就看看“真实的测试自动化及发展趋势“。
自动化测试真正可以做的事情包括:“减少测试阶段的执行工作量”——但必须说明的是,自动化测试在减少测试阶段的执行工作量的同时,又增加了测试设计和开发的工作量。自动化测试可以减少执行过程中的人为出错的可能性;能够在某些人工无法达到的测试——例如性能测试——中发挥作用,以及辅助进行测试管理。
要在组织内实现测试的自动化,就需要建立自动化测试体系。自动化测试体系是我们经常能够听到的一个概念,那么,它究竟是什么呢?简单的说,自动化测试体系是指适用某种环境的测试工具、过程、人员结构和方法的集合。特别要强调的是,自动化测试体系既不单指某种工具,也不仅仅指某种测试技术,它是工具、过程、人员和方法的组合。
过程是测试自动化的核心,没有过程,我们的自动化测试就没有了“骨架”,过程中关注了测试自动化中的全部因素:工具、资源和方法,过程是将这些因素合理组织起来的桥梁。
自动化测试工具是自动化测试的重要组成部分,但光有工具是没有办法建立起组织的自动化测试体系的。很多工具厂商往往会宣称“我的工具就是一个完整的自动化测试体系”,但其实,这种体系仅仅是指一个工具体系,而不是马上能够为企业带来效益的体系,任何工具都必须在过程的指导下才能发挥其作用。
另一方面,要在组织内引入自动化测试,适应于自动化测试的组织结构是不可或缺的。有些组织对自动化测试的认识有误解,以为要在企业做测试自动化,就必须将全部的测试工程师都变成自动化测试工程师。其实,自动化测试工程师的技能要求更接近开发工程师,需要有较强的设计、编码能力,而对一个组织来说,除了自动化测试工程师,还需要测试业务和设计人员、手工测试人员。一个建议的比例是各占1/3。
要在一个组织内建立自动化测试的体系是一件很有挑战性的工作,我经历过一些组织的自动化测试尝试过程,有些成功了,有些失败了。这些成功和失败的经历也给我了不少的经验和教训,我希望通过我的经验为大家指出企业自动化测试尝试过程中的有效方法和陷阱。
文章来源于领测软件测试网 https://www.ltesting.net/