Page 148 - 《软件学报》2021年第7期
P. 148
2066 Journal of Software 软件学报 Vol.32, No.7, July 2021
例如自动泊车、自动巡航(ACC)、紧急制动(AEB)、行人保护(PP)、交通标志检测(TSR)、盲点检测系统(BSD)、
前向碰撞预警系统(FCW)、车道偏离告警(LDW)、抬头显示器(HUD)、汽车夜视系统(NVS)、智能车速控制
(ISA)、智能大灯控制(AFL)、泊车辅助系统(PA)和行人检测系统(PDS).多数研究通过基于搜索的方法生成测试
场景来针对自动驾驶系统进行测试.图 6 总结了基于搜索的测试场景生成的方法.基于搜索的方法或使用进化
算法,或使用多目标搜索算法,均通过不断迭代来生成关键测试场景(key scenario).在迭代过程中,相关研究往往
使用一个初始测试场景作为生成种子,使用模拟器和适应性函数(fitness function)来生成能够表示该场景的优
劣的适应度(fitness value),接下来通过选择器与搜索器生成变异后的测试用例,并不断重复.相关研究通过辅助
预测器和辅助分类器,帮助整个方法更快速、更准确地生成相关测试场景.除了基于搜索的方法外,一些学者还
提出了基于硬件在环、算法在环的测试方法,针对自动驾驶系统中综合功能模块进行测试.
Fig.6 Method of search-based test scenario generation
图 6 基于搜索的测试场景生成方法
3.1 相关研究现状
Bühler 等人与 Abdessalem 所在团队发表了多篇基于搜索算法的针对自动驾驶系统综合功能模块的测试方
法.该团队率先使用进化算法对自动泊车 [38,39] 和协助制动 [39] 两个自动驾驶系统中的功能模块进行自动化测试.
他们通过定义合适的能够表示待测系统质量的适应度函数,将测试问题转换为最优化任务,不断迭代测试用例,
不断改进测试用例的最优化目标函数,最终得到致错场景.Bühler 使用自动驾驶系统中的自动泊车系统和协助
制动系统作为待测试系统,为两个系统分别定义了目标函数,使用人工测试、随机测试和基于进化算法的测试
对两个系统进行评估.实验结果表明,基于进化算法的测试算法能够更有效、更快速地生成准确的测试用例.
在 Bühler 等人的相关研究的基础上,Abdessalem 等人提出了一种使用基于进化算法的针对自动驾驶辅助
系统的测试算法 [40] .该团队首先给出了高级驾驶辅助系统(ADAS)的形式化表示,并定义了关键场景,同时给出
了进化算法中需要的目标函数.该团队使用 NSGA-II [41] 算法作为多目标搜索算法并采用模拟二分交叉算
子 [42,43] 作为进化算法中测试用例迭代变化的交叉算子.与以往的进化算法不同,本文引入了决策树分类模型并
定义了一系列分类标准,通过决策树分类的结果来指导进化算法,从而得到更加精准的关键场景.本文在实验中
使用 NSGA-II 算法作为基准,比较了基准算法和使用决策树模型的改进方法得到的 3 种进化算法中的评估指
标 [44] ,实验结果表明,使用决策树改进后的算法能够比基准算法多生成 78%的更加清晰、准确的关键场景,同时
改进算法能够得到关键场景的空间特征,为相关研究人员辨认关键场景提供了指导.
类似于进化算法的不断迭代过程,多目标搜索算法同样也是在一个大的搜索空间中不断搜索符合要求的
测试用例,其差别在于进化算法需要提供一个适应度函数,用来指导变异的方向,而多目标搜索算法则需要定义
距离函数,以指导搜索的方向.
Abdessalem 等人认为,现有的仿真工具缺乏必要的智能和自动化能力来指导仿真场景的选择,且执行模拟