市面上的C++代碼覆蓋率工具大都收費,Coverage Validator也不例外。Coverage Validator應該少有人聽過,我也是在stackoverflow里聽別人介紹的。所以下載了試用一下。有興趣的朋友可以去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如何工作的,本文的目的是讓大家了解到有這么一個工具,或許可以給你帶來新的思路,或許這個工具對你確實有用。
http://www.cnblogs.com/coderzh/archive/2009/07/11/1521706.html
