Page 149 - 《软件学报》2021年第7期
P. 149

朱向雷  等:自动驾驶智能系统测试研究综述                                                           2067


                 方案在计算上是昂贵的.因此该团队在 2016 年提出了通过将多目标搜索与基于神经网络开发的替代模型相结
                 合来提供高级驾驶辅助系统的测试方法               [45] ,并使用多目标搜索指导测试高级驾驶辅助系统的关键行为.文献
                 [45]基于行人检测视觉(PeVi)系统进行了研究,测试结果表明:基于搜索的测试技术优于随机测试生成策略;将
                 多目标搜索与替代模型相结合,可以在有限的时间内提高所生成的测试用例的质量;基于搜索的测试技术能够
                 生成表明 PeVi 系统潜在错误的各种测试用例.
                    Abdessalem 等人在 2018 年提出了一个基于多目标搜索的寻找自动驾驶车辆中功能覆盖错误的方法并实
                 现了一个工具 FITEST     [46] .FITEST 旨在解决自动驾驶车辆多个模块在某个场景下针对同一控制器做出不同指
                 令,指令集之间发生覆盖从而导致错误的问题.本文将问题定义为多目标搜索算法,定义了 3 种距离:覆盖距离、
                 致错距离和致错重写距离.FITEST 是基于搜索算法 MOSA                [47] 开发出来的,通过最小化上述距离来寻找功能覆
                 盖错误.FITEST 分别基于覆盖距离、致错距离和上述 3 种距离的混合距离,在两种高级辅助自动驾驶工具(包含
                 4 种功能:自动紧急刹车、自适应巡航控制、行人保护和交通标志检测)上进行了搜索测试,实验结果表明,基于
                 混合距离的搜索能够在同样时间下得到更多的功能覆盖错误(平均为 5.9 和 7.2 个错误).
                    基于软件在环(SiL)和硬件在环(HiL)的测试方法是自动驾驶测试中常见的方法,不同于寻找基于搜索的方
                 法,在环测试方法往往需要针对测试对象定义出一个完备的综合测试架构,并评估测试对象的各种指标.
                 Gietelink 等人 [48] 提出了一种用于高级驾驶辅助系统(ADAS)的设计和验证方法,该方法将测试车辆放在底盘测
                 功机上,这是一种可以通过车辆模型来测试模拟道路行为的滚筒试验台,其他道路使用者用轮式移动机器人表
                 示.他们通过自适应巡航控制系统和前方碰撞预警系统的测试结果,证明了该方法在高级驾驶辅助系统开发过
                 程中的传感器验证、快速控制原型、模型验证、功能级别验证、控制算法的微调、生产验证试驾等多个阶段
                 具有帮助效果.该方法的优势在于具有可重复性和高灵活性,能够提高测试的安全性并同时节省验证过程的时
                 间和成本,是一种与现有开发过程互补的高级驾驶辅助系统开发新方法,与模型在环(MiL)仿真和测试驱动器形
                 成有效联系.
                    Belbachir 等人 [49] 使用 Pro-SiVICTM [50,51] 作为模拟器,定义了高级驾驶辅助系统(ADAS)的仿真驱动评估架
                 构 Ev-ADA.该架构的评估标准包括车道检测错误、行人检测错误、轿厢位置检测错误、汽车定位错误、路径
                 规划错误、控件/命令错误、驾驶员安全估计和驾驶员舒适度估算,可用于评估任何驱动系统.以上每个标准都
                 可计算出单独的分数,并汇总一个全局分数进行加权求和,分数值越接近值 1,则证明算法的质量越高.
                    随着自动驾驶测试方法的不断进步,一些学者同时将目光放在了自动驾驶技术修复方法上.在 2018 年对高
                 级辅助驾驶系统中功能覆盖错误进行检测的基础上,Abdessalem 等人于 2020 年提出了一种能够自动化修复由
                 功能覆盖导致的自动驾驶系统错误的方法               [52] .该团队首先针对包括行人保护和自动紧急刹车在内的 4 个辅助
                 驾驶功能模块定义了相关的功能覆盖优先级规则以及安全要求,接着应用成熟的错误定位算法 Tarantula                                [53] ,通
                 过重新定义可疑值函数来确认发生错误的代码行数.在确定了错误位置后,文献[53]采用变异的方法生成补丁
                 候选集,并采用搜索的方法在候选集中选取优秀的修复补丁并归档,接着继续生成新的候选集,直至到达设置的
                 搜索条件.最后,文献[53]最小化选出来的候选补丁集合作为最终的修复结果.同时,该文还采用工业界的两个高
                 级辅助驾驶系统对方法进行了测试并设置了对比实验,实验结果表明,该方法能够有效地在两种工业产品上找
                 到并修复错误,且优于其他方法.
                 3.2   测试用例生成
                    相比于感知模块和决策模块的测试场景,针对综合功能模块的测试场景往往需要更复杂的设置和更多的
                 参与者.因此,针对综合功能模块的测试场景往往拥有更大的数据空间,如何快速地在庞大的空间中找到关键的
                 测试场景至关重要.图 5 中提到的基于搜索的方法是解决这一类问题的较为有效的方法.
                    Bühler 等人 [38] 使用进化算法来生成针对自动泊车系统的测试用例.该团队为进化算法设计了两种目标函
                 数:(1)  车辆和碰撞区域的最小距离.该团队采用侧向停车作为测试场景,且前后方均有车辆.其划分出了目标车
                 不可行经的区域并将其定义为碰撞区域,使用碰撞区域与行车轨迹之间的最小欧式距离作为衡量标准;(2)  车
                 辆与碰撞区域的面积,即行车轨迹和碰撞区域边界包围起来的闭合图形的面积,当车辆轨迹穿越了碰撞区域时,
   144   145   146   147   148   149   150   151   152   153   154