我正在开发一个c ++代码覆盖工具。是否有任何工具可用于开发代码覆盖应用程序,如解析器等。
答案 0 :(得分:4)
我建议您查看现有的编译器并使用它们的解析功能。例如,clang/LLVM已经实现了某种形式的静态代码分析。或者您可以使用GNU Compilers / g ++的内置解析器。 IIRC,新的Visual Studio 2010 SDK还允许您直接使用在线编译器(也用于新的智能感知器)。
答案 1 :(得分:0)
请参阅我的论文Branch Coverage Branch Coverage for Arbitrary Languages Made Easy,其中介绍了如何使用程序转换系统构建测试覆盖率工具,解析源文本,构建AST,应用重写规则以插入测试覆盖率探针,以及对修改后的源代码进行精心打印用于编译/执行/测试探针数据收集。
虽然该技术适用于任何可以解析和重新打印C ++的系统,但作为一般规则,这些很难找到,因为解析C ++很困难。本文特别关注我们our DMS Software Reengineering Toolkit,C++ Front End已完整C++ Test Coverage tool,我们为此构建了{{3}}。