什么是“诡异”的测试脚本呢?就是这个脚本在多次运行的情况下,测试结果并非每次都是一致,例如运行10次,有9次是通过的,有1次是失败的,那么这个测试究竟算是通过呢,还是失败呢?答案是:It depends。
在某些情况下,那一次失败,的确抓住了程序的某个BUG。原因可能是:
● 程序在运行一段时间后会出错
● 程序会出错,但错误不是每次都发生
● 在某些特殊输入下把错误暴露出来
但是在某些情况下,那1次失败的测试其实只是告诉测试的人,你写了一个“诡异”的测试脚本,实现了一个诡异的测试(Flakey Test)。不幸的是,导致一个自动化测试的行为变得诡异的原因实在太多太多。下面是一些常见的:
● 竞争条件
● 测试数据选择不当
● 测试的前置条件不受控
当发现一个诡异的自动化测试脚本,必须要下决心去改掉它:
● 使用一些常见有效的用例设计模式,例如“准备,执行,断言(Arrange, Act, Assert)”
● 使用MOCK技术
总之,当出现一个诡异的测试(Flakey Test)的时候,总是很郁闷的,但是为了以后不要遇到更大的郁闷,我们要尽早发现并且改掉那些诡异的测试。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/