自动化测试真正可以做的事情包括:“减少测试阶段的执行工作量”——但必须说明的是,自动化测试在减少测试阶段的执行工作量的同时,又增加了测试设计和开发的工作量。自动化测试可以减少执行过程中的人为出错的可能性;能够在某些人工无法达到的测试——例如性能测试——中发挥作用,以及辅助进行测试管理。
要在组织内实现测试的自动化,就需要建立自动化测试体系。自动化测试体系是我们经常能够听到的一个概念,那么,它究竟是什么呢?简单的说,自动化测试体系是指适用某种环境的测试工具、过程、人员结构和方法的集合。特别要强调的是,自动化测试体系既不单指某种工具,也不仅仅指某种测试技术,它是工具、过程、人员和方法的组合。
过程是测试自动化的核心,没有过程,我们的自动化测试就没有了“骨架”,过程中关注了测试自动化中的全部因素:工具、资源和方法,过程是将这些因素合理组织起来的桥梁。
自动化测试工具是自动化测试的重要组成部分,但光有工具是没有办法建立起组织的自动化测试体系的。很多工具厂商往往会宣称“我的工具就是一个完整的自动化测试体系”,但其实,这种体系仅仅是指一个工具体系,而不是马上能够为企业带来效益的体系,任何工具都必须在过程的指导下才能发挥其作用。
另一方面,要在组织内引入自动化测试,适应于自动化测试的组织结构是不可或缺的。有些组织对自动化测试的认识有误解,以为要在企业做测试自动化,就必须将全部的测试工程师都变成自动化测试工程师。其实,自动化测试工程师的技能要求更接近开发工程师,需要有较强的设计、编码能力,而对一个组织来说,除了自动化测试工程师,还需要测试业务和设计人员、手工测试人员。一个建议的比例是各占1/3。
要在一个组织内建立自动化测试的体系是一件很有挑战性的工作,我经历过一些组织的自动化测试尝试过程,有些成功了,有些失败了。这些成功和失败的经历也给我了不少的经验和教训,我希望通过我的经验为大家指出企业自动化测试尝试过程中的有效方法和陷阱。
在组织中引入自动化测试,可以从“认识自动化测试策略”、“了解测试现状”、“了解测试工具的约束和使用”、“尝试在小规模的项目中引入自动化测试”、“为测试自动化改变组织”、“持续改进”几个方面来入手。
自动化测试的策略是自动化测试中需要遵循的原则和方针。这里我提醒大家需要注意的是:
● 将所有工作中的特定部分作为应用自动化的候选对象。
● 从高度冗余的任务或场景开始考虑。
● 将乏味且人工容易出错的工作进行自动化。
● 首先关注开发成熟、理解透彻的用例或场景。
● 优先选择应用中相对稳定的部分,而非易变的部分。
● 指派几位专家负责自动化,不要让测试团队的每个人都做这项工作。
● 牢记不要追求100%的自动化,手工测试仍然至关重要。
对组织的测试现状了解,可以作为自动化测试尝试的一个前提条件。主要关注的问题有3个:
● 高层对测试自动化的态度如何?
● 组织中有人有测试自动化的经验或者经历吗?
● 可以在哪个项目中尝试进行测试自动化吗?