Hendrickson将她的看法出色地总结为下面这种索引卡片的形式:
为什么传统的、“录制-回放”式的、重量级的、商业化测试自动化解决方案做不到敏捷?
三个原因:
Hendrickson首先讲述 “录制-回放”式工具的“最后再测试”方式是如何难以取得成功的,而无关乎项目是否敏捷。她解释了为什么这对敏捷项目来说尤其是个伤害。在敏捷项目中,“最后再测试”的工作流程至少有下列问题:
……进一步说,“最后再测试”工具无法支持“验收测试驱动开发(Aclearcase/" target="_blank" >cceptance Test Driven Development)”。敏捷团队需要的测试工具要支持“首先测试”的方式,并可以马上开始进行自动化测试。
Hendrickson解释了测试脚本如何成为这些“录制-回放”测试工具的基础,而且会无可避免地造成类似意大利面的混乱局面,将UI代码中有关业务上的期待和具体实现细节混杂在一起,从而导致敏捷项目很容易变为一场维护的噩梦。她简明地说:
敏捷团队需要可以将要测试的业务实质内容与实现细节相分离的工具。这样的分离是良好设计的标志,并可以增加可维护性。
接下来,在很大程度上出于考虑高昂成本和代码所有权的需要,典型的“录制回放”工具会将大多数组织引向创建专有的“自动化测试专家”小组之路,并且他们会被授权负责监控自动化测试。Hendrickson强调了这样的方式是如何对有效敏捷所需的协作方式形成阻碍的。
敏捷团队通过破除单干的局面来提升工作效率,这凭一些所谓的自动化测试“超级英雄”无法完成。也就是说自动化测试成为需要协作完成的工作。业务利益相关者、分析师和黑盒测试人员,他们都可以通过可自动化的形式(比如Fit表格)来做出对测试的贡献;而程序员则负责编写代码将测试与实现相关联。
最后,Hendrickson讨论了敏捷团队确实需要什么样的自动化测试工具,并以此作为结束:
敏捷团队需要的自动化测试工具或框架要像这样:
Fit、FitNesse以及相关工具可以达成上述要求。
很值得花费一些时间来读Elisebeth Hendrickson这篇完整的博客帖子,这样更加了解她深入的想法和经验。此外还可以阅读Brian Marrick的博客来获取更多关于敏捷测试的专家级建议。