【问题标题】:Open source mutation testing c++ [closed]开源突变测试c ++ [关闭]
【发布时间】:2012-07-04 03:35:12
【问题描述】:

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

我尝试用谷歌搜索,但没有找到开源工具,我想出了this question,但答案中建议的工具要么不是开源的,要么不改变 C++。

【问题讨论】:

    标签: c++ open-source mutation-testing


    【解决方案1】:

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

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

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

    【讨论】:

    • 我需要修改直接编译的 C++ 程序集,所以我怀疑 NinjaTurtles 是否适合我。我愿意自己编写 mutator,但作为最后的手段(除了相对较高的学习曲线,我确信其他人已经做得更好了)。我已经使用BCEL library 在Java 字节码上实现了变异,所以我对这个过程非常熟悉。如果我必须自己实现 mutator,我将不胜感激,如果我能获得一些链接到操纵已编译 C++ 代码的库。
    • 很公平,我怀疑 IL 级别不是您想要的。祝你好运!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多