1.4.6 用机器取代人工
敏捷开发模式下要求测试工程师提供及时而可靠的测试执行报告,为项目的决策和计划提供数据支持。怎么做才能提供及时而可靠的测试执行报告呢?
靠雇用更多、更细心的手工测试工程师可以部分解决这个问题,但是效果并不明显,因为手工操作的效率上限是比较低的,且重复的手工操作会带来疲劳感,误操作的可能性会提高,从而降低了测试结果的可靠性。自动化测试可以替代重复的手工测试,节省高额的人工成本。
在实现了测试的自动化后,机器可以24小时不间断运转,在项目团队非工作时间执行测试,减少团队空耗等待的时间,极大地提高了生产效率,缩短了开发周期,节省了大量的时间和人力成本。
测试从手工向自动化的转变,给工程团队和工程师个人带来的是双赢的局面。对于工程团队而言:
1)更好、更全面的测试用例。
当计算机代替人工执行已有测试用例的时候,测试人员可以腾出更多时间全面了解产品,设计更合理、更全面的测试用例。
2)更高的执行效率。
手工测试依靠手工执行,效率不够高,而执行效率是自动化测试的优势。在产品发布周期越来越短的趋势下,人工测试的效率可能成为产品发布速度的瓶颈,这促使很多团队引入自动化测试。当然,自动化测试过程中也会碰到一些问题,很多团队在尝试磨合之后,采用自动化测试结合手工测试的方式,这也是一种可行的实践。
3)更高的可靠性。
手工测试会掺杂很多人为因素,既要求测试人员认真负责,又要求测试人员对重复的劳动有足够的耐心,否则,测试的结果就不可靠,对产品质量带来负面影响,而自动化测试可以改善这些问题。
4)更低的单次执行成本。
虽然测试自动化的过程并不容易,但是在测试实现自动化以后,单次执行自动化测试的成本是很低的,人力成本和时间成本都很低,这就让项目团队可以以更高的频率进行测试,甚至可以针对每次代码提交都进行测试。这种持续集成和测试的流程,可以让项目一致保持在更可控的状态,更能保证项目的进度和质量。
总之,自动化测试能够让产品被更快、更全、更好地测试。对于测试工程师个人发展而言:
1)避免过多的重复性测试带来的思维固化。
2)把个人精力从简单重复的劳动中解放出来,提升工作乐趣。
3)依靠机器和代码的力量,提升工作效率。
4)扩展个人技能的边界,扩展思路,提升个人价值。
5)确保职业发展的可持续性,提升职业安全感,避免成为低技能工程师。
注意 虽然本书是关于自动化测试的,但是我不想单纯鼓吹自动化测试有多好,因为自动化测试只是一种测试形式,如果项目团队连手工测试都没有做好的话,盲目引入自动化测试只会引入更多的麻烦,那是本末倒置的做法。