存在哪些突变测试框架?

时间:2008-10-29 11:47:13

标签: unit-testing frameworks mutation-testing

在另一个question我询问mutation-testing在实践中是否有用。由于我没有得到满足我的任何答案,我想自己查看当前的工具。所以我需要对当前现有的变异测试框架进行概述。哪个最有用?为什么?

  • 我是用Java编程的,所以我更喜欢Java工具,但我会冒险看一下不同语言的有趣框架。
  • 我想集成一个自动构建过程,所以我更喜欢可以通过命令行执行的工具。

11 个答案:

答案 0 :(得分:17)

还有PIT可以通过maven插件或命令行界面连接到您的构建中。

它提供了比其他可用工具具有组合突变和线覆盖的更好的报告。它的运行速度也比Jester等基于源的Java工具快得多,速度是Jumble的两倍。

与Jumble和Javalanche不同,它也适用于所有主要的模拟框架(Mockito,JMock,EasyMock,PowerMock和JMockit)。

(披露我是作者)。

答案 1 :(得分:16)

我知道这是一个旧帖子,但它仍然是问题的答案。我和一些朋友在一个名为NinjaTurtles的开源.NET变异测试框架上工作,你可以找到on CodePlexon Nuget。主要项目网站是here

答案 2 :(得分:10)

我只知道两个框架,但它们都是Java:)

我没有使用过它们中的任何一种,我很害怕。

答案 3 :(得分:10)

答案 4 :(得分:5)

对于Ruby,有Heckle,还有一个名为Boo_hiss的新手。

答案 5 :(得分:3)

对于.Net社区,有NesTer,但它有一些严重的限制。例如。仅支持C#和NUnit。

似乎也没有积极维护,但它可能是一个起点。

答案 6 :(得分:3)

我看了一下Jester(实际的源代码),在我看来,它不支持太多的突变。那里有一个文件指定了这些突变。我可能对上述内容有误,但我绝对不喜欢的是从命令行启动工具和小GUI反馈界面之间的混合。为什么不在命令行中提供反馈,就像JUnit在IDE外部运行时那样?

Jumble是另一回事:)。它有一个简单的命令行界面,并附带一个Eclipse插件。反馈是控制台中的所有文本。我很满意这个工具,我打算写一些ANT目标,将它添加到我的项目持续集成中。

我也在看Javalanche,但还没有尝试过。

我会在几周后得到消息。

答案 7 :(得分:3)

可能有一些兴趣。 Microsoft Research的:https://pex4fun.com/

答案 8 :(得分:2)

您可以尝试µJava。我没有使用它,但看起来突变测试可能是一种评估测试套件的有趣方法。

答案 9 :(得分:2)

MμClipse仅支持JUnit 3,不再维护。 Jester就这样,很费力,需要复杂的配置;加上不再维护。 我能找到的最好的工具是Javalanche I had wrote a entire article about this !

答案 10 :(得分:0)

Jester确实为突变提供了一个文件,但它们是有限的。在某种程度上,您可以将自己的突变添加到文件中。

我已经尝试过Jumble和Jester,我发现Jumble提供了更多的突变和更好的文档。此外,当我通过电子邮件发送时,我得到了项目所有者的快速回复。 Jumble的一个缺点是它使用BCEL对字节码进行操作。这为许多开发人员提供了一些学习曲线。

我的公司State Farm写了一篇Ant任务,我们可以回馈Jumble项目。基于我在他们的邮件列表中读到的内容,其他人也正在为Jumble开展Ant任务。

我也在看Javalanche。我很高兴在完成后分享我所知道的事情。