5

我需要一个对 C++ 代码执行突变测试的开源工具(即使是相对原始的工具也可以)。我要求它是开源的,因为我需要在概念验证实验中对其进行修改。

我尝试用谷歌搜索它,但没有提出开源工具,我提出了这个问题,但答案中建议的工具要么不是开源的,要么不改变 C++。

4

2 回答 2

2

您是否研究过 Clang 重写器引擎或他们的 AST 匹配器?您可以从语义上搜索源代码中的某些位置,然后应用转换并重新编译。它是为通用源到源工具和分析而设计的。

这有点像你自己的,但我认为它绝对是可行的。

于 2013-11-15T22:02:08.157 回答
2

我认为“C ++代码”是指改变源代码本身而不是编译版本的东西?源代码突变比中间代码突变(例如 Java 字节码或 .NET IL)更难实现。因此,我强烈怀疑您找不到开源的。

挑战是将源代码解析为某种形式的语法树,这是 C++ 中的一个难题,然后您可以识别突变点并根据需要对源代码进行更改。您可能想看看GCCXML作为解析的开源起点 - 添加突变实际上是问题中更直接的部分。

开源NinjaTurtles免责声明:我是这方面的首席开发人员)将改变从.NET 托管C++ 代码编译的程序集,但我怀疑这对您没有任何好处?

于 2012-07-04T08:49:08.447 回答