Page 233 - 《软件学报》2026年第4期
P. 233

1674                                                       软件学报  2026  年第  37  卷第  4  期


                    测试的有效性在很大程度上取决于生成场景的质量. 由于自动驾驶系统的输入空间巨大且功能复杂                                  [32−34] , 传
                 统的软件测试方法难以从复杂的驾驶情境中捕捉到各种稀有事件                       [16] . 如何生成多样化的安全关键场景以全面测
                 试自动驾驶系统, 近年来成为研究的热点            [35−37] . 这些方法可以分为如下两类策略.
                  1.3.1    基于交通事故的场景生成方法
                    这类方法策略, 通过从事故数据库中重现交通事故作为测试场景                      [8,11,25,38] . 测试人员让主车  (车辆连接自动驾
                 驶系统) 根据碰撞中车辆的路线行驶, 并通过事故中其他车辆和行人的轨迹定义场景中其他参与者的轨迹. 然而,
                 在真实的交通事故中       [6] , 超过  55%  的碰撞无法有效地发现自动驾驶系统的安全违背行为, 例如由以下原因引起的
                 碰撞: 驾驶员的注意力不集中和分心、车辆硬件的组件、非法操作                      (如逆行), 这些行为不会发生在自动驾驶系统
                 上或不是自动驾驶系统的责任. 此外, 由于交通事故在实际交通中很少见, 而且大多数事故都不能对                               ADS  造成有
                 效的挑战, 因此通过再现交通事故来测试自动驾驶系统并不能充分评估其安全性和可靠性.
                    具体来说, AC3R 利用领域特定本体和自然语言处理                 (NLP) 技术, 从警方事故报告中提取信息, 重建交通事
                                 [8]
                 故的边缘案例. SoVAR     [25] 利用大语言模型从警方报告中提取关键信息, 并根据这些信息生成相应的测试场景.
                 Zhang  等人  [11] 训练了一个全景分割模型, 从事故视频中提取有效信息并恢复仿真中的交通参与者. 然而, 这需要大
                 量时间来训练和优化信息提取模型. 此外, 由于交通事故在实际交通中相对稀少, 大多数事故并不能有效地挑战自
                 动驾驶系统    [39] , 因此仅通过重现交通事故的场景无法全面测试工业级的自动驾驶系统. 与这些方法不同, LEADE
                 设计并实现了一种轻量级方法, 首先将用户需求合成抽象场景, 然后通过基于道路网络的运动建模, 从抽象场景生
                 成可执行的测试场景.
                  1.3.2    基于搜索的场景生成方法
                    进化搜索技术在自动驾驶系统测试中被广泛应用                  [17,18,20−23] , 通过引导生成的测试场景进入更具挑战性的情况.
                 一般来说, 现有的基于进化搜索的自动驾驶系统测试场景生成过程包括                       3  个步骤: 1) 随机初始化生成第      1  代场景;
                 2) 运行并通过适应度函数评估每个生成的场景; 3) 选择适应度较高的场景并应用变异操作, 迭代生成新场景.
                    Abdessalem  等人  [18,40] 将多目标搜索与代理模型结合, 生成适用于自动驾驶系统的关键场景. AV-Fuzzer              [22]  和
                 MOSAT [23] 通过扰动参与者在动态交通环境中的驾驶行为, 生成面向安全违例的测试场景. 尽管这些方法有效, 但
                 仍存在两个问题: 1) 第     1  代场景是通过随机初始化生成的; 2) 在进化过程中, 选择和变异的参数                  (如变异和交叉概
                 率) 是固定的, 没有根据每代的适应度水平和优秀个体的特征差异进行调整. 与这些方法不同, LEADE                           解析用户需
                 求并基于路网构建运动模型, 生成符合测试需求的参与者运动轨迹, 形成较高质量的初始种群; 进而通过自适应选
                 择和自适应变异进行演化, 从而高效地发现多样化的安全关键场景.
                  2   方 法

                    后文图   1  显示了  LEADE  的整体框架, 包含    3  个主要模块: 测试需求提取、场景程序生成和自适应进化搜索.
                 ① 测试需求提取: 该模块从用户提供的自由格式文本中提取测试需求, 并将其转化为抽象场景. ② 场景程序生成:
                 针对抽象场景, LEADE     不需要预定义大量规则来生成具体场景, 而是利用基于道路网络的运动建模方法, 生成可
                 执行的具体场景程序. ③ 场景自适应演化: 基于生成的符合用户测试需求的场景程序, LEADE                           构建初始种群, 采
                 用改进的自适应多目标进化算法进行搜索, 进化出多样化且具备安全关键性的具体场景. 对于自动驾驶系统出现
                 安全违背行为的场景, LEADE       记录并提供自动重放方法从而复现自动驾驶系统的安全违背情况.
                  2.1   测试需求提取

                    LEADE  通过自由格式的文本文件来捕捉用户的测试需求, 文件中可以包含场景的任意元素需求, 如天气、道
                 路类型、路面状况、交通信号灯、标志以及交通参与者的类型                      (例如车辆或行人) 及其动作. LEADE        使用大语言
                 模型  (LLM, 如  GPT-4、LLaMA-7B  等) 从场景描述文本中, 提取关键信息. 为了保证场景元素定义的完备性, 我们
                 参考现有的自动驾驶场景描述标准             OpenScenario [41,42] 中, 对自动驾驶测试场景的定义   (在一定的时间和空间范围
                 内, 自动驾驶汽车与行驶环境中的其他车辆、道路、交通设施、气象条件等元素综合交互过程的一种总体动态描
   228   229   230   231   232   233   234   235   236   237   238