美丽的大规模测试自动化
自动化测试远不止是编写和运行无需人工干预的测试。然而,对许多测试人员来说,自动化测试仅仅是手动生成执行特定测试场景或产品功能的测试脚本或代码,而运行测试的后勤工作往往是自动化过程中的事后考虑。
自动化测试的现状与问题
大多数测试人员都知道自动化测试有节省时间的潜力,但在很多情况下,它并没有达到测试人员和管理层预期的时间节省效果。实际上,许多自动化尝试失败的原因是,除了实际的测试执行,其他过程都不是自动的。要实现成功的自动化,尤其是大规模自动化,从测试人员完成测试编写到结果分析和可查看的整个端到端过程都必须是自动的。否则,测试人员花在监控自动化系统上的时间会迅速失控。
这里有一个形象的比喻,就像小时候家庭放烟花,虽然也能带来乐趣,但在黑暗中找引信、遇到哑炮等问题会让人有些烦恼。而专业的烟花表演,不仅爆炸和火花效果更壮观,而且整个过程运行得无比顺畅。同样,如果测试人员大部分时间都花在监控进度、检查错误(即“哑炮”)以及将测试及其工件从一个阶段推进到下一个阶段,这样的系统就谈不上“美丽”。只有当整个系统达到一定的自动化程度,让测试人员能够专注于他们最擅长的事情——测试软件时,才是理想的状态。
自动化测试的前期思考
在开始之前,有必要谈谈自动化的方法。如今,测试领域存在一个争议,即自动化测试何时对测试团队有帮助,何时又会阻碍团队的进展。测试人员担心要自动化哪些内容以及自动化的程度,测试经理则担心如何展示在自动化工具和编写测试上的投资回报率,并充分发挥自动化投资的潜力。
对于应该自动化多少测试工作这个难题,有一个通用的指标:应该自动化所有应该自动化的测试。但难点在于确定具体要自动化哪些测试,产品架构、利