📖 导读:为什么每个车载测试工程师都必须懂ISO 26262?

2026年,国内L3级自动驾驶强制国标进入公示阶段,明确2027年正式落地实施。新规直接划定了一条红线:转向、制动、感知等核心安全系统必须满足ISO 26262最高ASIL D等级要求。

这意味着什么?ISO 26262不再是车企的可选加分项,而是车型备案、量产上牌的硬性材料。对于测试工程师来说,不懂ISO 26262,等于失去了进入车载测试核心赛道的门票。

但说实话,ISO 26262这个标准本身就不太”亲民”——12个部分、几百页英文文档、满篇的术语缩写(ASIL、HARA、FMEA、FMEDA……),光是看目录就让人头大。

这篇文章的目标很简单:用大白话把ISO 26262拆开揉碎讲清楚,重点放在跟测试工程师最相关的部分——测试用例设计要求。不管你是刚接触车载测试的新人,还是想系统补课的老手,看完这篇你会有一个清晰的知识框架。



一、ISO 26262是什么?从哪里来的?

1.1 一句话定义

ISO 26262是道路车辆功能安全的国际标准,专门针对汽车电子电气(E/E)系统的安全性,目标是:当系统出现故障时,不会导致不可接受的风险——简单说就是”坏了也不能伤人”。

💡 核心思想:

功能安全不是”不出故障”,而是”出了故障后系统仍然安全”。
比如刹车系统失灵了,车辆能自动切入跛行模式(限速+报警),而不是直接失控——这就是功能安全。

1.2 它的来历

ISO 26262不是凭空诞生的,它有一个”父亲”——IEC 61508,这是工业领域通用的功能安全基础标准。2005年,汽车行业觉得IEC 61508不太贴合车载场景,于是开始制定专属标准,2011年正式发布第一版ISO 26262,2018年发布第二版(现行版本),新增了对摩托车、卡车、半导体等的覆盖。

1.3 为什么现在这么火?

驱动因素
说明
政策强制
L3自动驾驶国标要求核心系统达ASIL D,ISO 26262成为准入门槛
事故追责
多起高阶辅助驾驶事故引发争议,ISO 26262是划分安全责任的核心依据
出海合规
欧洲(UNECE R155/R156)、美国市场均要求功能安全认证
供应链要求
Tier 1供应商被OEM强制要求通过ISO 26262认证

⚡ 关键认知

ISO 26262不是”做不做”的问题,而是”不做就没法卖车”的问题。对于测试工程师来说,掌握ISO 26262的测试要求,是进入车载核心项目的硬性门槛。



二、标准的12个部分全景图

ISO 26262总共有12个部分(Part 1~Part 12),第一眼看上去很多,但其实逻辑非常清晰。我们先用一个表格整体扫一遍,然后挑重点展开。

部分
名称
核心内容
跟测试的关系
Part 1
术语定义
标准中所有术语和缩略语
基础,必读
Part 2
功能安全管理
组织级安全文化、安全生命周期管理
了解流程框架
Part 3
概念阶段
项目定义、HARA危害分析、安全目标制定
理解ASIL怎么来的
Part 4
系统级产品开发
系统架构、技术安全要求、系统集成测试
⭐ 核心
Part 5
硬件级产品开发
硬件设计要求、硬件架构指标、FMEDA
⭐ 核心
Part 6
软件级产品开发
软件需求、架构、单元测试、集成测试
⭐ 核心
Part 7
生产发布
生产、运行、退役阶段的安全要求
了解即可
Part 8
支撑过程
配置管理、变更管理、验证工具置信度
工具认证相关
Part 9
ASIL和安全分析
ASIL分解、要素共因分析
安全分析基础
Part 10
指南
标准使用指南(初学者建议从这里开始读)
入门必读
Part 11
半导体指南
半导体器件应用指南(第二版新增)
芯片测试相关
Part 12
摩托车适配
摩托车和开放式三轮车适配(第二版新增)
特定领域
微信公众号二维码图片引自微信公众号,扫码关注阅读原文

📖 学习建议

初学者不要从Part 1开始啃(术语表太枯燥)。建议从Part 10(指南)开始,它帮你建立整体认知,然后再看Part 3(概念阶段)理解ASIL怎么来的,最后深入Part 4-6(系统/硬件/软件)学测试要求。



三、核心概念:ASIL等级怎么定?

ISO 26262最核心的概念就是ASIL(Automotive Safety Integrity Level,汽车安全完整性等级)。它把安全风险分成5个等级,从低到高依次是:QM → ASIL A → ASIL B → ASIL C → ASIL D。

3.1 ASIL等级一览

等级
风险描述
典型系统举例
测试要求强度
QM
无安全风险,仅质量管理
车载信息娱乐系统UI
常规质量管理
ASIL A
最低安全要求
车内氛围灯、座椅加热
基本测试+评审
ASIL B
中等安全要求
倒车雷达、仪表盘显示
增加故障分析测试
ASIL C
较高安全要求
车身控制模块(BCM)
增加覆盖率要求
ASIL D
最高安全要求
刹车系统、安全气囊、转向控制
最严苛测试+全覆盖

3.2 ASIL怎么定?三个维度

ASIL等级不是拍脑袋定的,而是通过HARA(Hazard Analysis and Risk Assessment,危害分析与风险评估)方法,从三个维度综合评估:

S严重度(Severity)E暴露度(Exposure)C可控度(Controllability)ASIL等级判定

图2:ASIL等级三维度判定模型(S×E×C)

维度一:严重度 S(Severity)——伤多狠?

等级
描述
举例
S0
无伤害
轻微不适
S1
轻中度伤害
轻微擦伤、扭伤
S2
严重伤害,可能致死
骨折、重伤
S3
致命伤害,多人伤亡
高速碰撞致死

维度二:暴露度 E(Exposure)——多常遇到?

等级
描述
举例
E0
几乎不暴露
极罕见驾驶场景
E1
低概率
偶尔遇到的恶劣天气
E2
中概率
经常遇到的拥堵路况
E3
高概率
日常驾驶频繁遇到
E4
极高概率
几乎每次驾驶都暴露

维度三:可控度 C(Controllability)——能救回来吗?

等级
描述
举例
C0
一般可控
驾驶员可轻松应对
C1
简单可控
大多数驾驶员能控制
C2
困难可控
需要较高驾驶技能
C3
几乎不可控
驾驶员无法干预

🔍 举个例子

场景:刹车系统电子故障导致刹车失灵。

· 严重度 S = S3(高速行驶刹车失灵可能致命)

· 暴露度 E = E4(每次驾驶都用刹车)

· 可控度 C = C3(刹车失灵驾驶员几乎无法控制)

→ S3+E4+C3 = ASIL D,所以刹车系统必须达到最高安全等级。

3.3 ASIL等级对测试的影响

ASIL等级直接决定了测试的深度和广度。等级越高,测试要求越严苛:

测试维度
QM
ASIL A
ASIL B
ASIL C
ASIL D
需求评审
✓
✓
✓
✓
✓
功能测试
✓
✓
✓
✓
✓
故障注入测试
–
可选
✓
✓
✓
代码覆盖率(结构覆盖)
–
SC1
SC2
SC3
SC4
MISRA C合规
–
可选
✓
✓
✓
形式化验证
–
–
可选
推荐
✓

SC = Structural Coverage(结构覆盖率),SC1最低(基本语句覆盖),SC4最高(MC/DC修改条件/判定覆盖),等级越高对代码路径的覆盖越全面。



四、V模型:ISO 26262的生命周期

ISO 26262的开发流程遵循经典的V模型。左边是设计和开发(从上往下),右边是测试和验证(从下往上)。理解这个模型,就理解了ISO 26262测试在整个生命周期中的位置。

概念阶段Part 3系统级设计Part 4硬件/软件设计Part 5/6实现单元/集成测试Part 5/6系统集成测试Part 4整车级验证Part 4ISO 26262 V模型生命周期↓ 设计开发↑ 测试验证

图3:ISO 26262 V模型——左侧设计对应右侧测试,每层都有验证

4.1 V模型的核心逻辑

V模型的美妙之处在于左右对称——每一层设计都有对应的测试层:

左侧(设计)
右侧(测试)
验证什么?
概念阶段(安全目标)
整车级验证
安全目标是否被满足
系统级设计(技术安全需求)
系统集成测试
系统架构是否正确实现
硬件/软件设计
硬件/软件集成测试
组件是否正确集成
软件单元/硬件单元实现
单元测试
单个模块是否符合需求

💡 关键理解:

ISO 26262的测试不是”写完代码再想怎么测”,而是在设计阶段就规划好测试策略——每一层设计文档都对应着未来要执行的测试用例。这就是所谓“测试左移”在功能安全标准中的体现。


五、系统级测试要求(Part 4)

ISO 26262-4是系统级产品开发的核心部分。从测试角度看,主要涉及以下几类测试:

5.1 系统级测试类型

测试类型
测试目标
关键要求
功能安全测试
验证安全功能是否符合安全目标
覆盖所有安全需求,正常+故障场景
系统架构设计验证
验证系统架构是否满足安全要求
故障注入测试,验证安全机制响应
系统集成测试
验证软硬件集成后的行为
接口测试、时序测试
系统级回归测试
变更后确认未引入新风险
变更影响分析驱动回归范围

5.2 技术安全要求(TSR)

在系统级设计阶段,功能安全概念(FSC)中的安全目标被细化为技术安全要求(TSR,Technical Safety Requirements)。TSR是可测试的、可量化的技术规格。

📌 举例对比

安全目标(SG):刹车系统在电子故障时应在200ms内进入安全状态。

技术安全要求(TSR):刹车控制器检测到主制动回路压力异常时,在50ms内激活备用制动回路,并输出故障信号到CAN总线(ID=0x123,周期10ms)。

→ TSR可以直接写出测试用例了:注入压力异常 → 测量响应时间 → 验证CAN信号输出。

5.3 系统级测试用例设计要点

系统级测试用例设计需要从以下维度全覆盖:

维度
设计思路
举例
正常功能
正常输入下安全功能是否正确执行
正常刹车请求下制动响应正常
故障场景
注入各种故障,验证安全机制触发
传感器短路 → 触发降级模式
边界条件
边界值分析,覆盖极限场景
低温-40°C启动、高温+85°C运行
时序要求
验证时间相关安全约束
Fault Tolerant Time Interval (FTTI)
接口交互
多系统交互时安全行为
同时刹车+转向时优先级处理

5.4 故障注入测试

系统级测试中最有特色的就是故障注入测试(Fault Injection Testing)。它是验证安全机制有效性的核心手段。

常用故障注入方法:

方法
原理
工具举例
软件故障注入
修改代码/变量模拟故障
调试器、Lauterbach TRACE32
硬件故障注入
引脚短路/断路模拟故障
故障注入板、继电器矩阵
CAN总线故障注入
模拟总线报文丢失/篡改/延迟
Vector CANoe、周立功CANalyst
电源故障注入
模拟电压跌落/断电
程控电源、电源扰动发生器

⚠️ 测试工程师关注点:

故障注入测试的用例设计不是随意的,要基于FMEA/FTA分析结果——先做安全分析,找出所有可能导致安全目标被违反的故障,再针对每个关键故障设计注入用例。



六、硬件级测试要求(Part 5)

ISO 26262-5聚焦硬件层面的安全要求。这部分对硬件测试工程师至关重要。

6.1 硬件架构指标

ISO 26262定义了三个关键硬件指标,ASIL等级不同,要求也不同:

指标
含义
ASIL B要求
ASIL D要求
SPFM
单点故障度量(Single Point Fault Metric)
≥60%
≥99%
LFM
潜伏故障度量(Latent Fault Metric)
≥60%
≥90%
PMHF
随机硬件失效率(Probabilistic Metric for Random Hardware Failures)
≤10⁻⁷/h
≤10⁻⁸/h

💡 大白话解释:

· SPFM:单点故障就是”一个故障就能导致危险”。SPFM越高,说明系统对单点故障的防护越好(比如有冗余设计)。
· LFM:潜伏故障是”藏着的故障,平时不暴露,和别的故障叠加才出问题”。LFM越高,说明系统能及时发现潜伏故障。
· PMHF:整个系统随机硬件失效的概率上限。ASIL D要求每小时失效概率不超过一亿分之一。

6.2 FMEDA分析

FMEDA(Failure Modes, Effects and Diagnostic Analysis,失效模式、影响与诊断分析)是硬件安全分析的核心工具。它扩展了FMEA,增加了”诊断覆盖率”维度。

FMEDA要素
说明
举例
元器件
分析的硬件器件
电阻R1
失效模式
元器件可能的失效方式
开路、短路、阻值漂移
失效影响
对安全功能的影响
信号通路中断 → 安全功能失效
失效率
该失效模式的发生概率
10 FIT(1FIT=10⁻⁹/h)
诊断机制
系统检测该故障的能力
CRC校验、看门狗、BIST
诊断覆盖率(DC)
诊断能检测到的故障比例
DC=90%

6.3 硬件测试类型

测试类型
目标
典型方法
硬件在环测试(HIL)
在仿真环境中验证ECU行为
dSPACE、NI VeriStand
故障注入测试
验证安全机制的响应
引脚级注入、电源注入
环境测试
验证极端环境下可靠性
高低温、振动、EMC
耐久性测试
验证长时间运行稳定性
加速老化、温度循环
EMC测试
电磁兼容性
传导发射、辐射抗扰

🔧 HIL测试为什么重要?

在功能安全开发中,很多故障场景无法在实车上测试(比如高速行驶中刹车失灵,太危险了)。HIL(Hardware-in-the-Loop)测试通过仿真车辆动力学模型,让ECU以为自己在真车上运行,可以在安全可控的环境下注入各种极端故障,验证安全机制是否正常响应。



七、软件级测试要求(Part 6)

ISO 26262-6是软件层面开发的要求,也是大部分软件测试工程师最关注的部分。

7.1 软件测试金字塔

形式化验证软件集成测试软件单元测试静态分析 + 代码审查ASIL D 推荐ASIL B-DASIL A-D所有 ASIL要求递增软件安全测试金字塔(由下到上,要求递增)

图4:软件测试金字塔——不同ASIL等级的测试要求层次

7.2 静态分析

静态分析不需要运行代码,通过工具扫描源代码发现问题:

分析方法
目标
ASIL A-D
代码风格检查
MISRA C合规性
所有等级
静态代码分析
未初始化变量、空指针等
所有等级
控制流分析
不可达代码、死循环
所有等级
数据流分析
数据竞争、缓冲区溢出
所有等级
形式化验证
数学证明代码符合规格
ASIL D推荐

常用工具:

工具
类型
特点
Polyspace
静态分析
MathWorks出品,支持MISRA C/C++
QAC (Helix QAC)
静态分析
汽车行业广泛使用
Coverity
静态分析
Synopsys出品,开源项目也适用
LDRA
静态/动态分析
覆盖MISRA、DO-178C等标准

7.3 软件单元测试

单元测试针对最小可测试单元(函数/模块),是软件测试的基石。

ISO 26262对单元测试方法的要求:

方法
QM
A
B
C
D
语句覆盖(Statement Coverage)
+
++
++
++
++
分支覆盖(Branch Coverage)
+
+
++
++
++
判定覆盖(Decision Coverage)
+
+
+
++
++
MC/DC覆盖
–
–
+
+
++

++ = 强烈推荐,+ = 推荐,- = 不要求

💡 MC/DC是什么?

MC/DC(Modified Condition/Decision Coverage)= 修改条件/判定覆盖。它要求:每个判定的所有可能结果都出现过,且每个条件都独立影响过判定结果。ASIL D强制要求MC/DC,这是覆盖率的”天花板”。

单元测试框架推荐:

框架
语言
特点
VectorCAST
C/C++
汽车行业主流,自动生成桩函数
Tessy
C
专业嵌入式单元测试
GoogleTest
C++
开源,适合通用C++项目
Unity/Ceedling
C
轻量级,嵌入式友好

7.4 软件集成测试

集成测试验证多个模块组合后的行为。ISO 26262要求以下方法:

方法
说明
ASIL要求
需求-based测试
基于软件架构需求设计用例
所有等级
接口测试
验证模块间接口(参数、调用顺序)
所有等级
故障注入测试
软件层面注入异常值,验证鲁棒性
ASIL B-D
资源使用测试
验证CPU负载、内存、栈深度
ASIL B-D
背靠背测试
模型代码与手写代码结果对比
ASIL B-D推荐

⚡ 关于MISRA C

MISRA C(Motor Industry Software Reliability Association C标准)是汽车行业C语言编码规范,ISO 26262 ASIL B及以上等级强制要求MISRA C合规。最新版MISRA C:2023包含约1500条规则,分为强制(Mandatory)、必要(Required)、建议(Advisory)三类。



八、测试用例设计方法实战

讲完了标准要求,这一章我们回到地面——具体怎么设计符合ISO 26262的测试用例。

8.1 基于需求的正向设计

ISO 26262的核心原则:每个测试用例必须追溯到安全需求。不能有”测着玩”的用例。

📐 测试用例设计四步法

Step 1:从安全需求中提取测试条件

Step 2:对每个测试条件做等价类划分+边界值分析

Step 3:设计正向用例(验证正常功能)+ 反向用例(验证异常处理)

Step 4:建立需求-用例追溯矩阵

8.2 边界值分析

边界值是缺陷最容易出现的地方。对于汽车系统,典型边界包括:

边界类型
举例
数值边界
车速0/300km/h、转速0/8000rpm
时间边界
FTTI超时临界值、看门狗刷新周期
环境边界
温度-40°C/+125°C、电压6V/18V
资源边界
CPU负载90%/99%、RAM使用率80%/95%
通信边界
CAN总线负载率70%/100%、报文周期±10%

8.3 故障注入测试用例设计

故障注入用例设计基于安全分析(FMEA/FTA)结果。流程如下:

FMEA/FTA安全分析识别关键故障模式设计注入方法执行验证安全机制✓

图5:故障注入测试用例设计流程

8.4 ASIL B等级ECU测试用例模板

下面给出一个符合ISO 26262要求的测试用例模板示例:

测试用例编号:TC-ASILB-ECU-023
安全需求ID:SR-BRAKE-007
ASIL等级:ASIL B
测试类型:故障注入测试

【测试目标】
验证刹车控制器在主制动压力传感器信号丢失时,
能在50ms内激活备用制动回路并输出故障CAN报文。

【前置条件】
1. ECU上电,处于正常工作模式
2. 车辆模型速度设为60km/h
3. HIL仿真环境就绪

【测试步骤】
1. 开始正常制动请求(制动踏板踩下50%)
2. 等待2秒,确认制动响应正常
3. 注入故障:断开主压力传感器信号线(模拟开路)
4. 记录ECU响应时间和CAN总线报文

【预期结果】
1. 故障检测时间 ≤ 10ms
2. 备用制动回路激活时间 ≤ 50ms(从故障发生起算)
3. CAN总线输出故障报文(ID=0x123, DLC=8, Data[0]=0x01)
4. 制动力不低于正常值的80%
5. 仪表盘点亮制动故障警示灯

【追溯】
- 安全目标:SG-BRAKE-002
- 技术安全需求:TSR-BRAKE-007
- FMEA项:FMEA-BRAKE-015(压力传感器开路失效)

【覆盖率】
- 需求覆盖率:SR-BRAKE-007 ✓
- ASIL B结构覆盖率:分支覆盖 ≥ 90%

💡 模板要点解析:

这个模板体现了ISO 26262对测试用例的核心要求:每条用例都能追溯到安全需求和FMEA分析项,有明确的量化预期结果,覆盖了正常和故障两种场景。



九、测试文档与追溯管理

9.1 测试计划(Test Plan)

ISO 26262要求在项目早期制定测试计划,核心内容包括:

内容
说明
测试范围
哪些功能、哪些ASIL等级在测试范围内
测试策略
单元/集成/系统/HIL各层级测试方案
测试环境
HIL平台、仿真模型、工具链清单
通过/失败准则
量化标准(如覆盖率≥90%、响应时间≤50ms)
资源与进度
人员、设备、时间节点
回归测试策略
变更影响分析方法和回归范围确定

9.2 追溯矩阵(Traceability Matrix)

追溯矩阵是ISO 26262审计中最常被查的文档。它建立了一条从安全目标到测试用例的完整链路:

安全目标 (SG)
    ↓ 追溯
功能安全概念 (FSC)
    ↓ 追溯
技术安全需求 (TSR)
    ↓ 追溯
软件/硬件安全需求 (SW-SR / HW-SR)
    ↓ 追溯
测试用例 (TC)
    ↓ 追溯
测试结果 (TR)

📋 追溯矩阵示例

安全目标
技术安全需求
测试用例
测试结果
覆盖率
SG-BRAKE-002
TSR-BRAKE-007
TC-023, TC-024, TC-025
全部通过
100%
SG-STEER-001
TSR-STEER-003
TC-031, TC-032
1失败/1通过
50%
SG-AIRBAG-005
TSR-AIRBAG-012
TC-045~TC-050
全部通过
100%

9.3 工具链推荐

工具
用途
特点
Polarion (Siemens)
需求+追溯管理
汽车行业主流,与ISO 26262深度集成
IBM DOORS
需求管理
老牌需求管理工具,支持追溯
JIRA + Xray/Test Management
测试管理
敏捷团队友好,但追溯能力弱于Polarion
Vector tools (CANoe + vTESTstudio)
CAN总线测试
车载测试标配
dSPACE AutomationDesk
HIL自动化测试
与dSPACE HIL硬件深度集成
VectorCAST
软件单元/集成测试
自动生成桩函数,覆盖率分析

💡 工具置信度(Tool Confidence Level, TCL):

ISO 26262-8要求对使用的工具进行置信度评估。如果工具输出错误会导致安全需求被违反,该工具需要更高的TCL等级(TCL1~TCL3),TCL3要求工具本身通过认证。选工具时要注意这一点。


十、常见问题Q&A

Q1:ISO 26262和ASPICE有什么区别?做哪个就够了?

A:两者定位不同,不冲突。ASPICE是过程能力评估(关注”你做得好不好”),ISO 26262是功能安全标准(关注”你的系统出了故障安不安全”)。ASPICE是过程维度的能力提升,ISO 26262是产品维度的安全合规。大部分OEM两个都要求。建议先做ISO 26262(合规硬性要求),再逐步推ASPICE。


Q2:ASIL等级越高,测试用例数量怎么估算?

A:没有固定公式,但有经验参考:
· ASIL A:每条安全需求约5-10个用例
· ASIL B:每条安全需求约10-20个用例
· ASIL C:每条安全需求约20-40个用例
· ASIL D:每条安全需求约40-80个用例
这个数量包括正常用例、边界用例和故障注入用例。实际数量取决于系统复杂度和安全需求粒度。


Q3:没有认证机构介入,企业如何自评估ISO 26262合规性?

A:可以通过以下方式做内部评估:
1. 建立内部功能安全审计流程(Part 2要求)
2. 聘请有TÜV/exida认证的功能安全工程师(FS Eng)担任安全经理
3. 使用功能安全评估checklist(ISO 26262-2 Annex B提供了安全审计问卷)
4. 定期做功能安全评估(Functional Safety Assessment, FSA)
但如果需要对外宣称合规(特别是面向OEM),建议做第三方认证。


Q4:ISO 26262和SOTIF(ISO 21448)是什么关系?

A:ISO 26262关注系统故障导致的安全问题(如传感器坏了怎么办)。SOTIF(Safety of the Intended Functionality)关注系统没坏但功能本身有缺陷导致的安全问题(如AI识别算法在没有故障的情况下误识别了行人)。两者是互补关系。对于L3+自动驾驶,ISO 26262 + SOTIF双标准融合已成为行业共识。


Q5:测试覆盖率达不到要求怎么办?

A:实际项目中覆盖率不达标很常见。处理方法:
1. 分析未覆盖原因:是死代码?需求遗漏?还是测试用例不够?
2. 死代码:评估是否可删除,删除后重新测量
3. 需求遗漏:补充安全需求后补写用例
4. 技术上无法覆盖:写豁免说明,记录理由,经安全经理评审批准
5. 所有豁免必须在安全档案中留档,审计时可追溯。



十一、实战模拟:从安全目标到测试用例的完整演练

前面十章我们把ISO 26262的理论框架讲了一遍。但说实话,光看标准条文不动手,知识是留不住的。这一章我们做一个完整的实战模拟——从安全目标出发,走完HARA→TSR→测试用例设计→执行的完整流程。

💡 模拟场景:

假设你是一家Tier 1供应商的测试工程师,负责”电子助力转向系统(EPS)”的安全测试。OEM给出的安全目标是ASIL D。你需要从零开始设计测试方案。

11.1 第一步:理解安全目标

项目启动会上,安全经理给你一份安全目标清单,其中一条是:

🎯 安全目标(Safety Goal)

SG-EPS-001:当EPS电机驱动回路发生单点故障时,系统应在FTTI=100ms内进入安全状态(转向助力降级模式),确保驾驶员仍可通过机械转向控制车辆,转向力不超过150N。

ASIL等级:D(最高安全等级)

你的任务:基于这个安全目标,设计完整的测试用例并执行验证。

11.2 第二步:拆解技术安全要求(TSR)

安全目标太抽象,没法直接写测试用例。系统工程师会将它拆解为可测试的技术安全要求(TSR):

TSR编号
技术安全要求
可测试指标
TSR-EPS-001
电机驱动回路需配置双通道电流监测,两通道差异>15%时判定为故障
注入差异信号,检测判定时间≤20ms
TSR-EPS-002
故障检测后50ms内切断电机驱动使能信号
示波器测量EN信号下降沿时间≤50ms
TSR-EPS-003
故障检测后80ms内通过CAN总线发送故障报文(ID=0x1A3)
CANoe捕获报文时间戳≤80ms
TSR-EPS-004
降级模式下转向力不超过150N(车速20km/h)
力传感器测量转向盘扭矩换算力≤150N
TSR-EPS-005
看门狗在故障后持续运行,每10ms刷新一次
监控WDI信号周期=10ms±1ms

⚠️ 关键认知:

注意TSR和安全目标的区别——安全目标说”100ms内进入安全状态”(抽象),TSR把它拆成了5条可量化的技术要求,每条都有明确的数字指标。这就是从”要安全”到”怎么测”的桥梁。

11.3 第三步:FMEA分析识别关键故障

在写测试用例之前,你需要先看FMEA分析结果,找出哪些故障可能导致安全目标被违反。以下是EPS电机驱动回路的FMEA摘要:

FMEA编号
元器件
失效模式
失效影响
ASIL
诊断机制
F-EPS-001
电流采样电阻R1
阻值漂移>+20%
电流检测值偏低,过流保护失效
D
双通道交叉校验
F-EPS-002
电机驱动MOSFET Q1
短路(源漏击穿)
电机持续通电,不可控转向
D
过流检测+硬件关断
F-EPS-003
电流采样电阻R2
开路
第二通道电流检测失效
D
R1/R2交叉校验
F-EPS-004
MCU GPIO(EN引脚)
输出锁死为高
故障后无法切断电机驱动
D
外部看门狗监测
F-EPS-005
CAN收发器
TXD短路到地
故障报文无法发出
B
CAN总线监控

11.4 第四步:设计测试用例

基于TSR和FMEA,我们设计一组完整的测试用例。这里展示5条核心用例:

用例1:电流采样电阻阻值漂移(基于F-EPS-001 + TSR-EPS-001)

测试用例编号:TC-EPS-001
ASIL等级:D
测试类型:故障注入测试(硬件级)

【安全需求追溯】
- 安全目标:SG-EPS-001
- 技术安全要求:TSR-EPS-001
- FMEA项:F-EPS-001

【测试环境】
- HIL平台:dSPACE Scalexio
- 仿真模型:车辆动力学模型(整备质量1500kg,车速20km/h)
- 工具:Lauterbach TRACE32(故障注入)+ CANoe(报文监控)

【前置条件】
1. EPS控制器上电,初始化完成,无故障
2. HIL模型设为直线行驶,车速20km/h
3. CANoe开始抓取ID=0x1A3报文
4. TRACE32连接MCU,准备注入变量值

【测试步骤】
1. 开始正常行驶仿真,持续10秒确认系统正常
2. 通过TRACE32修改电流采样值寄存器:通道A值×0.8(模拟R1阻值漂移+25%)
3. 保持故障状态,记录以下时间戳:
   T0 = 故障注入时刻
   T1 = 故障检测判定时刻(CANoe监测DTC状态位变化)
   T2 = EN信号下降沿时刻(示波器/TRACE32 GPIO监测)
   T3 = 故障报文发出时刻(CANoe报文时间戳)
4. 测量降级模式下转向盘扭矩(力传感器读数)
5. 持续30秒,观察系统是否保持安全状态
6. 恢复故障,验证系统是否能恢复正常模式

【预期结果】
✓ T1 - T0 ≤ 20ms(故障检测时间)
✓ T2 - T0 ≤ 50ms(EN信号关断时间)
✓ T3 - T0 ≤ 80ms(故障报文发出时间)
✓ 降级模式转向力 ≤ 150N
✓ 看门狗WDI信号周期 = 10ms ± 1ms(持续运行)
✓ 故障恢复后系统正常工作

【实际结果】
(执行后填写)

【判定准则】
所有预期结果均满足 → PASS
任一项不满足 → FAIL,触发安全分析评审

用例2:MOSFET短路故障(基于F-EPS-002 + TSR-EPS-002)

测试用例编号:TC-EPS-002
ASIL等级:D
测试类型:故障注入测试(硬件级)

【安全需求追溯】
- 安全目标:SG-EPS-001
- 技术安全要求:TSR-EPS-002
- FMEA项:F-EPS-002

【测试环境】
- HIL平台:dSPACE Scalexio
- 故障注入方式:硬件故障注入板(继电器矩阵短路MOSFET栅源极)

【前置条件】
1. EPS控制器上电,正常运行
2. HIL模型设为弯道行驶(曲率半径50m,车速20km/h)
3. 示波器接入EN引脚和电机相线

【测试步骤】
1. 开始正常弯道行驶仿真,持续10秒
2. 通过故障注入板短路Q1栅源极(模拟MOSFET击穿)
3. 记录时间戳T0~T3(同用例1)
4. 监测电机相线电流波形(是否出现持续过流)
5. 测量降级模式最大转向力

【预期结果】
✓ 过流保护在5ms内触发硬件关断
✓ T2 - T0 ≤ 50ms(EN信号关断)
✓ T3 - T0 ≤ 80ms(故障报文发出)
✓ 电机相线无持续过流(硬件关断有效)
✓ 降级模式转向力 ≤ 150N
✓ 无二次故障(如过热、电源异常等)

【风险等级】ASIL D —— 若FAIL需立即停止测试,触发安全评审

用例3:正常功能验证(正向测试)

测试用例编号:TC-EPS-010
ASIL等级:D
测试类型:功能安全测试(正常场景)

【安全需求追溯】
- 安全目标:SG-EPS-001(验证正常情况下安全机制不误触发)

【测试步骤】
1. 系统上电初始化,确认无故障
2. 以下场景各运行60秒,验证安全机制不误触发:
   a) 直线行驶(车速0→60km/h渐变)
   b) 弯道行驶(左转/右转,转角30°~90°)
   c) 原地转向(车速0km/h,转向盘±360°)
   d) 颠簸路面(叠加正弦振动,频率5Hz~20Hz)
   e) 紧急转向(快速打方向,角速度>500°/s)

【预期结果】
✓ 所有场景中DTC状态位 = 0(无故障)
✓ EN信号保持高电平(不误关断)
✓ 无故障报文发出
✓ 转向助力正常(扭矩传感器读数在正常范围)
✓ 看门狗正常刷新

【意义】验证安全机制的"不误触发"能力——
如果正常行驶就频繁误触发降级模式,反而造成新的安全风险。

用例4:时序边界测试

测试用例编号:TC-EPS-020
ASIL等级:D
测试类型:边界值测试

【测试目标】
验证FTTI(Fault Tolerant Time Interval)边界条件下
安全机制是否在100ms内完成全链路响应。

【测试步骤】
1. 注入电流采样差异故障(通道A×0.8)
2. 分别在以下时刻注入故障,测量完整响应链路时间:
   a) 系统刚上电第1ms(初始化阶段)
   b) 系统初始化完成第50ms
   c) 正常运行第10s
   d) 转向盘高速转动中(角速度500°/s)
   e) CAN总线高负载时(负载率85%)
   f) 电源电压跌落到9V时(边界电压)

【预期结果】
✓ 所有场景下 T3 - T0 ≤ 100ms(完整链路时间)
✓ 初始化阶段故障 → 系统不进入正常模式,直接进入安全状态
✓ 边界电压(9V)下安全机制仍可正常工作

【覆盖率】
- 需求覆盖率:TSR-EPS-001/002/003 全覆盖
- 边界覆盖:初始化边界、运行边界、电源边界、总线负载边界

用例5:资源使用边界测试

测试用例编号:TC-EPS-030
ASIL等级:D
测试类型:资源使用测试

【测试目标】
验证在CPU/内存资源紧张时安全机制仍能正常响应。

【测试步骤】
1. 通过TRACE32注入以下压力条件:
   a) CPU负载提升至95%(注入空循环任务)
   b) RAM使用率提升至90%(填充大数组)
   c) 栈深度达到80%(递归调用)
2. 在以上各压力条件下注入电流采样故障
3. 测量故障检测到安全状态进入的时间

【预期结果】
✓ CPU 95%负载下:故障检测时间 ≤ 20ms(允许+5ms余量)
✓ RAM 90%使用下:无内存溢出,安全机制正常
✓ 栈深度80%下:无栈溢出,安全机制正常
✓ 所有压力条件下 T3-T0 ≤ 100ms

【意义】ISO 26262-6要求ASIL B以上必须做资源使用测试,
验证极端资源条件下安全功能不受影响。

11.5 第五步:测试执行与问题处理

假设你在执行用例2(MOSFET短路故障)时,发现了一个问题:

⚠️ 实战问题发现

现象:MOSFET短路故障注入后,EN信号关断时间为62ms(超出50ms要求),且电机相线出现持续3A过流持续15ms。

影响:TSR-EPS-002不满足,ASIL D安全目标可能被违反。

处理步骤
具体操作
1. 停止测试
立即停止所有故障注入测试,恢复HIL到安全状态
2. 记录现象
保存示波器波形、CANoe日志、TRACE32变量快照
3. 上报
通知安全经理,发起安全评审会议
4. 根因分析
定位到过流检测电路滤波电容C3容值偏大,导致检测延迟
5. 设计变更
减小C3容值(100nF→47nF),增加硬件比较器快速通道
6. 回归测试
修改后重跑TC-EPS-001~005,确认全部通过
7. 影响分析
评估C3变更是否影响其他安全需求,更新FMEA
8. 档案更新
更新安全档案、测试报告、追溯矩阵

💡 实战感悟:

这就是ISO 26262测试和普通功能测试最大的区别——发现问题不是终点,而是安全改进的起点。每一条测试失败都要走根因分析→设计变更→回归验证→档案更新的完整闭环。这个过程看似繁琐,但正是这种”死磕”精神,才让汽车安全系统越来越可靠。

11.6 测试覆盖率汇总

所有用例执行完毕后,汇总覆盖率报告:

覆盖率维度
要求
实际达成
状态
安全需求覆盖率
100%
5/5 TSR全覆盖
✅ PASS
FMEA故障模式覆盖
100%(ASIL D项)
4/4 ASIL D项覆盖
✅ PASS
语句覆盖率(SC)
SC4(ASIL D)
100%
✅ PASS
分支覆盖率
SC4
98.5%(2条防御性代码不可达)
⚠️ 豁免
MC/DC覆盖率
SC4(ASIL D)
96%(3条条件无法独立验证)
⚠️ 豁免+评审
资源使用测试
ASIL D必须
CPU/RAM/栈全覆盖
✅ PASS

💡 关于覆盖率豁免:

实际项目中很难做到100%覆盖率。对于不可达代码或无法独立验证的条件,需要写豁免说明(Rationale),由安全经理评审批准后在安全档案中留档。ISO 26262审计时会重点查这些豁免的合理性。

11.7 实战流程总结图

安全目标(SG)拆解TSR可量化指标FMEA分析识别故障设计用例正+反+边界执行测试HIL+注入覆盖率报告← 失败时:根因分析→设计变更→回归验证

图6:ISO 26262测试实战流程(含失败反馈闭环)



十二、总结与学习路径

12.1 核心要点回顾

知识点
核心结论
ISO 26262是什么
汽车电子电气系统功能安全国际标准,2018年第二版现行
ASIL等级
QM/A/B/C/D五级,由S(严重度)×E(暴露度)×C(可控度)决定
12个部分
Part 4-6是测试核心,Part 10是入门指南
V模型
设计与测试对称,每层都有验证,测试左移
系统级测试
功能安全测试+故障注入+系统集成测试
硬件测试
SPFM/LFM/PMHF三指标,FMEDA分析,HIL测试
软件测试
静态分析→单元测试→集成测试,MC/DC覆盖率
用例设计
基于需求追溯,边界值+故障注入,模板化
追溯管理
SG→FSC→TSR→TC→TR完整链路,审计核心

12.2 学习路径建议

🚀 推荐学习路线(3-6个月)

第1个月:建立认知

· 通读ISO 26262 Part 10(指南)

· 理解ASIL等级和V模型概念

· 了解HARA、FMEA、FTA基本方法


第2-3个月:深入测试要求

· 精读Part 4(系统级)、Part 6(软件级)

· 实操MISRA C静态分析工具(QAC/Polyspace)

· 学习VectorCAST或Tessy做单元测试


第4-6个月:项目实战

· 参与一个ASIL B以上项目的测试用例设计

· 在HIL平台上做故障注入测试

· 完成一次完整的追溯矩阵文档

12.3 认证推荐

认证
发证机构
适合人群
FS Engineer (TÜV Rheinland)
TÜV莱茵
功能安全工程师
FS Engineer (TÜV SÜD)
TÜV南德
功能安全工程师
exida FS Eng
exida
硬件/系统方向
ISO 26262内审员
各认证机构
企业内部功能安全审计