市面上的C++代码覆盖率工具大都收费,Coverage Validator也不例外。Coverage Validator应该少有人听过,我也是在*里听别人介绍的。所以下载了试用一下。有兴趣的朋友可以去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如何工作的,本文的目的是让大家了解到有这么一个工具,或许可以给你带来新的思路,或许这个工具对你确实有用。
#5楼 2013-11-21 21:43 Alexia(minmin)
http://www.cnblogs.com/coderzh/archive/2009/07/11/1521706.html