2010-09-23 37 views
1

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

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

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

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

+1

弥补它的名字,关于它的博客,写一篇文章,维基百科条目和一本关于它的书。你可以在围绕它的测试会议中旅行。严重的是,它是如何工作的。 – 2010-09-24 06:34:25

回答

4

ABT或自适应基线测试。你建立了一个基线,但是有一个根据测试结果调整基线的规定。

ABT的问题是,我完全做到了。我不确定是否有更广泛的用途,但希望阅读其他答案,看看其他人是否知道。

+0

我认为ABT是它的合适名称。谢谢。 – fionbio 2010-12-16 17:41:50

0

你要做的是黑匣子测试。

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

  • 如果您替换它,因为新的黄金副本更好或有更多信息,那么它只是一个更新。
  • 如果因为旧的金色副本发生故障而将其替换,则以前的验证不好,您有SW Test Issue,并且您可能需要重新运行其他可能使用此金色副本的测试。
  • 如果因为旧副本中的数据不再好而将其替换,那么程序中的某些内容已发生更改,这意味着您有更改或修复或使旧版金牌无效并且需要您验证新版本的内容一。

无论如何,你应该做的是验证新的黄金副本(“我可以接受更改,以便用于比较的数据被更新”)。

无论你在什么情况下,它仍然是黑匣子测试。你有一个输入,你得到一个输出,你将输出与预期结果进行比较。

+0

据我所知,尽管所描述的技术可能确实是黑盒测试的一个实例,但这个术语本身具有更广泛的含义。 – fionbio 2010-12-16 17:43:13

+0

我猜...那么,也许你应该尝试像“黄金副本”,“主副本”,“黄金参考”,“地面真相数据库”或类似的术语。你实际上在谈论的是有一个参考文献,它是预期结果的已知和认证版本;然后,如果Sw发展,则可能需要对此参考进行审核并重新进行认证。 – EKI 2010-12-17 13:39:26

相关问题