代码覆盖率工具
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++ 代码覆盖率工具 Bullseye Coverage 广州邦讯科技测试部谢慧强xiehuiqiang@
简介
Bullseye Coverage 是Bullseye公司提供的一款C/C++代码覆盖率测试工具,个人觉得是比Rational的Pure Coverage更优秀的测试工具。
相对于Rational的Pure Coverage,Bullseye Coverage支持的C/C++的编译器更多,除了支持各种Unix下的编译器之外,在Windows下支持VC、Borland C++、Gnu C++、Inter C++。
提供的代码覆盖率是分支覆盖率而不是一般代码覆盖率,我个人认为分支覆盖率比代码覆盖率更好。
Bullseye Coverage 可以从/上获取,先登记后等待Bullseye回Email,在回复的Email应该包括具体的下载地址和一个30天的试用License。
测试VC程序
和Rational的Pure Coverage一样,Bullseye Coverage与VC的集成比较好。
在安装的时候选择要安装VC及其它C/C++编译器。
在Visual Studio的Tools菜单将增加Enable和Disable Coverage Build两个子菜单,选择Enable之后,重新Rebuild运行就可以。
测试C++ Builder程序
测试C++ Builder程序比较麻烦,Bullseye Coverage没有直接集成到C++ Builder的Ide 中,在帮助只提供了C++ Builder 3、4、5的使用,但据Bullseye公司的回复也支持C++ Builder 6。
我实验中使用的是C++ Builder 5,使用6的步骤应该和5是一样的。
使用C++ Builder 3和4的可以去看看帮助,主要是mak文件的制作不一样。
首先先在C++ Builder编译程序并保证程序能够运行,然后从菜单Project->Export Makefile导出mak文件到Project 存放目录。
然后退出C++ Builder并使用任何文本编写工具如NotePad、UltraEdit将mak文件中包含的“$(BCB)\BIN\”全部删除,要退出C++ Builder的原因是后面的make将要使用.tds文件。
然后检查环境变量COVFILE是否正确,在Bullseye Coverage安装COVFILE的确省值为“我的文挡\test.cov”,如果要修改必须在运行make指令之前。
COVFILE设置没有问题的话,就删除Project所有的.obj文件,然后运行:
cov01 -1
make –f project.mak
在运行make的时候,一个新的覆盖率都为零的COVFILE就产生了。
之后运行project 生成的exe文件,COVFILE中的数据就会同步更新。
使用BullseyeCoverage
.COV文件可以使用BullseyeCoverage来查看。
打开一个COV文件后,首先在在左边我们可以看到有三种查看方式
一般都只使用“Files”,要注意由于BullseyeCoverage 对C++ Bulder/VC本身的类的情
况也会跟踪覆盖情况,我们在实际统计是应该忽略这一部分,不能用底部的数据为准
点击“Files”各个文件夹、可以看到下一级的代码覆盖率情况。
点击文件可以看到文件内各函数的覆盖情况。
使用“Find”应该注意增加修改一个“Filter”后,要选上结果才会在右边显示
点击文件中的任何函数可以查看文件中函数的具体覆盖情况,
绿“√”或“T”代表已经执行。
红色“→”表示没有执行。
注意:
1、Bullseye Coverage在计算
if …
else if
else
时候有问题,如果只执行了其中之一,会报只覆盖25%。
2、Bullseye Coverage似乎会缓存上次打开的COV文件,如果发现有问题应该重新打开一次COV文件。