1. 引言
汽车工业的发展正逐步朝着智能化网联化的方向发展 [1] 。自动驾驶汽车发展的过程就是汽车的驾驶任务逐渐由人类向机器过渡的过程 [2] ,随着自动驾驶技术的不断完善和自动驾驶等级 [3] 的不断提高,车辆正在经历一个由单纯的驾驶员控制到由车辆系统感知、决策、执行的转变。相关研究表明 [4] [5] ,从统计学的角度出发,若要证明在95%的置信水平下自动驾驶车辆可以完全由机器代替人类操控,理论上至少需要进行数十亿英里的公共道路测试,这巨大的测试成本和测试周期是无法承担的。场景是智能汽车本身在一段时间内与其他要素交互的一个空间 [6] ,借助虚拟环境仿真技术,搭建虚拟仿真场景,通过软硬件在环等方式,搭建关键场景、边缘场景用于自动驾驶汽车功能安全和预期功能安全的测试评价已成为当前汽车智能化发展新的研究热点,无论在测试内容、测试效率还是测试成本等方面都有巨大的优势 [7] 。
进行基于场景的仿真测试评价需要大量的测试场景来支撑,根据场景的可预见性和可预防性建立的四象限场景分类规则可对场景的发展方向进行指导。就场景泛化研究而言,其目的和意义在于使四象限场景的可预防性轴左移,扩大场景的可预见性象限区域,即提高场景的覆盖度,使得更多的场景暴露在已知的范围内,为自动驾驶功能的安全测试及评价提供场景基础。
现阶段,自动驾驶测试场景在国内外有了较为深入的研究:邓伟文等 [8] 提出通过场景枚举生成虚拟仿真场景的方法已无法满足测试需求,场景是一个“场地–气象–交通”耦合的复杂多源异构体,需要重点关注对复杂多源异构体的解构和场景组合生成的研究,通过大数据驱动,充分挖掘事故数据及自然驾驶数据的测试价值,实现危险场景的衍生,达到加速测试的目的。白雪松等 [9] 从对自动驾驶系统的感知、决策和控制的角度出发,根据不同风险元素对三个层面的不同影响,建立了测试场景风险元素提取模型,提出一种自动驾驶测试场景的风险元素提取方法,达到了对测试场景风险元素量化提取的能力。Gao F等 [10] 提出了一种基于测试矩阵(TM)和组合测试(CT)方法相结合的智能驾驶系统测试场景自动生成方法,通过建立影响因素的层次模型,设计了情景复杂性的评价指标,提出了一种改进的CT算法,以平衡测试效率、条件覆盖率和场景复杂度,这种方法可以确保所需的组合覆盖,同时增加生成场景的总体复杂性。Schuldt F等 [11] 通过软件组合测试相关理论方法,在虚拟环境中对高级驾驶员辅助系统(ADAS)进行测试,提出了一种高效、系统的生成测试案例的方法。
上述研究虽然实现了自动驾驶的高效生成,但并未从真实的道路交通事故出发进行场景的泛化,事故作为人–车–路–环境多元复杂元素冲突的后果,是交通参与方危险冲突非常集中的自然驾驶片段,具有较高的应用价值,事故数据是利用现有的道路交通事故大数据,分析提炼出的适用于自动驾驶测试的特征要素 [12] 。因此本文结合组合测试方法,以NAIS数据库中在我国发生的真实道路交通事故为数据基础,实现具有中国交通环境特征的高速公路双车道变道场景的组合泛化,生成高速公路双车道变道逻辑场景测试用例集,利用组合测试方法提高测试场景的覆盖度,弥补场景数量不足和覆盖度不高的问题,满足自动驾驶功能测试的场景需求。
2. 组合测试方法理论
组合测试(Combinatorial Test)是一种用来生成测试用例的方式方法,是由Robert [13] 在1985年提出来的。该方法可以充分考虑各种因素及其相互作用,克服了正交实验设计、均匀设计等传统方法的不足,基本思想是通过贪心算法、启发式搜索算法等方法设计一组数量较少的测试用例,以较少的测试用例去代表所有参数的全部组合,直接检测各种影响因素及其组合产生的影响,完成高质量的软件测试。
组合测试方法可以生成具有不同覆盖标准的测试用例,据研究发现许多错误是由两个或多个参数值的特殊组合产生的,70%可由两个因素相互组合所生成的用例检测出,90%以上可由三个以内参数相互组合找出 [14] 。使用组合测试方法,生成双因素相互作用和三因素相互作用的测试场景用例,即可发现该场景用例下的绝大部分缺陷。PICT工具是由Microsoft开发的测试用例自动生成工具,可以直接用于生成测试用例,其计算模型如下:
1) 定义被测系统的输入参数和取值范围;
2) 确定覆盖强度及参数权重;
3) 添加约束条件语句;
4) 生成测试用例并输出结果。
测试用例的生成方法有许多种,相较于通过正交实验进行传统的测试用例生成,组合测试方法生成的测试用例具有明显的优点,更适用于测试场景用例的生成。正交实验是通过正交表生成测试用例,其结果单一固定,难以解决自动驾驶测试多样性的问题。并且通过正交表生成的测试用例数量是唯一的,不能满足自动驾驶场景测试的场景数量要求。而组合测试可以从双因素组合测试开始逐阶提高覆盖强度,以解决测试用例不足带来的长尾问题。同时通过正交实验生成的测试用例并未完全考虑各个因素之间的相互作用,对于自动驾驶测试而言需要手动删除不合理不正确的测试用例,而组合测试可以增加约束条件来限制错误或不合理测试场景用例的生成。
综合组合测试的理论和优点,该方法对于自动驾驶测试场景用例的泛化具有良好的适用性。
3. 场景风险元素分析
由于高速公路独有的特点,其封闭性决定了高速公路场景中交通参与者比较单一,主要为普通乘用车和商用车,不涉及行人、二轮车、三轮车等其他参与者,而且具有统一的国家标准建设,道路环境良好,是比较简单的通行场景。然而,由于高速道路场景中车辆行驶速度过快且中大型车辆较多,发生交通事故的概率较高且事故造成的结果比较严重。
国家车辆事故深度调查体系(NAIS)是一个车辆交通事故深度调查平台,是中国起步最早、最详细的交通事故数据库之一,目前在全国共有8个工作站负责对应地区的道路交通事故数据采集和分析,并上传到统一的数据平台进行数据库管理。根据NAIS统计的发生在2018至2021年的625例高速公路事故数据,如图1所示,高速公路上的重大事故所占总体事故的比例为61.6%,所占比例大。重大事故是指一次造成死亡1至2人,或者重伤3人以上10人以下,或者财产损失3万元以上不足6万元的事故。因此,首先在高速道路上进行自动驾驶功能的普及及测试尤为重要。

Figure 1. 2018~2021 NAIS expressway accident statistics
图1. 2018~2021年度NAIS高速公路事故统计
3.1. 高速公路双车道变道场景模型
在涉及高速公路的众多场景中,变道行为是出现频率非常高的操作 [15] 。因此,本文以高速公路上双车道变道场景为例,通过组合测试方法及PICT组合测试工具,实现高速公路双车道变道场景的组合泛化,生成高速公路双车道变道逻辑场景测试用例集。设计的高速公路双车道变道模型示意如图2所示。模型描述如下:
1) 设定高速公路类型为单向双车道,按照公路工程技术标准 [16] 规定,设定高速公路车道宽度为3.75 m,设计时速为60~120 km/h;
2) 考虑天气因素对汽车行驶安全的影响,选定天气类型为晴天、阴天、雨天、雪天四种类型;
3) 考虑光照条件对汽车行驶的安全影响,选定日间、晨昏、夜间三种类型;
4) 其中主车
以速度
跟随前方车辆以相同速度行驶,主车
意欲通过变道行为超越前方车辆,或者继续跟随前方车辆行驶;
5) 主车
在跟随前方车辆行驶时,其相邻车道有干扰车辆
干扰主车
的变道行为,以
表示干扰车辆速度,主车与干扰车辆之间的间距用S表示,相对速度用
表示,其中
。

Figure 2. Two-lane lane change model of expressway
图2. 高速公路双车道变道模型
根据相关研究表明 [17] ,影响变道行为的风险元素可分为驾驶人心理因素和车辆交通行驶因素。结合对图2高速公路变道模型的描述以及自动驾驶测试场景设计的需求,不考虑驾驶人对变道超车的影响,仅考虑主车速度
、相对速度
以及两车间距离S的影响 [17] ,实现高速公路双车道变道场景的泛化。同时,考虑环境因素对场景安全的影响,综合考虑天气类型和光照条件两个静态风险元素。
按照不同风险元素取值的属性,首先将风险元素分为连续型风险元素和离散型风险元素。其中主车速度
、相对速度
和车头间距S是随着时间推移而动态变化的,属于连续型风险元素;天气类型、光照条件的取值是离散变化的,不会随着时间推移而发生突变,属于离散型风险元素。风险元素的类型、名称及取值如表1所示。

Table 1. Information on relevant risk elements
表1. 相关风险元素信息
3.2. 连续型风险元素处理
依据统计的NAIS事故中625例高速公路交通事故,进一步对样本数据进行筛选,筛选原则为选取由于车辆变道而引起的与其他车辆发生碰撞的交通事故,总计37例。在NAIS数据库中,每个事故深度调查案例包含2200余个字段,涵盖了人–车–路–环境等各方面信息,相关字段信息是通过道路监控视频或行车记录仪视频计算、Pc-Crash仿真计算和EDR数据记录等方式获取的,具有较高的可信度。主车速度
、相对速度
以及两车间距离S的具体数值可在数据库中直接提取,部分案例关键参数信息如表2所示。
3.2.1. 概率分布拟合
为方便将风险元素进行组合泛化,需将连续型风险元素进行分层离散化处理,以风险元素取值出现频率作为分层依据,分别绘制主车速度
、相对速度
以及两车间距离S频率直方图及概率拟合曲线图,如图3所示,均近似服从正态分布。



Figure 3. Frequency distribution diagram and fitting curve diagram of key parameters
图3. 关键参数频率分布图及拟合曲线图
3.2.2. 正态分布假设检验
对于主车速度
、相对速度
以及两车间距离S三个参数是否服从正态分布需要进行假设检验。
首先通过绘制正态P-P图进行定性检验。分别绘制三个参数的正态P-P图,由图4可知各参数的样本点大致都分布在正态P-P图对角线附近,说明正态分布假设合理。
再对相关参数是否符合正态分布进行定量判断。假设三个风险元素均服从正态分布,分别计算相关参数偏度和峰度的Z评分(
),统计正态分布的主要参数如表3所示。计算公式为:
(1)
(2)

Figure 4. Key parameter normality test P-P plot
图4. 关键参数正态检验P-P图

Table 3. Key parameters normal distribution main parameters
表3. 关键参数正态分布主要参数
取置信度水平为95%,在
的检验水平下,若偏度
与峰度
均小于等于
,则可认为服从正态分布。经计算可知主车速度
、相对速度
以及两车间距离S的偏度
与峰度
均小于
,则可认为三个参数均服从正态分布。
3.2.3. 分层处理
分别根据三个参数的正态分布密度函数进行分层处理,以等概率的原则实现三个参数的分层处理,即分层后每个参数层之间的概率近似相等。事实上,参数分层数量越多则覆盖度越高,但同时会造成区分度不足的问题,失去了场景组合泛化的意义。因此为扩大样本的代表性和后续组合泛化时的用例多样性,本文将三个参数均划分为七层。三个参数的正态分布密度函数分别为(3) (4) (5)。
主车速度
:
(3)
相对速度
:
(4)
两车间距S:
(5)
分别求出三个参数七层之间的分位点,并对三个参数的六层分别进行标识化处理,结果如表4所示。

Table 4. Key parameter hierarchical results
表4. 关键参数分层结果
3.3. 离散型风险元素处理
为扩大样本数据的代表性,提高场景的风险度,选取发生在高速公路上的625例交通事故为样本总体,对天气类型和光照条件统计分析。
3.3.1. 天气类型分析
统计的625例高速公路交通事故中,在晴天、阴天、雨天和雪天不同的天气类型下事故严重情况统计图如图5所示。其中晴天天气类型下发生过重大事故的比例为40.69%,阴天天气类型下发生过重大事故的比例为70.42%,晴雨天天气类型下发生过重大事故的比例为69.32%,雪天天气类型下发生过重大事故的比例为97.56%。分析可知在雪天天气下发生过的重大道路交通事故比例最高,其危险程度最高;其次是雨天和阴天天气下发生的重大道路交通事故比例基本持平,其危险程度适中;最后是晴天天气下发生的重大道路交通事故比例较低,其危险程度较低。


Figure 5. Statistics chart of accident severity under different weather types
图5. 不同天气类型下事故严重程度统计图
以不同天气类型下重大道路交通事故的比例为依据,提升组合测试用例生成结果中危险程度高的天气类型出现的频率,将不同天气类型进行频数加权的等级处理。由于雪天中重大事故发生的几率较大,因此雪天的频数等级要高于其他三种天气,将晴天的权重设置为1,则阴天、雨天和雪天的权重分别为2、2和3,标识化处理结果如表5所示,其中D1表示晴天;D2~D3表示阴天;D4~D5表示雨天;D6~D8表示雪天。

Table 5. Weather type hierarchical results
表5. 天气类型分层结果
3.3.2. 光照条件分析
光照条件进行同样的统计分析,得到不同光照条件下事故严重情况统计图如图6所示,分析发现夜间发生重大事故的概率要大于晨昏和日间发生重大事故的概率,夜间行车更易发生重大交通事故,即光照条件为夜间时的危险度更高,其次是晨昏,最后是日间。


Figure 6. Lighting condition statistics
图6. 光照条件统计图
同理,光照条件进行频数加权的等级处理,取日间权重等级为1,则晨昏权重等级为2,夜间权重等级为3。进一步进行标识化处理,结果如表6所示,其中E1表示日间;E2~E3表示晨昏;E4~E6表示夜间。

Table 6. Lighting condition layering results
表6. 光照条件分层结果
4. 逻辑场景测试用例泛化
完成对相关风险元素的数据处理后,需要通过PICT工具实现高速公路双车道变道场景的组合泛化,生成高速公路双车道变道场景逻辑场景测试用例集。
4.1. 设置约束条件
由于不同风险元素之间存在一定的约束制约关系,由此生成的逻辑场景测试用例集会产生不合理、无意义的测试用例,需要对存在制约关系的风险元素添加约束语句来规避无效测试用例的生成。分析主车速度
、相对速度
以及两车间距离S三者之间的制约关系,应满足以下约束条件:
1) 当两车间距S为
、
、
或
时,主车
若要进行变道响应,相对速度
不可为
、
、
或
,否则主车变道后会追尾前方干扰车辆
;
2) 当两车间距S为
、
或
时,主车
若要进行变道响应,相对速度
不可为
、
或
,否则主车变道时影响后方干扰车辆
正常直行,属于非法变道行为。
4.2. 考虑覆盖度的逻辑场景用例生成
针对影响高速公路双车道变道场景的风险元素,若按照穷尽测试(Exhaustive Testing,简称ET)方法生成测试用例,按照笛卡尔积运算,公式如(6)所示,一个受五因素混合水平影响的系统将会生成16,464个逻辑场景用例,其中
表示第i个风险元素取值的数量。
(6)
若考虑更多的风险元素及取值,则生成的逻辑场景用例是呈指数型爆炸增长的,如此巨大的测试量是无法实现的,其成本更是无法承担的。按照组合测试的理论方法,在考虑覆盖度的情况下,按照阶数递增的方式实现高速公路双车道变道逻辑场景用例的泛化扩充。由于主车速度
、相对速度
以及两车间距离S三个风险元素对此场景的影响较为显著,需要对此三个风险元素于PICT工具中设置为子模型,进行更为彻底的测试。使用PICT工具生成的覆盖强度为二阶的逻辑场景用例,共生成472例逻辑场景用例,组成高速公路双车道变道逻辑场景用例集,由于篇幅限制,取其中7例测试用例如表7所示。

Table 7. Combined generalization results
表7. 组合泛化结果
以第6号测试用例为例,其含义为在一高速双车道公路上,在雪天的晨昏时间,主车
以(71, 79) km/h的速度行驶,欲进行变道响应,其相邻车道有一干扰车辆
以(10, 19) km/h的速度差行驶,干扰车辆
车头距离主车
的距离(6.9, 12.1) m。
分别统计主车速度
、相对速度
以及两车间距离S三个风险元素的组合结果,结果示意如图7所示,统计逻辑场景用例整体组合泛化后的结果示意如图8所示。
4.3. 组合泛化效果量化评价
对于高速公路双车道变道场景模型,是受五因素混合水平影响的,任意两个参数取值的组合共有489种组合,通过组合测试方法可以生成472例用例,若从通过笛卡尔积运算生成的16,464个全量组合测试用例中随机抽取472个测试用例,对双因素互相影响组合的测试覆盖度仅为2.87%左右,而通过组合测试方法生成的472例测试用例对双因素互相影响组合的覆盖度提升了97.13%。

Figure 7. Schematic diagram of the main parameter combination
图7. 主要参数组合示意

Figure 8. Schematic diagram of logical scenario use case combination generalization
图8. 逻辑场景用例组合泛化示意
因此通过组合测试方法生成的测试用例可以实现双因素相互作用影响场景的高覆盖度测试和加速测试。组合泛化的结果对于高速公路双车道变道模型具有良好的描述度和覆盖度,可以进一步用来生成具体场景测试用例用于自动驾驶仿真测试。
5. 结论
本文以NAIS事故深度调查数据为统计基础,以高速公路双车道变道场景为例,建立相应模型,提出一种适用于逻辑场景用例泛化的方法。将对场景有影响的风险元素按照连续型和离散型分成两类,对连续型风险元素进行概率拟合得到概率拟合曲线,并参照权重进行分层处理,分析各个风险元素的制约关系和交互关系,对离散型风险元素同样按照参数权重进行分层及标识化处理,使用组合测试方法理论进行组合泛化,生成逻辑场景用例。对于高速公路双车道变道场景通过组合测试方法生成了472例逻辑场景用例,对双因素互相影响的组合提升了97.13%的覆盖度,实现测试场景用例的高效泛化生成。同样,其他场景可以进行类似的相关风险元素分析,以相同的方法生成对应的逻辑场景用例,满足进行虚拟仿真测试时高质量大数量场景的需求,可以有效地提升自动驾驶功能的安全测试和加速测试。