4:MILY: 宋體">該窗口中顯示的數據與你在窗口3中的選擇相對應,顯示了各個函數的測試覆蓋情況。用鼠標雙擊某一個函數,會顯示該函數的源代碼,TrueCoverage用不同的顏色標識執行過的和未被執行過的代碼,如下圖所示:

圖4-4 TrueCoverage用不同顏色標識執行過的和未被執行過的代碼
TrueCoverage 默認情況下,用綠色代表已執行的代碼,用紅色代表未被執行的代碼,用黑色代表不可執行的代碼(你可以通過選擇TrueCoverage的 [program/setting]菜單命令,在啟動的對話框中的setting標簽頁中進行設置,來改變這種默認情況)。通過這些信息,我們可以有針對性的增加、修改用例,來提高測試覆蓋率。
4.2 對內聯函數的處理
內聯函數雖然具有函數的形式,但其機制與函數完全不同,所以,在用TrueCoverage統計測試覆蓋率時,對內聯函數需要采用不同的處理方式。
默認情況下,TrueCoverage是不會統計內聯函數的執行覆蓋率的。如果你需要得到內聯函數的覆蓋率數據,則需要進行一些額外的設置,具體方法是,在VC++的集成環境中選擇[TrueCoverage/TrueCoverage Setting...]菜單命令,彈出如下對話框:

圖4-5 內聯函數設置
選中“Instrument inline function”復選框,點擊OK。
然后選擇[TrueCoverage/Rebuild All with TrueCoverage] 菜單命令,重新進行編譯連接,對于這個可執行程序,TrueCoverage在其執行過程中就能夠記錄內聯函數的覆蓋率數據了。
4.3 TrueCoverage與BoundsChecker的結合使用
TrueCoverage與BoundsChecker可以結合起來使用。在[BoundsChecker]和[TrueCoverage]菜單下,都有一個[Rebuild with BoundsChecker and TrueCoverage]項,通過這一菜單命令編譯連接生成的可執行文件,在程序運行結束后,能同時得到TrueCoverage和BoundsChecker(FinalCheck)的檢測結果。
但這里有一個限定,那就是:必須由BoundChecker打開該exe程序執行,或是在VC++集成開發環境中通過Debug來運行該exe。這樣在執行完程序后,能同時得到TrueCoverage和BoundsChecker(FinalCheck)的檢測結果,如果你通過TrueCoverage來執行程序,則只會得到TrueCoverage檢測結果。這一點請注意。
4.4 其他
與BoundsChecker一樣,要使用TrueCoverage,一定要有被測程序的源代碼。如果沒有源碼,TrueCoverage無法統計覆蓋率。
除了可以在VC++的集成環境中使用TrueCoverage外,從 [開始菜單] 中啟動TrueCoverage,然后打開經TrueCoverage編譯連接生成的可執行文件,也可以進行覆蓋率的統計,操作方法與集成到VC++集成開發環境中的TrueCoverage的操作方法一樣,在此不再贅述。
TrueCoverages的使用介紹到此結束了,該工具對于我們進行測試覆蓋率統計、補充測試用例的工作很有用處。