前几天听到了这样的问题:
“你们做自动化测试的时候,是怎么把预期结果算出来的?”。——按照我的经验,多数都是手工或Excel算出来的。
“为什么不在测试工具中实时计算?”——按照我的经验,测试写不出一个异构的新系统。
测试过程中计算预期结果,可能是出于下面的考虑,但每一种都不适合。
1)被测系统的数据不受控,没有稳定的预期结果。——用例的测试目的应该是预先定义的,动态的预期结果无法覆盖到原定测试点。除非是做接口测试等强调输入组合,可以通过大量用例来提高输出结果覆盖率的情况。
2)被测系统不稳定,变更多。——这类系统可能还不适合做自动化回归测试,测试范围和输入、输出都不确定,也无法在测试用例中实现计算逻辑。
3)逻辑复杂,计算预期结果比较困难。——如果测试人员都可以轻易实现这些复杂的逻辑,那还要开发做什么?即使能够实现,必定付出比被测系统研发更高的代价。应该分层测试,逐层校验中间结果,降低每一层测试的复杂度。
4)用例之间相互影响,正确性依赖执行顺序。——在用例的前置条件、后置条件中进行处理,采用不同的数据集,拆分测试序列等都可以降低相关性。否则增加新用例时,实时计算的复杂度会持续增加。当然,一些逻辑简单或固定公式的计算,可以方便的通过关键字实现。