原創|使用教程|編輯:張莉|2025-10-24 13:22:11.860|閱讀 48 次
概述:在當今追求高質量軟件的工業環境中,自動化測試已成為軟件開發不可或缺的一環。作為業界領先的自動化測試解決方案,Parasoft C/C++test為C/C++項目提供了強大的單元測試、集成測試、靜態代碼分析以及代碼覆蓋率驗證功能。
#慧都22周年慶大促·界面/圖表報表/文檔/IDE/IOT/測試等千款熱門軟控件火熱促銷中>>
在當今追求高質量軟件的工業環境中,自動化測試已成為軟件開發不可或缺的一環。作為業界領先的自動化測試解決方案,Parasoft C/C++test為C/C++項目提供了強大的單元測試、集成測試、靜態代碼分析以及代碼覆蓋率驗證功能。
其中,代碼覆蓋率是衡量測試用例對源代碼覆蓋程度的重要指標,它幫助我們評估測試的充分性,識別未被測試的代碼區域。然而,在實際項目中,常常會遇到一個關鍵問題:并非所有代碼都需要或適合進行覆蓋率統計。盲目追求100%的覆蓋率不僅不經濟,甚至可能產生誤導。此時,如何精準地屏蔽特定文件或函數的覆蓋率,就成為了一項提升測試效率與準確性的關鍵技能。
項目情況:
在真實的開發場景中,像foo.c這樣的工具文件可能源自第三方庫或平臺抽象層,其代碼穩定且已被充分測試,反復對其統計覆蓋率并無實際價值。同時,main.c中的add函數邏輯簡單到無需驗證,將其納入覆蓋率統計只會干擾報告的整體指標,使團隊難以聚焦于核心業務邏輯的測試完備性。

1、屏蔽文件覆蓋率
step1:在項目屬性里面添加高級設置
具體操作時,需首先進入項目的屬性配置界面。在Parasoft C/C++test中,通過右鍵點擊項目并選擇 【屬性】,在彈窗的左側列表中找到【Parasoft】目錄下的【高級選項】設置頁。該界面提供了添加自定義執行參數的能力,如圖所示,在此處將指定的屏蔽語句添加為一條新的高級設置項,即可實現在測試執行時忽略目標文件的覆蓋率收集。
xharness.routineManager symbol_file=*/foo.c command=setProperty property=canAddCoverageIn value=off
symbol_files屬性的值中,*是通配符。
2、屏蔽某個函數的覆蓋率
在這個項目中,如需屏蔽main.c文件內add函數的覆蓋率,可通過在源代碼中添加特定的編譯指令注釋來實現。
step1: 在想要屏蔽的函數上下加上下圖這樣的注釋語句
// parasoft-instrumentation off
int add(){
return 0;
}
// parasoft-instrumentation on
注意:// parasoft-instrumentation off中,//后面是有一個空格符號的,漏掉了空格符號,這個功能沒作用。
當Parasoft的代碼插樁引擎在預處理時遇到off指令,它會立即暫停在當前編譯單元內插入覆蓋率收集代碼;隨后,在遇到on指令時,才會恢復正常的插樁行為。被這對指令所包圍的add函數,其函數體將完全不會被插樁,因此在執行測試時,該函數不會產生任何覆蓋率數據。
該方法實現了函數級別的精確隔離與控制,無需修改項目構建配置文件或全局設置。所有屏蔽規則直接定義于源代碼中,使得配置管理與代碼版本保持同步,維護性高。這有效確保了覆蓋率數據與報告能夠準確聚焦于核心業務邏輯,排除非關鍵代碼的干擾。
Parasoft C/C++test通過提供文件與函數級別的精準覆蓋率屏蔽機制,顯著提升了測試報告的純粹性與結果的可操作性。這一能力與其強大的靜態分析、自動化測試功能緊密結合,共同構成了完整的代碼質量保障體系,不僅幫助團隊精確評估測試活動的有效性,更實現了對測試資源的優化分配,確保了關鍵業務邏輯的驗證充分性。
關于慧都
慧都科技(EVGET)成?于2003年,是?家?業數字化解決?案公司,?期專注于軟件、油?與制造?業。公司基于深?的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與?期競爭優勢。
慧都科技作為Parasoft公司在中國區的官方授權合作伙伴,為國內企業提供Parasoft C/C++test產品的正版授權、定制化部署與全生命周期技術支持與服務。我們致力于助力客戶精準貫徹功能安全標準、全面提升軟件開發效率、有效管控項目風險,最終構建符合國際標準的高質量軟件體系。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn