zoukankan      html  css  js  c++  java
  • C++代码覆盖率工具Coverage Validator

    市面上的C++代码覆盖率工具大都收费,Coverage Validator也不例外。Coverage Validator应该少有人听过,我也是在stackoverflow里听别人介绍的。所以下载了试用一下。有兴趣的朋友可以去https://www.softwareverify.com/cpp/coverage/index.html了解一下更多东西,上面提供有30天试用版本。

    之前试过CoverageMeter,使用起来也是蛮方便的,主要原理是替换了原有的编译器,在代码中进行插桩。因此,CoverageMeter的特点是需要重编被测试代码。这也是大部分覆盖率工具常用的方法。而Coverage Validator,不需要重编被测代码,只需要提供被测二进制程序的pdb文件,就能统计其代码覆盖率。它能同时统计行覆盖,分支覆盖,函数覆盖等。 

    Coverage Validator使用起来也非常简单,你只需要:

    1. 使用Coverage Validator运行你的被测程序。

    通过菜单"File"-"Start Application" ,制定需要运行的程序,然后又很多选项,如制定程序路径,命令行参数,环境变量等,后来还提供了几种启动程序的方式,比如:CreateProcess,这也是最常用的方式。

    2. 在Coverage Validator中查看覆盖率结果。 

    结果查看也挺方便,代码窗口中用颜色标记了哪些行被覆盖,哪些行未覆盖。

    你还可以:

    设置过滤条件,只统计加载的某个模块的覆盖率数据。比如,你要测试的是一个DLL,你就可以设置过滤条件,只统计该DLL的代码覆盖率。你还可以设置过滤只统计某个类,某个函数的覆盖率数据。设置过滤的方法非常简单,我也不贴自己的图了。菜单:"Configure" - "Settings" - "Filters"

    下面是引用的官方网站的界面截图(说实话,界面挺简陋的)

    总结果页面:

     

    详细结果页面: 

     

     由于该软件是商业软件,同时使用起来也非常简单,并配有详细的文档,因此,本文并不打算详细演示Coverage Validator如何工作的,本文的目的是让大家了解到有这么一个工具,或许可以给你带来新的思路,或许这个工具对你确实有用。

    #1楼 2009-07-11 23:20 jjj
    c# 下能用MSTest里的,c++ 就不行了,这个不错,俺回头认真看下。
    #2楼[楼主] 2009-07-11 23:29 CoderZh  
    @ jjj
    我也是困惑于MS不提供C++的代码覆盖率的支持。
    #3楼 2009-07-14 01:09 不理解
    代码覆盖率工具
    是做什么用呢?
    #4楼[楼主] 2009-07-14 12:48 CoderZh  
    @ 不理解
    覆盖率是用来度量测试完整性的一个手段。软件的覆盖率总体上分为逻辑覆盖(代码覆盖和结构化覆盖)和功能覆盖。通过覆盖率数据,可以知道测试得是否充分,测试得弱点在哪些方面,进而可以指导我们设计能够增加覆盖率的测试用例。
    代码覆盖率工具就是用来统计覆盖率的工具。
    #5楼 2013-11-21 21:43 Alexia(minmin)  
    Bullseye Coverage这款软件呢?

    http://www.cnblogs.com/coderzh/archive/2009/07/11/1521706.html

  • 相关阅读:
    《Apache Doris在美团外卖数仓中的应用实践》
    《一文教会你如何写复杂业务的代码》
    《SOFA企业应用框架》
    《为什么阿里巴巴代码规约要求避免使用 Apache BeanUtils 进行属性的拷贝》
    《浅析VO、DTO、DO、PO的概念、区别和用处》
    Spring 注解
    《浅析VO、DTO、DO、PO的概念、区别和用处》
    dsgn_ebook
    《清华大学刘世霞“可解释机器学习的可视化分析”(附PPT)》
    《图结构的相似度度量与分类》
  • 原文地址:https://www.cnblogs.com/findumars/p/5794158.html
Copyright © 2011-2022 走看看