C++ 代碼覆蓋率工具Bullseye Coverage

發表于:2008-02-02來源:作者:點擊數: 標簽:單元測試工具覆蓋率
簡介 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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97