在另一个question我询问mutation-testing在实践中是否有用。由于我没有得到满足我的任何答案,我想自己查看当前的工具。所以我需要对当前现有的变异测试框架进行概述。哪个最有用?为什么?
答案 0 :(得分:17)
还有PIT可以通过maven插件或命令行界面连接到您的构建中。
它提供了比其他可用工具具有组合突变和线覆盖的更好的报告。它的运行速度也比Jester等基于源的Java工具快得多,速度是Jumble的两倍。
与Jumble和Javalanche不同,它也适用于所有主要的模拟框架(Mockito,JMock,EasyMock,PowerMock和JMockit)。
(披露我是作者)。
答案 1 :(得分:16)
我知道这是一个旧帖子,但它仍然是问题的答案。我和一些朋友在一个名为NinjaTurtles的开源.NET变异测试框架上工作,你可以找到on CodePlex和on Nuget。主要项目网站是here。
答案 2 :(得分:10)
答案 3 :(得分:10)
CREAM是C#/ .Net的工具 http://galera.ii.pw.edu.pl/~adr/CREAM/index.php
答案 4 :(得分:5)
答案 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。我很高兴在完成后分享我所知道的事情。