我需要一个开源工具(即使是一个相对原始的工具),它会对C ++代码执行Mutation Testing。我要求它是开源的,因为我需要在概念验证实验中修改它。
我尝试使用谷歌搜索,但没有提出开源工具,我想出了this question,但答案中建议的工具要么不是开源的,要么不会改变C ++。
答案 0 :(得分:2)
我认为通过“C ++代码”你的意思是改变源代码本身而不是编译版本?源代码变异比中间代码变异(例如Java字节码或.NET IL)更难实现。因此,我强烈怀疑你不会找到一个开源的。
挑战在于将源代码解析为某种形式的语法树,这是C ++中的一个难题,它将允许您识别变异点并使您需要的源代码更改。您可能希望看一下GCCXML作为解析的开源起点 - 添加突变实际上是问题中更直接的部分。
开源NinjaTurtles(免责声明:我是这方面的首席开发人员)将改变从 .NET托管的 C ++代码编译的程序集,但我怀疑对你没有任何好处?
答案 1 :(得分:2)
你有没有看过Clang重写器引擎或它们的AST匹配器?您可以在语义上搜索源代码中的某些位置,然后应用转换并重新编译。它专为通用源和源工具和分析而设计。
这有点像你自己,但我认为它绝对可行。