存在哪些突变测试框架? [关闭]

Posted

技术标签:

【中文标题】存在哪些突变测试框架? [关闭]【英文标题】:What mutation-testing frameworks exist? [closed] 【发布时间】:2010-09-19 18:38:52 【问题描述】:

在另一个question 中,我问mutation-testing 在实践中是否有用。由于我没有得到任何让我满意的答案,我想自己检查一下当前的工具。所以我需要一个关于当前现有突变测试框架的概述。其中哪些最有用,为什么?

我使用 Java 编程,所以我更喜欢 Java 工具,但我会冒险研究不同语言的有趣框架。 我想集成到自动构建过程中,所以我更喜欢可以通过命令行执行的工具。

【问题讨论】:

MT优势说明:pedrorijo.com/blog/intro-mutation 【参考方案1】:

可能有点意思。微软研究院:https://pex4fun.com/

【讨论】:

@urig 感谢您的突出显示,网址已更新。 感谢@nashwan 的新 URL。我删除了我的评论,以免误导未来的读者。【参考方案2】:

我知道这是一个旧线程,但它仍然是问题的答案。我正在和一些朋友一起开发一个名为 NinjaTurtles 的开源 .NET 突变测试框架,您可以找到 on CodePlex 和 on Nuget。主项目网址是here。

【讨论】:

我已经尝试过 NinjaTurtles,但它的文档记录很糟糕,我无法弄清楚哪里出了问题或者我到底做错了什么......所以我宁愿尝试 CREAM,它效果很好。 是否还在开发中,我愿意提供帮助。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

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

(披露我是作者)。

【讨论】:

无论如何我可以将 PIT 生成的突变体保存到我想要的文件夹中吗?以便其他程序可以使用? @Milson 没有内置任何内容,但是如果您查看 google 群组历史记录,您会发现描述如何挂钩到框架并将它们写入磁盘的帖子【参考方案5】:

CREAM 是 C#/.Net 的工具 http://galera.ii.pw.edu.pl/~adr/CREAM/index.php

【讨论】:

这个工具看起来很不错,支持.NET 4.0等。谢谢+1【参考方案6】:

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

Jester Jumble

恐怕我都没用过。

【讨论】:

Jester 的链接多了一个p://【参考方案7】:

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

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

我的公司 State Farm 编写了一个 Ant 任务,我们可能会为 Jumble 项目做出贡献。根据我在他们的邮件列表中读到的内容,其他人也在为 Jumble 开发 Ant 任务。

我也在关注 Javalanche。完成后我很乐意分享我所知道的。

【讨论】:

【参考方案8】:

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

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

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

几周后我会有消息。

【讨论】:

【参考方案9】:

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

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

【讨论】:

仅适用于在 Visual Studio 2005 中开发的解决方案【参考方案10】:

对于 Ruby,有 Heckle,还有一个叫 Boo_hiss 的新人。

【讨论】:

查看追逐者。这是 ruby​​ 的新魅力。 还有僵尸追逐者。变异测试......僵尸!【参考方案11】:

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

【讨论】:

以上是关于存在哪些突变测试框架? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

perl 中都有哪些可用的框架 [关闭]

如何测试 Meteor 应用程序? [关闭]

delphi程序关闭,进程依然存在

php 用户身份验证库/框架...都有哪些选项? [关闭]

哪些 .NET 依赖注入框架值得研究? [关闭]

自动化 GUI 测试 [关闭]