Page 166 - 《软件学报》2026年第1期
P. 166

任睿晗 等: 面向整车系统的自动驾驶安全测试研究综述                                                       163


                 框架具体化, 融入核心研究问题, 能够简单直接地对比现有文献的研究重点, 使研究人员对整车系统安全测试的工
                 作流程和技术体系形成全视角、多维度的认知. 同时, 该框架能够启发研究人员将传统软件安全的测试方法和研
                 究思路迁移到整车系统安全测试领域, 指导开展具体的测试工作. 框架主要包括测试用例生成、测试用例执行、
                 测试结果验证这      3  部分, 如图  6  所示.


                                     测试                   通信接口                           测试预言
                                     用例
                                     优化       自动驾驶系统               仿真器                碰撞   ···  违反
                       测试场景                                                                   交规
                                                   测试用例执行


                          关键场景生成            测试充分性            对抗样本生成                    测试结果优化
                                                                                              违规
                        机器       搜索       驾驶       环境       分类      回归                误报   ···
                        学习   ···  算法      决策   ···  要素      问题   ···  问题                      行为

                                           测试用例生成                                      测试结果验证
                                           图 6 面向整车系统的自动驾驶安全测试框架

                  3.1   基本工作过程
                    面向整车系统的自动驾驶安全测试框架的基本工作过程是: (1) 将测试场景和被测自动驾驶系统导入仿真器,
                 使自动驾驶系统控制场景中的代理运行. (2) 收集执行过程中的状态数据, 根据测试预言检测是否出现非预期的危
                 险行为, 并筛选误报和真正的危险行为. (3) 计算覆盖率度量或优化算法的目标函数, 指导测试用例生成过程. 迭代
                 执行上述   3  个步骤, 在海量的场景中找出引发问题的场景, 测试自动驾驶系统的安全性. 值得注意的是, 并非每个
                 工作都涉及上述所有环节, 一些研究可能不考虑覆盖率度量或测试结果优化.
                  3.2   测试用例生成

                    安全测试框架中最重要的环节是测试用例生成, 即测试场景生成. 研究人员设计了多种场景生成方法. 一方
                 面, 可以通过真实驾驶数据集进行已知场景的重建                [46] , 进而泛化出更多场景; 另一方面, 可以通过各种场景空间搜
                 索技术生成未知场景, 为解决危险场景长尾分布问题提供方案.
                    由于场景空间中参数的数量极多, 且取值是连续的, 所以难以穷举所有测试场景. 针对此问题, 本文总结了                                3
                 种测试用例生成思路, 即关键场景生成、测试充分性和对抗样本生成. (1) 关键场景生成, 通过设计出合适的引导
                 度量和优化算法, 逐步提高测试场景的关键度. (2) 测试充分性, 通过聚类等算法将所有场景抽象为多种类型, 用少
                 量具有代表性的测试场景近似整个场景空间. (3) 对抗样本生成, 研究人员在图像或点云中添加对抗扰动, 攻击自
                 动驾驶系统模型应用的人工智能算法, 影响系统的决策和控制.
                  3.3   测试用例执行

                    测试用例优化是测试用例执行环节的可选步骤, 负责在执行前对测试用例集进行筛选和精简, 以过滤同质化
                 的测试用例, 保留更高质量、更关键的测试用例. 具体的执行过程已在第                      2.2  节中详细说明, 本节不再赘述.
                  3.4   测试结果验证

                    测试结果验证环节包括测试预言和测试结果优化两部分. 测试预言用于判断测试结果是否符合预期, 区分被
                 测系统的正确和错误行为         [47] . 一方面, 可以采取形式化规约等方法, 将现实世界的规则形式化为任务约束, 根据状
                 态数据判断测试结果, 校验系统设计需求和安全性是否满足. 另一方面, 一些问题难以构造有效的测试预言, 需要
                 使用蜕变测试     (metamorphic testing)、差分测试  (differential testing) 等技术验证结果. 在检测出引发违规行为的测
                 试场景后, 部分研究人员会优化测试结果, 过滤假阳性的测试结果, 只保留自动驾驶系统承担责任的违规行为. 最
   161   162   163   164   165   166   167   168   169   170   171