市面上的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如何工作的,本文的目的是讓大家瞭解到有這麼一個工具,或許可以給你帶來新的思路,或許這個工具對你確實有用。