讓Google Test滿足功能安全要求:VectorCAST/QA構建可量化的測試覆蓋率分析體系

創提信息
2026/06/18

分享到

背景:功能安全項目中的測試體系升級挑戰

隨著汽車電子、工業控制、軌道交通及醫療設備等行業軟體複雜度持續提升,自動化測試已經成為保障軟體品質的重要手段。作為業界應用最廣泛的C/C++測試框架之一,Google Test(GoogleTest)憑藉開源、靈活、易於集成等優勢,被大量用於單元測試、元件測試和集成測試場景。


經過多年的項目實踐,許多企業已經圍繞Google Test建立了成熟的自動化測試體系,包括大量測試用例、持續集成流程以及測試管理機制。這些測試資產往往凝聚了長期積累的研發經驗和驗證成果,是企業軟體品質體系的重要組成部分。


然而,當企業開始推進ISO 26262、IEC 61508、EN 50128或IEC 62304等功能安全專案時,一個現實問題隨之出現:


現有Google Test體系如何滿足功能安全專案對測試覆蓋率、測試度量和認證證據的要求?

理論上,企業可以重新導入專門的商業測試工具並重建測試體系。但對於已經積累大量測試資產的團隊而言,這往往意味著:

大量歷史測試用例需要遷移;

開發和測試團隊需要重新學習新的工具鏈;

已建立的CI/CD流程需要調整;

專案實施週期和研發風險增加;

多年積累的測試資產難以充分複用。


因此,對於許多企業來說,挑戰並不是如何建立新的測試體系,而是:如何在保留現有Google Test測試資產和開發流程的基礎上,引入功能安全專案所需要的覆蓋率分析和測試驗證能力。這也成為越來越多功能安全項目在測試體系建設過程中面臨的共同問題。


VectorCAST/QA如何增強Google Test

VectorCAST/QA與Google Test深度融合,在不改變現有測試代碼和測試流程的前提下,為研發團隊提供覆蓋率分析、測試度量和品質管制能力。


Google Test負責測試執行,而VectorCAST/QA負責覆蓋率採集與分析。


整個流程如下:

Google Test測試用例

VectorCAST/QA對被測代碼進行插裝

執行原有Google Test測試

自動採集覆蓋率資料

生成覆蓋率分析報告

形成可量化的測試證據


開發團隊無需重新編寫測試用例,也無需改變現有測試框架,即可快速獲得專業級覆蓋率分析能力。


實現步驟一:建立Google Test專案

標準的Google Test專案通常包含以下幾個部分:

Google Test框架源碼;

被測業務代碼(Source Code);

測試用例代碼(Tests);

Makefile或CMake構建腳本。


對於已經使用Google Test的團隊而言,這部分工作通常已經完成。


VectorCAST/QA的優勢在於無需替換現有測試框架,而是在此基礎上增加覆蓋率分析能力,最大程度保護企業已有測試資產。



标准Google Test项目结构.png

標準Google Test專案結構


實現步驟二:使用VectorCAST/QA創建測試環境

創建測試環境時,首先選擇項目使用的編譯器和工具鏈。無論是GCC、Clang還是交叉編譯環境,VectorCAST/QA均能夠與現有構建流程集成。


隨後選擇需要統計覆蓋率的被測源碼,並建立對應測試環境。


选择编译器界面.png

選擇編譯器介面


选择被测源码界面.png

選擇被測源碼介面


整個過程無需修改Google Test測試代碼。


實現步驟三:覆蓋率插裝與測試執行

測試環境建立完成後,VectorCAST/QA會根據專案需求對被測代碼進行插裝(Instrumentation)。


使用者可以根據專案要求選擇不同覆蓋率指標,例如:

語句覆蓋率(Statement Coverage)

分支覆蓋率(Branch Coverage)

函數覆蓋率(Function Coverage)

MC/DC覆蓋率(Modified Condition/Decision Coverage)


插裝完成後,開發人員仍然按照原有方式執行Google Test測試。


對於測試工程師而言,整個測試過程幾乎沒有變化,但系統已經能夠自動記錄所有覆蓋率資料。


覆盖率插装配置界面.png

覆蓋率插裝配置介面


實現步驟四:生成覆蓋率分析報告

測試執行結束後,VectorCAST/QA自動生成覆蓋率分析報告。


報告中可以直觀查看:

已覆蓋代碼

未覆蓋代碼

覆蓋率百分比統計

各檔覆蓋率情況


通過顏色標記和詳細統計資訊,測試人員能夠快速識別測試盲區,並針對性地補充測試場景。


與傳統依賴經驗判斷測試充分性的方式相比,覆蓋率分析為測試品質提供了客觀、量化的評價依據。


未标题-1.png

覆蓋率分析報告介面


未标题-2.png

查看完整覆蓋率報告


為什麼不僅僅使用gcov/lcov

在開源生態中,gcov和lcov是最常見的覆蓋率統計工具。對於普通軟體專案而言,它們能夠滿足基礎覆蓋率統計需求。但對於功能安全專案而言,僅有覆蓋率數位通常並不足夠。


能力

gcov/lcov

VectorCAST/QA

語句覆蓋率

分支覆蓋率

MC/DC覆蓋率

×

嵌入式目的機支持

有限

Google Test集成

測試結果統一管理

×

標準化測試報告

有限

TÜV協力廠商認證

×

ISO 26262支持

無認證依據

IEC 61508支持

無認證依據

EN 50128支持

無認證依據

IEC 62304支持

無認證依據



gcov/lcov的核心目標是説明開發人員瞭解代碼執行情況,而不是支撐功能安全認證活動。對於功能安全專案,專案團隊除了需要覆蓋率資料,還需要證明測試工具本身的可信度和適用性。


VectorCAST/QA已經通過TÜV SÜD協力廠商認證,並提供成熟的工具驗證資料、認證支援和標準化報告體系。相比需要專案團隊自行完成工具論證的開源工具,能夠顯著降低工具引入風險和認證準備工作量。


總結

Google Test解決了“如何執行測試”的問題,而VectorCAST/QA進一步解決了“如何證明測試充分”的問題。


通過兩者的結合,企業無需放棄已有自動化測試體系,即可獲得覆蓋率分析、測試度量和功能安全合規支援能力。對於ISO 26262、IEC 61508、EN 50128和IEC 62304等功能安全專案而言,這種模式既能夠保持研發效率,又能夠建立標準化、可量化、可審計的測試證據鏈,為軟體品質提升和認證審核提供有力支撐。


瞭解更多

對於已經採用Google Test的研發團隊,VectorCAST/QA能夠在保留現有測試資產的基礎上,引入覆蓋率分析、測試度量和功能安全驗證能力,幫助企業逐步建立符合ISO 26262、IEC 61508、EN 50128及IEC 62304要求的軟體測試體系。


如需瞭解更多技術細節或評估適用方案,歡迎聯繫創提科技有限公司技術團隊交流。