自动化测试中需要避免“诡异”的测试脚本

什么是“诡异”的测试脚本呢?就是这个脚本在多次运行的情况下,测试结果并非每次都是一致,例如运行10次,有9次是通过的,有1次是失败的,那么这个测试究竟算是通过呢,还是失败呢?答案是:It depends

在某些情况下,那一次失败,的确抓住了程序的某个BUG。原因可能是:

  • 程序在运行一段时间后会出错
  • 程序会出错,但错误不是每次都发生
  • 在某些特殊输入下把错误暴露出来

但是在某些情况下,那1次失败的测试其实只是告诉测试的人,你写了一个“诡异”的测试脚本,实现了一个诡异的测试(Flakey Test)。不幸的是,导致一个自动化测试的行为变得诡异的原因实在太多太多。下面是一些常见的:

  • 竞争条件
  • 测试数据选择不当
  • 测试的前置条件不受控

当发现一个诡异的自动化测试脚本,必须要下决心去改掉它:

  • 使用一些常见有效的用例设计模式,例如“准备,执行,断言(Arrange, Act, Assert)”
  • 使用MOCK技术

总之,当出现一个诡异的测试(Flakey Test)的时候,总是很郁闷的,但是为了以后不要遇到更大的郁闷,我们要尽早发现并且改掉那些诡异的测试。

1 thought on “自动化测试中需要避免“诡异”的测试脚本”

Leave a Reply

Your email address will not be published. Required fields are marked *