Page 153 - 《软件学报》2021年第7期
P. 153
朱向雷 等:自动驾驶智能系统测试研究综述 2071
相结合作为可行性检验器,以生成有效的可变覆盖测试集.底层约束满足问题采用回溯算法解决.首先定义了不
同类型的交通场景及虚拟环境中回归测试的相关术语,使用“四层概念”作为基础,创建静态或混合场景,使用组
合互动测试 CIT [65] 相互组合找到参数值,实现道路、静止物体、气象效应、动态对象及本车的参数化,使用以上获
得的参数来生成测试用例.该方法为有关自动驾驶回归测试领域的研究提供了基础,但仍需优化以获得更高的
效率.并且,该方法只能沿预定义的路径创建运动,若能在一般概念中加入路径发现问题,将允许更多的自动化.
类似于针对综合功能模块的基于搜索的测试方法,Althoff 等人 [59] 提出了通过显式计算自动驾驶车辆的可
驾驶面积来量化解决方案空间的自动生成临界场景测试用例的方法,该方法结合可达性分析和优化技术来确
定解空间的大小并缩小它,以得到满足需求的测试用例.首先指定运动规划问题,然后定义自动驾驶车辆的可驾驶
区域.为了求得该区域,需要对包括自动驾驶车辆在内的其他交通参与者的初始状态进行优化,直至得到所需的可
驾驶区域大小.其中,当不仅考虑了静态障碍物,同时还考虑了其他交通参与者时,须计算其初始状态变化对其未
来占用率的影响,将其他交通参与者未来可能占用的空间从自动驾驶车辆的允许空间中移除,以避免碰撞,以进一
步有效地计算可行驶面积.为了求解该有限优化问题,Althoff 等人将时间等距离散,并用矩阵表示法近似表示优化
问题的离散时间,再将其重写为一个二次规划问题,然后使用二进制搜索对其进行扩展.最终得到满足临界度的测
试用例.
Chance 等人 [70] 提出了基于多实体的测试用例生成方法.实体是指在测试环境中与自动驾驶车辆交互的动
态实体,在文献[70]中,该团队将行人作为实体,对行人设置各种行为动作,生成有效的测试用例.行人的动作分为
两类,一类是随机动作,即行人有一定的随机行为,并会在随机时刻穿过行车道;另一类是实体指向行为,其中临
近行为(proximity)是指行人在车辆到达一定半径范围内时穿越行车道,选举行为(election)是指选择离车辆最近
的行人穿越行车道.为了提升测试效率,Chance 等人以车辆和行人行进时长为标准给测试用例打分,耗时越长分
数越低,以促进短时长测试用例形成.实验结果表明,基于实体的测试用例生成方法比伪随机方法可生成两倍的
有效测试用例.
4.3 覆盖度量指标
对于整车的质量测试和安全保证往往拥有更宏观的测试标准.Tahir 等人 [71] 将常见的基于整车的覆盖标准
分为 3 类:即需求覆盖(requirement coverage)、场景覆盖(scenario coverage)以及情境覆盖(situation coverage).无
论是需求、场景还是情境测试,都是在自动驾驶质量和安全保证方面的宏观定义,这也意味着,上述 3 种覆盖标
准会随驾驶和测试场景的不同而发生改变,而非遵循一套统一的定义.
需求覆盖是指,待测系统必须满足一系列的可被接受的需求.需求覆盖通常需要相关领域专家以启发性的
方式指定相关需求,这样可以有效地指导自动驾驶产品的构建,但是,需求覆盖在测试中的使用相对困难.首先,
粗粒度的需求对指导测试帮助不大,例如“自动驾驶汽车不可以违反交通法规”的需求很难实现,也没有标准能
够验证是否实现该需求.其次,大部分的意外情况是不出现在既定的需求中的,即,需求覆盖的测试更倾向于软
件验证(verification),希望测试能够满足需求说明书的指标.需求覆盖无法指导软件确认(validation),即无法满足
其他在真实环境中遇到的情况,例如需求“自动驾驶汽车需保证可以在积水路段行驶”,如果未能提前定义该需
求,那么需求覆盖就难以指导对积水路段相关错误行为的甄别.
为了更好地提出需求覆盖的准则,Fujikura 等人 [72] 提出了基于 KAOS [73] 的需求覆盖方式,即对于自动驾驶
汽车这类与安全相关的领域,根据安全要求,将危险状态指定为场景的最终状态,并利用这种方法生成更多揭露
车辆问题的危险场景.KAOS 是需求工程领域使用的面向结果的需求捕捉方法,配合穷尽寻路方法使用,实验结
果表明,该方法与现有方法相比,能够实现较高的需求覆盖率,并且保证需求到测试方案的高度可追溯性.
根据 Schuldt 等人 [23] 的最新的研究结果,Scenario 和 Situation 得到了详细定义.Schuldt 等人认为,Situation
是交通参与者在特定时间点,用于选择合理行为模式的全部环境信息,通常出自某一交通参与者的主观视角.
Scenario 是数个 scene 的时序发展组合,通常是一个确定的时间片段.
基于最新的定义,现有研究致力于将上述抽象的覆盖标准具体应用到实际的基于自动驾驶整车的测试中.
Alexander 等人 [74] 最早提出情境覆盖的定义,并认为现有的“需求覆盖”不足以全面地指导测试自动驾驶系