C++ 代碼覆蓋率工具Bullseye Coverage
簡介 Bullseye Coverage 是Bullseye 公司提供的一款C/C++代碼覆蓋率 測試 工具,個人覺得是 比Rational 的Pure Coverage 更優秀的 測試工具 。相對于Rational 的Pure Coverage,Bullseye Coverage 支持的C/C++的編譯器更多,除了支持各種 Unix 下的編譯器之
簡介
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 可以從http://www.bullseye.com/上獲取,先登記后等待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++ Builder6。我實驗中使用的是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 文件。
原文轉自:http://www.anti-gravitydesign.com