【发布时间】:2012-07-04 03:35:12
【问题描述】:
我需要一个开源工具(即使是相对原始的工具也可以),它可以对 C++ 代码执行突变测试。我要求它是开源的,因为我需要在概念验证实验中对其进行修改。
我尝试用谷歌搜索,但没有找到开源工具,我想出了this question,但答案中建议的工具要么不是开源的,要么不改变 C++。
【问题讨论】:
标签: c++ open-source mutation-testing
我需要一个开源工具(即使是相对原始的工具也可以),它可以对 C++ 代码执行突变测试。我要求它是开源的,因为我需要在概念验证实验中对其进行修改。
我尝试用谷歌搜索,但没有找到开源工具,我想出了this question,但答案中建议的工具要么不是开源的,要么不改变 C++。
【问题讨论】:
标签: c++ open-source mutation-testing
我认为“C++ 代码”是指改变源代码本身而不是编译版本的东西?源代码突变比中间代码突变(例如 Java 字节码或 .NET IL)更难实现。因此,我强烈怀疑您找不到开源的。
挑战是将源代码解析为某种形式的语法树,这是 C++ 中的一个难题,然后您可以识别突变点并根据需要对源代码进行更改。您可能想看看 GCCXML 作为解析的开源起点 - 添加突变实际上是问题中更直接的部分。
开源NinjaTurtles(免责声明:我是这方面的首席开发人员)将改变从 .NET 托管 C++ 代码编译的程序集,但我怀疑不会对你有什么好处吗?
【讨论】:
您是否研究过 Clang 重写器引擎或他们的 AST 匹配器?您可以从语义上搜索源代码中的某些点,然后应用转换并重新编译。它是为通用源到源工具和分析而设计的。
这有点你自己的,但我认为它绝对是可行的。
【讨论】: