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

166                                                        软件学报  2026  年第  37  卷第  1  期


                 关注对恶意驾驶行为的鲁棒性. ACERO          [52] 根据两个时刻间攻击车和自车的相对位置变化方向约束采样范围, 生成
                 多条候选命令并逐一执行, 从中选择违规概率最大的命令. 框架迭代上述过程, 生成一系列对抗性控制命令, 使                               NPC
                 沿对抗轨迹运动, 破坏了       6  类正常的驾驶任务.
                    上述研究强调自车与其他车辆在地图中产生的交互行为, 关注交通环境对自动驾驶系统的影响, 而不重视天
                 气、时间等自然环境因素. 因此, 部分研究人员同时考虑了车辆交互和自然环境. 例如, DriveFuzz                       [53] 额外考虑了水
                 坑和天气的影响, 计算转向不足、急转弯等多个指标, 组合成驾驶质量分数, 指导搜索场景配置空间, 检测到
                 Autoware 上  17  个安全漏洞. EvoScenario [54] 将高速公路上不同类型的路段和      NPC  机动相结合, 实现了车道拓展、
                 缩减、合并、分离这        4  类连接路段, 并将基本路段和连接路段串联组合, 利用遗传算法和多目标搜索策略生成关
                 键的测试场景, 成功在多样化的道路结构下发现               4  类新的安全问题. 除此之外, 一些研究人员使用静态障碍物搭建
                 了自然环境中出现概率较小的场景进行测试. Wan               等人  [55] 运用逆向思维, 发现通过精心设计物体的摆放位置, 能
                 够迫使车辆永久静止或不执行决策任务, 挑战自动驾驶系统的行为规划组件. 他们将其称为过于保守的语义拒绝
                 服务漏洞, 并提出白盒模糊测试框架           PlanFuzz, 以执行路径与目标攻击位置的控制流和数据流距离为反馈, 检测在
                 遵守安全约束的条件下自动驾驶系统是否具备完成任务的能力.
                    尽管现有场景描述语言提供了对车辆状态和行为、天气、道路结构等对象的形式化描述, 但并没有考虑车灯、
                 喇叭等提供辅助功能的对象, 以及限速、停车线等交通标志对象, 阻碍了复杂规则纳入测试框架的过程. 针对上述
                 问题, LawBreaker [56] 制定了面向驾驶员的场景描述语言, 使用信号时序逻辑公式将交通规则形式化, 使测试中的交
                 通环境更加真实. 同时, 研究人员使用遗传算法生成测试场景, 并通过比较当前状态违反交规的程度引导场景空间
                 搜索, 最终发现    14  条法规被违反, 首次验证了自动驾驶系统遵守交通法规的能力.
                  4.1.2    机器学习方法
                    基于搜索的测试方法生成的测试场景没有充分考虑环境中代理的动态行为, 因此部分研究人员结合机器学习
                 算法生成关键场景.
                    一些研究人员使用强化学习技术学习场景参数配置. 例如, DeepCollision                [57] 将场景中天气、静态障碍物、动
                 态障碍物的配置问题表述为马尔可夫决策过程, 使用                  DQN  算法学习容易使自车发生碰撞事故的配置参数, 并用
                 安全距离与当前距离计算碰撞概率, 构建奖励函数, 检测到                  40  个独特的碰撞事故. RLTester   [58] 拓展了上述工作中
                 环境配置参数的数量, 并采用碰撞时间            (TTC) 指标构建奖励函数, 检测到       192  个独特的碰撞事故. 上述方案只针对
                 单个测试目标, 即自车与障碍物是否发生碰撞, 在验证多个测试目标时成本较高, 效率较低. 为了弥补上述不足, 研
                 究人员结合强化学习算法和多目标优化思路, 将多种安全需求的违规检测表述为多目标搜索问题. 例如, MORLOT                               [59]
                 利用  Q  学习算法生成    NPC  行为、天气等环境参数序列, 并为每个安全目标生成独立的                   Q  表, 根据每一轮迭代中
                 奖励值最高的目标选择执行动作, 兼顾和平衡了多个测试目标, 发现了不同类型的违规行为.
                    另一些研究人员训练神经网络生成测试场景. 例如, AutoFuzz               [60] 框架基于神经网络设计了场景选择和变异策
                 略. 选择策略使用分类器预测场景导致独特交通违规的置信度分数, 并迭代训练神经网络; 变异策略利用投影梯度
                 下降策略, 反向传播神经网络的梯度, 为置信度分数较低的场景添加微小扰动. 受生成式流网络                              (generative flow
                 network, GFlowNet)  [64] 的启发, ABLE [61] 改进了文献  [56] 的工作, 利用测试场景及其对交通规则的鲁棒值训练
                 GFlowNet, 并结合领域知识和主动学习算法更新迭代模型, 采样出高质量且多样化的测试场景, 以测试自动驾驶
                 系统遵守交通规则的能力. 实验结果表明             ABLE  比文献  [56] 平均多检测到   21%  的违规行为.
                  4.1.3    小 结
                    由该分类下的文献可知, 自         AV-Fuzzer 为起点, 研究人员开始使用高保真的仿真器测试自动驾驶系统, 观察其
                 在场景中的表现, 并提出多种场景生成策略. 随后, 研究人员逐渐将人工智能引入场景生成工作, 并增加场景中可
                 测试的对象及其参数. 基于搜索的方法和机器学习是目前研究中主流的场景生成算法, 研究人员结合引导度量缩
                 小输入空间, 并在测试场景中纳入更多可参数化的对象, 使多种因素充分交互、复杂约束相互碰撞, 制造出更具挑
                 战性的驾驶环境, 以充分测试自动驾驶系统整体.
                  4.2   测试充分性
                    早期的自动驾驶测试技术承接软件测试领域的思想和方法, 将自动驾驶系统视为一种软件系统, 使用覆盖率
   164   165   166   167   168   169   170   171   172   173   174