市面上的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

C++代码覆盖率工具Coverage Validator的更多相关文章

  1. Python 代码覆盖率统计工具 coverage.py

    coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...

  2. JAVA代码覆盖率工具JaCoCo-原理篇

    JAVA代码覆盖率工具JaCoCo-原理篇 1.2 JAVA覆盖率工具介绍 1.3.3 Apache Maven方式 1.3.4 Eclipse EclDmma Plugin方式 JAVA代码覆盖率工 ...

  3. Qt代码覆盖率code coverage(VS版)

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt代码覆盖率code coverage(VS版)     本文地址:http://techi ...

  4. python代码覆盖率统计-coverage

    coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...

  5. C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)

    关于代码覆盖率统计工具,Linux平台下,gcc内置支持gcov,通过编译时加参数选项,进行代码插桩,从而实现代码覆盖率.在Windows平台下,早在几年前,我还没找到特别好用又开源的覆盖率工具,所以 ...

  6. Python代码覆盖率分析工具Coverage

    简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...

  7. Python 测试代码覆盖率统计工具 coverage.py

    安装 您可以通常的方式安装coverage.py.最简单的方法是使用pip: $ pip install coverage 要安装预发布版本,您需要指定--pre: $ pip install --p ...

  8. coverage python 代码覆盖率工具使用(django 使用)

    1. 安装包 pip install coverage 2.启动程序 coverage run -m pytest 3.获取html格式的报告文件 coverage html 4.创建配置文件 .co ...

  9. 单元测试-代码覆盖率工具 -- JaCoCo

    最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者片面追求单元 ...

随机推荐

  1. ajax提交数据问题

    加入traditional:true属性 traditional 类型:Boolean 如果你想要用传统的方式来序列化数据,那么就设置为 true.请参考工具分类下面的 jQuery.param 方法 ...

  2. Java并发编程:并发容器ConcurrentHashMap

    Java并发编程:并发容器之ConcurrentHashMap(转载) 下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concu ...

  3. iOS 通过个推 推送原理

    目前使用过的第三方推送很多,有极光, 友盟,个推等,现在主要针对个推,谈谈我对推送流程的理解. 在项目中,如果想要实现评论 推送功能 需要进行以下步骤: 1. 在用户登录的时候 通过   [GeTui ...

  4. 使用单例模式实现自己的HttpClient工具类

    引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpCli ...

  5. 使用MySQL的LAST_INSERT_ID--转

    LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generat ...

  6. 判断线段相交(hdu1558 Segment set 线段相交+并查集)

    先说一下题目大意:给定一些线段,这些线段顺序编号,这时候如果两条线段相交,则把他们加入到一个集合中,问给定一个线段序号,求在此集合中有多少条线段. 这个题的难度在于怎么判断线段相交,判断玩相交之后就是 ...

  7. hdu 2156

    #include <iostream> #include <stdio.h> using namespace std; int main() { int i,n; while( ...

  8. javascript基础之变量和函数声明

    1.变量的声名 window.name = 'gjlin' ; //全局变量  直接name = 'gjlin'  也表示全局变量,但是建议使用window.name = 'gjlin' 这种形式表示 ...

  9. sql Server 常用存储过程的优化

    优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数.使用SET NOCOUNT ON ...

  10. jquery网站左侧弹出导航菜单

    下载