一个常见的错误是,试图自动化所有的test cases。一些没有经验的管理者会希望用自动化覆盖率来衡量自动化测试开发人员的工作。
但是,实际上自动化是一件需要很大投入的工作。不仅有开发的工作量,也有维护的工作量。如果过于追求自动化的数量,在系统有任何变化的时候,都会收到非常多的false alert,让开发和测试都陷于无尽的无效工作。
基于以上原因,我们的automation test case是需要经过设计的。
1. 将test case分级: BVT-1, BVT-2,FVT-1,FVT-2等等。重点关注BVT的test case,optionally地关注FVT case。
挑选test case的时候,一定要注意规模和测试目的。太长太多的case,会导致代码提交需要漫长的等待。而且,会额外消耗很多的精力。
2. 从手工测试的test cases中挑出一些test cases之后,将之重新设计,而非完全模拟所有手工步骤。
可以将需要测试的重点与其他操作分离。
例如,你手头有一个test case,目的是验证UI 上所有的元素是否显示正常。按照正常的过程,你可能需要从一开始用uI准备数据,然后再来验证UI。但是,这里,你可以先用其他的手段,准备好数据,然后直接打开该UI,来做你最核心的验证操作。这样的话,该验证就不会依赖于前面的准备数据的功能是否良好,不会被准备数据功能block。同时,用UI准备数据是一个非常耗时,而且非常脆弱的过程,提前用其他手段准备好数据,可以增加测试的可靠性、稳定性和速度。