我使用的测试技术有名称吗?

时间:2010-09-23 15:06:37

标签: testing diff automated-tests

如果使用传统的xUnit样式方法难以测试,例如各种转换器,XSLT等,我经常使用基于输出比较的技术。测试程序在第一次运行时会产生一些输出。我确保它是正确的并保存以供以后使用。在以下运行中,程序将新输出与先前保存的输出进行比较,并显示任何差异。之后我可以修复程序以使输出再次匹配或(这很重要!)我可以接受更改,以便更新用于比较的数据。

当然,还有其他方面,例如使用不同的预处理进行比较和差异,例如:使用规范表示比较XML,首先解析JSON,使用lisp读取器等读取s表达式,而使用漂亮打印的表示用于差异。可以使用一些指定的转换重新运行比较,例如删除部分输出。

我在python中使用这样的技术,其中驱动程序使用测试脚本中定义的请求调用WSGI应用程序,以及一些Common Lisp程序,包括从随机/破碎HTML到专有XML格式的转换器和线性加速器控制系统,其中控制算法在使用产生一些输出的设备模拟器执行时产生基于s-expr的输出。

问题是,我不知道这种技术的确切名称是什么。我知道它在其他地方使用过,甚至还有一个名为izh-test的测试框架使用类似的东西。但我从来没有听说过任何具体名称,包括“接受改变”部分。数据驱动测试?似乎并不完全。有什么建议吗?

2 个答案:

答案 0 :(得分:4)

ABT,或自适应基线测试。您可以建立基线,但可以根据测试结果调整该基线。

ABT的问题在于我完全弥补了这一点。我不确定是否有更广泛使用的名称,但期待阅读其他答案,看看是否有其他人知道。

答案 1 :(得分:0)

你做的是黑匣子测试。

如果您有经过验证的黄金副本(“我确保它是正确的并保存以供以后使用。”)并且在某些时候您决定更换它,您将再次验证它。

  • 如果您更换它,因为新的黄金副本更好或有更多信息,那么它只是一个更新。
  • 如果因为旧的黄金副本有问题而更换它,那么您之前的验证不合适,您有SW测试问题,您可能需要重新运行可能使用此黄金副本的其他测试。
  • 如果因为旧副本中的数据不再好而更换它,那么程序中的某些内容已经发生变化,这意味着您有更改或修复或使您的旧黄金副本无效并要求您验证新副本的内容一。

在任何情况下,您应该做的是验证新的黄金副本(“我可以接受更改,以便更新用于比较的数据”)。

无论你身处何种情况,它仍然是黑盒测试。你有一个输入,你得到一个输出,你将输出与预期结果进行比较。