让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要求的软件测试体系。


如需了解更多技术细节或评估适用方案,欢迎联系创提信息科技(上海)有限公司技术团队交流。