惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Hacker News: Front Page
S
Security Affairs
Google Online Security Blog
Google Online Security Blog
Attack and Defense Labs
Attack and Defense Labs
H
Heimdal Security Blog
S
Securelist
S
Secure Thoughts
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Last Week in AI
Last Week in AI
The Last Watchdog
The Last Watchdog
N
News | PayPal Newsroom
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
O
OpenAI News
V
Vulnerabilities – Threatpost
S
Schneier on Security
Cyberwarzone
Cyberwarzone
雷峰网
雷峰网
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
美团技术团队
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
T
Tor Project blog
P
Privacy International News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
S
Security @ Cisco Blogs
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
Schneier on Security
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
aimingoo的专栏
aimingoo的专栏
L
LINUX DO - 热门话题
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
www.infosecurity-magazine.com
www.infosecurity-magazine.com
U
Unit 42

博客园 - Trinitytec

为何应立即实施 SBOM,以满足《网络弹性法案》(CRA)的合规要求 什么是CWE?概述CWE排名前25项 为什么Rust嵌入式开发仍然需要强大的静态分析 面向产品安全的威胁建模与Secure SDLC实践 FOSSID如何快速且准确找到项目中引用的第三方代码 如何利用FOSSID 管控AI生成代码合规性? CRA生效在即,ONEKEY携手创提将网络安全合规压力化为市场红利 借助 Rust + Perforce 静态分析工具QAC和Klocwork降低关键风险 eVTOL核心机载软件系统满足DO-178C适航合规的工程实践 云端自动化测试--通过基于服务器的自动化测试实现SDV创新 开发人员需要了解的关于MISRA C:2025®的信息 AI辅助代码修复优化左移开发 在AWS上部署CANoe--打造企业级ECU云端流水线 AI生成代码系列:在不干扰开发者体验的情况下集成开源代码片段检测 CVE资金中断:安全团队如何做好准备? AI生成代码系列:开源代码片段检测的有效方法 将Perforce QAC与CI/CD流水线集成实现代码“质量门控”管理 CVE是什么?常见漏洞披露概述 如何生成完整的软件物料清单(SBOM)? 如何选择一个好的软件成分分析工具? Perforce公司发布《2025汽车软件开发报告》 重新审视中国的GB标准(44495 – 44497) 硬件逆向工程101: 电路板基础知识 HydraLink—面向工程师、研究人员和爱好者的易用型汽车以太网接口 车载网络:现代汽车的数字心跳 最具影响力的汽车黑客攻击事件 网络安全全速前进:McLaren迈凯伦汽车如何应用Cybellum驱动卓越的产品安全? 浅谈TARA在汽车网络安全中的关键角色
让Google Test满足功能安全要求:VectorCAST/QA构建可量化的测试覆盖率分析体系
Trinitytec · 2026-06-18 · via 博客园 - Trinitytec

背景:功能安全项目中的测试体系升级挑战

随着汽车电子、工业控制、轨道交通及医疗设备等行业软件复杂度持续提升,自动化测试已经成为保障软件质量的重要手段。作为业界应用最广泛的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

覆盖率分析报告界面

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

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