📖 导读:为什么每个车载测试工程师都必须懂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 为什么现在这么火?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
⚡ 关键认知
ISO 26262不是”做不做”的问题,而是”不做就没法卖车”的问题。对于测试工程师来说,掌握ISO 26262的测试要求,是进入车载核心项目的硬性门槛。
二、标准的12个部分全景图
ISO 26262总共有12个部分(Part 1~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等级一览
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2 ASIL怎么定?三个维度
ASIL等级不是拍脑袋定的,而是通过HARA(Hazard Analysis and Risk Assessment,危害分析与风险评估)方法,从三个维度综合评估:
图2:ASIL等级三维度判定模型(S×E×C)
维度一:严重度 S(Severity)——伤多狠?
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
维度二:暴露度 E(Exposure)——多常遇到?
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
维度三:可控度 C(Controllability)——能救回来吗?
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🔍 举个例子
场景:刹车系统电子故障导致刹车失灵。
· 严重度 S = S3(高速行驶刹车失灵可能致命)
· 暴露度 E = E4(每次驾驶都用刹车)
· 可控度 C = C3(刹车失灵驾驶员几乎无法控制)
→ S3+E4+C3 = ASIL D,所以刹车系统必须达到最高安全等级。
3.3 ASIL等级对测试的影响
ASIL等级直接决定了测试的深度和广度。等级越高,测试要求越严苛:
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SC = Structural Coverage(结构覆盖率),SC1最低(基本语句覆盖),SC4最高(MC/DC修改条件/判定覆盖),等级越高对代码路径的覆盖越全面。
四、V模型:ISO 26262的生命周期
ISO 26262的开发流程遵循经典的V模型。左边是设计和开发(从上往下),右边是测试和验证(从下往上)。理解这个模型,就理解了ISO 26262测试在整个生命周期中的位置。
图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 系统级测试用例设计要点
系统级测试用例设计需要从以下维度全覆盖:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.4 故障注入测试
系统级测试中最有特色的就是故障注入测试(Fault Injection Testing)。它是验证安全机制有效性的核心手段。
常用故障注入方法:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
⚠️ 测试工程师关注点:
故障注入测试的用例设计不是随意的,要基于FMEA/FTA分析结果——先做安全分析,找出所有可能导致安全目标被违反的故障,再针对每个关键故障设计注入用例。
六、硬件级测试要求(Part 5)
ISO 26262-5聚焦硬件层面的安全要求。这部分对硬件测试工程师至关重要。
6.1 硬件架构指标
ISO 26262定义了三个关键硬件指标,ASIL等级不同,要求也不同:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💡 大白话解释:
· SPFM:单点故障就是”一个故障就能导致危险”。SPFM越高,说明系统对单点故障的防护越好(比如有冗余设计)。
· LFM:潜伏故障是”藏着的故障,平时不暴露,和别的故障叠加才出问题”。LFM越高,说明系统能及时发现潜伏故障。
· PMHF:整个系统随机硬件失效的概率上限。ASIL D要求每小时失效概率不超过一亿分之一。
6.2 FMEDA分析
FMEDA(Failure Modes, Effects and Diagnostic Analysis,失效模式、影响与诊断分析)是硬件安全分析的核心工具。它扩展了FMEA,增加了”诊断覆盖率”维度。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.3 硬件测试类型
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🔧 HIL测试为什么重要?
在功能安全开发中,很多故障场景无法在实车上测试(比如高速行驶中刹车失灵,太危险了)。HIL(Hardware-in-the-Loop)测试通过仿真车辆动力学模型,让ECU以为自己在真车上运行,可以在安全可控的环境下注入各种极端故障,验证安全机制是否正常响应。
七、软件级测试要求(Part 6)
ISO 26262-6是软件层面开发的要求,也是大部分软件测试工程师最关注的部分。
7.1 软件测试金字塔
图4:软件测试金字塔——不同ASIL等级的测试要求层次
7.2 静态分析
静态分析不需要运行代码,通过工具扫描源代码发现问题:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
常用工具:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.3 软件单元测试
单元测试针对最小可测试单元(函数/模块),是软件测试的基石。
ISO 26262对单元测试方法的要求:
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
++ = 强烈推荐,+ = 推荐,- = 不要求
💡 MC/DC是什么?
MC/DC(Modified Condition/Decision Coverage)= 修改条件/判定覆盖。它要求:每个判定的所有可能结果都出现过,且每个条件都独立影响过判定结果。ASIL D强制要求MC/DC,这是覆盖率的”天花板”。
单元测试框架推荐:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.4 软件集成测试
集成测试验证多个模块组合后的行为。ISO 26262要求以下方法:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
⚡ 关于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 边界值分析
边界值是缺陷最容易出现的地方。对于汽车系统,典型边界包括:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8.3 故障注入测试用例设计
故障注入用例设计基于安全分析(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要求在项目早期制定测试计划,核心内容包括:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.2 追溯矩阵(Traceability Matrix)
追溯矩阵是ISO 26262审计中最常被查的文档。它建立了一条从安全目标到测试用例的完整链路:
安全目标 (SG)
↓ 追溯
功能安全概念 (FSC)
↓ 追溯
技术安全需求 (TSR)
↓ 追溯
软件/硬件安全需求 (SW-SR / HW-SR)
↓ 追溯
测试用例 (TC)
↓ 追溯
测试结果 (TR)
📋 追溯矩阵示例
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.3 工具链推荐
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💡 工具置信度(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和安全目标的区别——安全目标说”100ms内进入安全状态”(抽象),TSR把它拆成了5条可量化的技术要求,每条都有明确的数字指标。这就是从”要安全”到”怎么测”的桥梁。
11.3 第三步:FMEA分析识别关键故障
在写测试用例之前,你需要先看FMEA分析结果,找出哪些故障可能导致安全目标被违反。以下是EPS电机驱动回路的FMEA摘要:
|
|
|
|
|
|
|
|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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安全目标可能被违反。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💡 实战感悟:
这就是ISO 26262测试和普通功能测试最大的区别——发现问题不是终点,而是安全改进的起点。每一条测试失败都要走根因分析→设计变更→回归验证→档案更新的完整闭环。这个过程看似繁琐,但正是这种”死磕”精神,才让汽车安全系统越来越可靠。
11.6 测试覆盖率汇总
所有用例执行完毕后,汇总覆盖率报告:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
💡 关于覆盖率豁免:
实际项目中很难做到100%覆盖率。对于不可达代码或无法独立验证的条件,需要写豁免说明(Rationale),由安全经理评审批准后在安全档案中留档。ISO 26262审计时会重点查这些豁免的合理性。
11.7 实战流程总结图
图6:ISO 26262测试实战流程(含失败反馈闭环)
十二、总结与学习路径
12.1 核心要点回顾
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 认证推荐
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
