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


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

 

#1樓   2009-07-11 23:20 jjj
c# 下能用MSTest里的,c++ 就不行了,這個不錯,俺回頭認真看下。
#2樓 [ 樓主] 2009-07-11 23:29 CoderZh  
@ jjj
我也是困惑於MS不提供C++的代碼覆蓋率的支持。
#3樓   2009-07-14 01:09 不理解
代碼覆蓋率工具
是做什么用呢?
#4樓 [ 樓主] 2009-07-14 12:48 CoderZh  
@ 不理解
覆蓋率是用來度量測試完整性的一個手段。軟件的覆蓋率總體上分為邏輯覆蓋(代碼覆蓋和結構化覆蓋)和功能覆蓋。通過覆蓋率數據,可以知道測試得是否充分,測試得弱點在哪些方面,進而可以指導我們設計能夠增加覆蓋率的測試用例。
代碼覆蓋率工具就是用來統計覆蓋率的工具。
#5樓   2013-11-21 21:43 Alexia(minmin)  
Bullseye Coverage這款軟件呢?

 

http://www.cnblogs.com/coderzh/archive/2009/07/11/1521706.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM