1. 课程导入
在智能驾驶与自动驾驶系统快速演进的今天,功能安全(FuSa)已经无法单独覆盖所有风险来源。ISO 21448 预期功能安全(SOTIF, Safety of the Intended Functionality)关注的,不是系统失效,而是系统在无故障情况下,由于性能局限、场景理解不足或可预见误用而引发的安全风险。这类风险往往不会在传统故障注入测试中暴露,却可能在真实道路的“长尾场景”中突然出现。因此,SOTIF 场景测试闭环工程成为连接安全分析、场景设计、仿真验证、实车测试与迭代改进的关键方法论。
本课程的目标,是帮助学习者建立一套可落地、可度量、可追溯的 SOTIF 场景测试闭环能力。它不是单纯讲解标准条款,而是把标准要求转化为工程动作:从危害识别到场景抽象,从参数空间采样到测试用例生成,从仿真执行到实车复现,从问题定位到闭环回归。学完本课程,你应当能够独立设计一个面向 SOTIF 的场景测试闭环,并解释每一步的输入、输出、判据与证据链。
核心价值:SOTIF 场景测试闭环工程解决的是“未知的不安全场景”如何被系统性地发现、复现、评估和收敛的问题。它让安全活动从“事后补救”转向“事前建模、事中验证、事后闭环”。
一、学习目标:从标准理解到工程闭环
本课程的学习目标分为四个层次。第一层是概念层:理解 SOTIF 与功能安全、信息安全之间的边界与交集,掌握危害、场景、触发条件、性能局限等核心术语。第二层是方法层:掌握场景分类、参数化建模、组合测试、边界值分析、故障注入与误用注入等测试设计方法。第三层是工具链层:能够使用仿真平台、场景描述语言、数据回放工具和覆盖率分析工具构建闭环。第四层是工程层:能够把测试结果反馈到需求、设计、场景库和发布准则中,形成持续改进。
需要特别强调的是,SOTIF 测试不是“测完即止”,而是闭环。闭环意味着每一次测试执行都会产生数据,数据经过分析形成结论,结论驱动场景库更新、算法改进或安全论证修订,修订后的版本再次进入测试。没有闭环,测试就只是抽样;有了闭环,测试才成为安全论证的证据生产线。
二、整体知识框架:五层闭环结构
为了便于理解和实施,本课程把 SOTIF 场景测试闭环工程划分为五个层次:安全分析层、场景建模层、测试生成层、执行验证层、闭环反馈层。安全分析层负责识别危害与触发条件;场景建模层把现实世界抽象为可计算、可组合的场景元素;测试生成层根据覆盖目标和风险优先级生成测试用例;执行验证层在仿真、台架和实车环境中运行用例并采集数据;闭环反馈层对结果进行归因、评级和回归,更新场景库与安全论证。
下图展示了这五层之间的数据流与反馈关系。请注意,闭环不是单向流水线,而是带有反馈边的迭代结构:执行结果会反向影响场景建模和测试生成,安全分析也会随着新场景的发现而更新。
三、方法流程:从危害到回归的七步闭环
把五层结构展开为可执行流程,可以得到七个步骤。第一步,定义 ODD 与功能边界,明确系统在哪些道路、天气、交通和光照条件下被设计使用。第二步,开展危害分析与触发条件识别,找出可能导致危害行为的性能局限和误用模式。第三步,构建参数化场景库,把自然语言场景转化为可组合的参数空间。第四步,设计测试用例,使用组合测试、边界值、等价类等方法覆盖高风险区域。第五步,执行测试,在仿真、台架和实车之间合理分配用例。第六步,分析结果并归因,区分是场景设计问题、算法缺陷还是判据不合理。第七步,更新场景库与安全论证,进入下一轮回归。
这七步不是一次性完成的,而是随着系统版本、ODD 扩展和新法规要求不断循环。工程实践中,建议用配置化方式管理场景参数和测试判据,例如:
scenario:
id: SOTIF-ODD-RAIN-003
odd: highway_night_rain
trigger: "前方静止车辆 + 低照度 + 摄像头眩光"
parameters:
ego_speed_kph: [60, 80, 100]
ttc_s: [1.5, 2.0, 3.0]
rain_level: [light, moderate, heavy]
oracle:
min_ttc_s: 1.2
max_decel_mps2: 6.0
priority: high
status: regression_required
这种结构化描述让场景可版本化、可追溯、可复用。当算法更新后,只需重新执行标记为 regression_required 的用例,即可验证改进是否引入新的风险。
四、案例场景:夜间雨天静止车辆识别
假设某 L2+ 系统在夜间雨天行驶时,未能及时识别前方静止车辆,导致紧急制动过晚。传统功能安全分析可能认为传感器和制动系统均无故障,因此不构成失效。但从 SOTIF 视角看,这是典型的性能局限:摄像头在低照度与雨滴散射下对比度下降,毫米波雷达对静止目标过滤策略过于保守,融合算法在置信度不足时延迟输出。
闭环工程的处理方式是:首先把该场景抽象为“夜间 + 降雨 + 静止车辆 + 本车速度 + TTC”的参数组合;然后生成覆盖不同雨量、照度、车速和距离的测试矩阵;接着在仿真中批量执行,筛选出失败用例;再把失败用例迁移到台架和实车进行复现;最后根据复现数据调整感知阈值和融合策略,并把该场景加入回归场景库。整个过程形成一条完整的证据链:危害 → 场景 → 用例 → 执行 → 归因 → 改进 → 回归。
五、常见误区与复盘要点
误区一:把 SOTIF 测试等同于功能安全测试。功能安全关注故障,SOTIF 关注无故障下的性能局限和误用,两者测试目标、判据和场景来源不同。
误区二:只追求场景数量,不关注覆盖质量。一万条随机场景不如一百条针对高风险参数边界的场景。覆盖目标应围绕触发条件和危害行为设计。
误区三:闭环只闭在测试团队内部。如果测试结果不能反馈到需求、设计和场景库,闭环就是断的。闭环必须跨团队、跨工具链。
误区四:忽视判据的合理性。判据过松会漏掉风险,过严会产生大量误报。判据本身也需要通过数据校准和评审。
复盘时建议回答四个问题:本轮测试新增了哪些场景?哪些场景从“未知”变为“已知安全”或“已知不安全”?哪些改进被验证有效?下一轮优先级如何调整?只有把这些问题回答清楚,闭环才真正转动起来。
六、学习路径与课程清单
本课程共 30 章,建议按“概念 → 方法 → 工具 → 案例 → 复盘”的路径学习。下表给出第一阶段的核心学习清单,帮助你建立整体地图。
| 阶段 | 核心主题 | 关键产出 | 建议投入 |
|---|---|---|---|
| 概念建立 | SOTIF 与 FuSa 边界、危害与触发条件 | 术语表、危害清单 | 2 章 |
| 场景建模 | ODD、逻辑场景、参数空间、场景库 | 参数化场景库 v0.1 | 6 章 |
| 测试设计 | 组合测试、边界值、误用注入、覆盖率 | 测试用例集与覆盖报告 | 8 章 |
| 执行验证 | 仿真、台架、实车、数据回放 | 测试执行记录与问题单 | 7 章 |
| 闭环反馈 | 归因、评级、回归、安全论证 | 闭环报告与回归基线 | 7 章 |
学习建议:每学完一个模块,尝试用自己所在项目的真实 ODD 做一个最小闭环练习。哪怕只有 10 个场景、1 个仿真工具、1 份判据表,也能帮助你理解闭环工程的关键难点:场景抽象是否充分、判据是否可执行、反馈是否真正改变了下一轮测试。
SOTIF 场景测试闭环工程的核心,不是追求一次性通过,而是建立一种持续发现风险、持续收敛风险的能力。当你能够用场景库、测试用例、执行数据和回归基线讲清楚“系统为什么是安全的”,你就真正掌握了这门课程要传递的工程方法。