4. 安全验证总体方法论

在自动驾驶系统安全工程中,“验证(Verification)”与“确认(Validation)”是两条既相互独立又必须闭环的证据链。很多团队把二者混为一谈,导致“测试做完了,但安全没被证明”。理解它们的差异,是构建总体方法论的第一步。

一、核心原理:验证回答“做对了没有”,确认回答“做的是不是对的东西”

验证关注的是“实现是否符合规定要求”。它对照的是设计规格、需求文档、接口定义与安全目标,典型问题是:感知模块的输出频率是否达到 20Hz?AEB 触发时延是否小于 150ms?需求追溯是否完整?验证的证据形式包括需求评审、静态分析、单元测试、HIL 测试、覆盖率报告等。

确认关注的是“规定要求是否符合真实使用场景与用户/法规期望”。它对照的是真实世界、运行设计域(ODD)、法规与用户预期,典型问题是:在雨夜逆光且有外卖车横穿的场景下,系统是否真的安全?确认的证据形式包括场景测试、实车道路测试、仿真大规模回归、用户与运营反馈、法规符合性评估等。

一句话记忆:验证是“按图纸检查”,确认是“在真实世界里检验图纸本身是否正确”。只做验证,可能造出一个完全符合规格却无法应对真实交通的产品;只做确认,则无法定位缺陷、无法证明一致性。

二、方法流程:V 模型、敏捷开发、仿真与实车测试的协同

V 模型提供了安全相关开发的“左分解、右集成”骨架:左侧从整车安全目标分解到系统、软件、硬件需求;右侧从单元、集成、系统到整车逐层验证与确认。V 模型的优势是追溯清晰、证据可审计,适合功能安全(ISO 26262)与预期功能安全(SOTIF)的合规要求。

但自动驾驶的 ODD 与场景空间极其庞大,纯 V 模型迭代慢、反馈周期长。敏捷开发以短迭代、持续集成、场景驱动的方式补充了“快速试错”的能力:每个 Sprint 交付可运行的感知/规控增量,并同步更新场景库与回归集。二者并非替代关系,而是“骨架 + 肌肉”的协同:V 模型保证安全证据链完整,敏捷保证迭代效率与缺陷早发现。

仿真测试与实车测试则构成“金字塔式”的证据分层。仿真负责海量、可重复、可参数化的场景覆盖,尤其是危险边缘场景与长尾场景;实车测试负责验证真实传感器特性、执行器延迟、天气光照、交通参与者行为等仿真难以完全复现的因素。合理的协同策略是:仿真做“广度与回归”,实车做“深度与置信”,HIL/SIL 做“接口与实时性”,最终由确认活动统一收敛到安全案例。

自动驾驶安全验证总体方法论:V 模型骨架 + 敏捷迭代 + 仿真/实车分层证据 整车安全目标 / ODD 定义 SOTIF 场景边界 · 法规约束 系统需求 / 架构设计 功能安全 · 接口 · 冗余 软件 / 硬件详细设计 感知 · 规控 · 执行器 整车确认 / 安全案例 实车道路 · 运营反馈 · 法规 系统集成与确认 HIL · 封闭场地 · 场景测试 单元 / 集成验证 SIL · 覆盖率 · 静态分析 敏捷迭代:场景驱动 · 持续集成 · 回归 每 Sprint 更新场景库与安全证据 验证 Verification 是否符合规格与需求 确认 Validation 是否满足真实场景与期望 仿真测试 广度 · 长尾 · 可重复 HIL / SIL 接口 · 实时性 · 故障注入 封闭场地测试 可控危险场景 实车道路测试 深度 · 真实置信

三、案例/场景:一次 AEB 误触发问题的协同排查

某项目在实车测试中发现 AEB 在隧道出口强光下误触发。若只做验证,团队会检查“AEB 触发条件是否符合需求文档”,结果可能显示完全符合;但确认视角会追问“需求本身是否覆盖了隧道出口逆光场景”。协同流程如下:

  1. 实车测试记录触发时的光照、目标距离、雷达/视觉置信度,形成问题场景描述。
  2. 将该场景参数化后导入仿真平台,批量复现并定位是视觉误检还是融合逻辑阈值过低。
  3. 在 SIL/HIL 中注入故障与边界参数,验证修复方案是否引入新的误判或漏判。
  4. 更新需求与场景库,补充“强光逆光 + 金属反光”场景,回归仿真与实车确认。
这个案例说明:实车测试负责“发现真实问题”,仿真负责“高效定位与回归”,V 模型负责“把新场景写回需求与证据链”,敏捷负责“快速迭代修复”。四者缺一不可。

四、误区与复盘:常见的方法论陷阱

误区 表现 后果 纠正策略
以验证代替确认 只跑需求用例,不跑真实 ODD 场景 规格全过,真实道路仍失效 建立确认场景库,覆盖长尾与危险场景
仿真万能论 用仿真结果直接替代实车证据 传感器真实特性与执行器延迟被忽略 仿真做广度,实车做深度,分层收敛
敏捷等于不要文档 迭代快但需求追溯断裂 安全案例无法审计,合规风险高 每个 Sprint 同步更新需求与证据链接
V 模型僵化 右侧测试发现的问题无法回写左侧 同类缺陷反复出现 建立双向追溯与场景回灌机制

五、参数化协同清单(可直接用于项目检查)

验证与确认协同检查清单:
[ ] 每条安全目标是否有对应的验证用例与确认场景?
[ ] 仿真场景库是否覆盖 ODD 边界与已知长尾?
[ ] 实车测试是否包含夜间、逆光、雨雾、施工等真实扰动?
[ ] HIL/SIL 是否覆盖接口超时、丢帧、传感器故障注入?
[ ] 敏捷迭代是否同步更新需求追溯矩阵与安全案例?
[ ] 确认发现的新场景是否回灌到仿真与需求?
[ ] 验证覆盖率与确认置信度是否分别量化并报告?
安全验证不是“测试阶段的事”,而是从 ODD 定义、需求分解、架构设计到实车运营的全生命周期活动。验证与确认必须分别量化、分别报告,再通过 V 模型与敏捷迭代形成闭环,才能支撑可审计、可复现、可收敛的安全案例。

综上,验证与确认是两条互补的证据链:验证保证“实现正确”,确认保证“方向正确”。V 模型提供可追溯的骨架,敏捷开发提供快速迭代的节奏,仿真测试提供广度与可重复性,实车测试提供真实世界的置信度。四者协同,才能让自动驾驶安全验证从“做了很多测试”走向“证明了足够安全”。