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

吉品 等: 面向智能软件系统的测试用例生成方法综述                                                         85


                 logic, MTL) 计算每个场景的满意度, 并利用主成分分析与聚类技术自动分析安全性与错误分类, 最终通过提取不
                 同的行为模式, 筛选出具有代表性的测试场景. 类似地, Ding 等人               [115] 提出了可模拟中国交通场景的自动驾驶测试
                                                                           2
                 系统. 该系统基于 UE4 引擎与 CARLA 仿真平台, 生成了总面积达 10.8 km 的中国城市风格地图的数字孪生. 针
                 对中国最常见的交通事故类型           (如摩托车/电动车事故) 及死亡率最高的事故类型                (如非机动车或行人相关事故),
                 该系统设计了 29 种模拟交通事件, 用于评估自动驾驶系统的行为. 上述方法均对自动驾驶相关的感知与决策算法
                 提出了更高要求, 有助于缩小仿真场景与现实世界之间的差距.
                    除了直接利用物理世界的数字孪生生成测试场景外, 还有部分研究进一步分析与处理已有数字孪生数据, 先
                 找出其中的关键场景, 再生成对应的仿真场景, 以提升测试效率. 例如, 自动化方法 SALVO 能够以地图的数字孪生
                 为基础, 利用几何信息识别地图中的交叉路口, 进而生成带有交叉路口特征的抽象场景                         [113] . 为提升测试效率, SALVO
                 采用了基于距离度量与特征映射的贪婪算法, 筛选相似场景, 并通过在车道上放置静态障碍物进行场景扩增. 最
                 后, SALVO 将选定的抽象场景实例化到工业级驾驶模拟器中, 并自动化执行生成的场景. 该方法能够从不同复杂
                 地图中识别出大量与交叉路口相关的关键驾驶场景, 所生成的测试用例可有效暴露自动驾驶系统中不易察觉但安
                 全性关键的问题. 此外, 还有一些研究聚焦于利用数字孪生技术建模特殊的道路场景, 而不再需要建模的完整路面
                 地图. 例如, 模型驱动的测试方法 FLYOVER 针对当前缺乏公路互通式立交测试场景的问题, 使用带标签的有向图
                 模拟互通立交拓扑结构, 并参考现实世界中的立交数据以保证拓扑的实用性, 进而对拓扑模型进行分类, 提取不同
                 的拓扑等价类     [121] . 对于每个拓扑类别, FLYOVER 能够识别匝道的几何特征, 并通过 k 路组合覆盖与差分进化方
                 法, 生成具体的互通式立交场景. FLYOVER          能够用于生成由不同互通式立交组成、具有可测量多样性的测试数
                 据集.
                  7.1.2    基于交通事故报告的自动驾驶测试场景生成
                    基于数字孪生的自动驾驶测试场景致力于还原真实世界的环境, 但在某些情况下, 测试自动驾驶系统并不需
                 要完整的环境信息, 从事故信息中提取关键道路场景进行还原将更具效率与意义. 基于交通事故报告的测试场景
                 生成方法首先需要从事故报告中提取场景关键信息, 再将这些信息转换为仿真场景中的关键组成部分, 最终补全
                 缺失部分形成完整可运行的测试场景. 由于事故报告具有不同的载体形式, 相应的数据提取与处理技术也各不相
                 同. 例如, 全景分割模型     M-CPS (multi-channel panoptic segmentation) 用于从图片和视频中提取真实事故的有效信
                 息, 并将不同交通参与者的独立个体分离出来, 为场景恢复提供基础                     [122] . 相比于传统的分割模型, M-CPS    充分考
                 虑了事故现场图片和视频的特征, 提升了小物体检测的准确性, 更有效地提取现场信息. 为了进一步提升信息提取
                 的准确性, 作者采用了与文本描述交叉验证的方案, 以消除不必要的交通参与者, 并捕获核心交通参与者的运动轨
                 迹, 最终在自动驾驶开放平台 Apollo 和仿真器 CARLA 上建立了测试场景集.
                    此外, 自动驾驶测试平台 ADEPT 使用自然语言处理技术, 将现实生活中的文本事故报告转换为测试场景描
                 述语言  [123] . ADEPT 预设了一组与测试场景相关的问题和对应的 Scenic 代码模板, 将事故报告文本与预定义问题
                 输入 GPT-3 模型, 再根据模型回答, 从模板库中选择与描述相对应的模板, 并填充缺失信息. 具体来说, 问题查询
                 的内容包括碰撞的位置        (三叉路、四叉路或者非交叉路口)、时间、天气以及两辆车之间的相对位置关系                           (包括车
                 道的左右关系、距离的前后关系等). 随着大语言模型                 (large language model, LLM) 的发展, 研究人员越来越多地
                 将 LLM 技术应用于基于文本车祸报告的仿真测试场景生成. 例如, SoVAR 通过多轮提示设计, 直接从文本车祸报
                 告中提取道路层、环境层与动态对象层的关键信息                  [128] . SoVAR  的研究重点在于仿真场景中交通参与者的路径规
                 划. SoVAR 将给定地图解析为一个包含详细道路类型记录的候选道路集合, 遍历其中的道路, 当当前道路与事故
                 发生道路类型匹配且交通参与者占用的最大车道数不超过所选道路车道数时, 调整参与者行驶方向与初始车道位
                 置以完成匹配. 最后, SoVAR     依据对参与者驾驶动作以及驾驶动作之间的约束条件, 求解生成一系列路点, 从而完
                 成仿真场景中的轨迹规划. 与 SoVAR 不同, LeGEND 以文本车祸报告为输入, 通过设计两个提示语, 借助 LLM 先
                 提取事故参与者的关键信息和交互模式, 再将其转换为领域特定语言                      (DSL) 表示的逻辑场景     [127] . 基于生成的逻辑
                 场景, LeGEND 使用多目标遗传算法搜索关键具体场景, 以场景关键性、交互性与多样性为目标函数, 引导搜索方
                 向. 基于交通事故报告的场景生成方法为构建场景集提供了新的方向, 上述方法的实验结果表明, 该类方法更有助
   83   84   85   86   87   88   89   90   91   92   93