是否存在允许一定比例失败的测试框架?

时间:2011-04-27 06:05:44

标签: java unit-testing testing

当阅读question关于使用随机种子多次测试Java程序时,单词测试在我的脑海中引发了与单元测试的关联,但这可能不是那种测试。< / p>

在我看来,在单元测试中引入随机性会被认为是不好的做法,但后来我开始考虑目前可以接受(小)失败百分比的情况。

例如,对于n> 1,代码每10 ^ n无法通过单元测试一次。 3逐渐地你想要n去无限而没有测试变红,也许是淡黄色。

另一个例子可能是系统范围的测试,大部分时间都是正确的,但你仍然想限制/知道他们可能出错的频率。

所以我的问题是,是否有任何框架(全系列测试)可以被说服以允许在大量/过量的重复测试中出现一定比例的失败?

1 个答案:

答案 0 :(得分:2)

您可以“说服”大多数测试框架,通过执行不直接使用框架的“测试”,只需通过执行普通的旧条件(例如:if语句)并记录失败的百分比来允许部分失败。然后使用框架断言此百分比低于您的阈值。

如果您的测试是确定性的(通常被认为是一件好事),那么另一种方法是测试当前行为,即使它是错误的,但要评论错误的断言(通常用“正确”的答案应该是)。如果这些测试失败,您可以查看评论。如果代码变得“正确”那么好,请更新该断言。如果不是,则确定行为的改变是否比旧行为更好或更差,并相应地采取行动。这种方法可以让您随着时间的推移“拧紧螺丝”。