在另一个问题中,我问突变测试在实践中是否有用。由于我没有得到任何让我满意的答案,我想自己检查一下当前的工具。所以我需要一个关于当前现有突变测试框架的概述。其中哪个最有用,为什么?
- 我用 Java 编程,所以我更喜欢 Java 工具,但我会冒险看看不同语言的有趣框架。
- 我想集成到一个自动构建过程中,所以我更喜欢可以通过命令行执行的工具。
还有PIT可以通过 maven 插件或命令行界面连接到您的构建中。
它提供的报告比其他具有组合突变和行覆盖的可用工具要好得多。它的运行速度也比 Jester 等基于源代码的 Java 工具快得多,大约是 Jumble 的两倍。
与 Jumble 和 Javalanche 不同,它还适用于所有主要的模拟框架(Mockito、JMock、EasyMock、PowerMock 和 JMockit)。
(披露我是作者)。
我知道这是一个旧线程,但它仍然是问题的答案。我正在与一些朋友一起开发一个名为 NinjaTurtles 的开源 .NET 突变测试框架,您可以在 CodePlex和Nuget 上找到该框架。主要项目网站在这里。
CREAM 是 C#/.Net 的工具 http://galera.ii.pw.edu.pl/~adr/CREAM/index.php
对于 .Net 社区,有NesTer,但它有一些严重的局限性。例如,仅支持 C# 和 NUnit。
似乎也没有积极维护,但这可能是一个起点。
我看了一下 Jester(实际的源代码),在我看来它不支持太多的突变。那里有一个文件,其中指定了这些突变。我可能对上述内容有误,但我绝对不喜欢从命令行启动工具和小 GUI 反馈界面之间的混合。为什么不像 JUnit 在 IDE 外运行时那样在命令行中提供反馈?
混乱是另一回事:)。它有一个简单的命令行界面,并带有一个 Eclipse 插件。反馈是控制台中的所有文本。我对这个工具很满意,我计划编写一些 ANT 目标来将它添加到我的项目持续集成中。
我也在看 Javalanche,但还没有尝试过。
几周后我会有消息。
可能有点意思。微软研究院:https ://pex4fun.com/
你可以试试µJava。我没有使用过它,但看起来突变测试可能是评估测试套件的一种有趣方式。
MμClipse 仅支持 JUnit 3,不再维护。至于Jester,很费力,需要复杂的配置;plus 不再维护。我能找到的最好的工具是 Javalanche 我写了一篇关于这个的整篇文章!
Jester 确实为突变提供了一个文件,并且它们是有限的。在某种程度上,您可以将自己的突变添加到文件中。
我对 Jumble 和 Jester 进行了试验,发现 Jumble 提供了更多的突变和更好的文档。此外,当我向项目所有者发送电子邮件时,我得到了他们的快速回复。Jumble 的一个缺点是它使用 BCEL 对字节码进行操作。这对许多开发人员来说是一条学习曲线。
我的公司 State Farm 编写了一个 Ant 任务,我们可能会为 Jumble 项目做出贡献。根据我在他们的邮件列表中看到的内容,其他人也在为 Jumble 开发 Ant 任务。
我也在看Javalanche。完成后,我很乐意分享我所知道的。