Page 178 - 《软件学报》2024年第6期
P. 178
2754 软件学报 2024 年第 35 卷第 6 期
perturbations to original images or modifying the whole image to generate test data. The generated test data are quite different from the
real images, and the perturbation-based methods are difficult to be understood. To solve the above problem, this study proposes a test data
generation method, namely interpretability-analysis-based test data generation (IATG). Firstly, it uses the interpretation method for DNNs
to generate visual explanations of decisions made by autonomous driving software and chooses objects in the original images that have
significant impacts on the decisions. Then, it generates test data by replacing the chosen objects with other objects with the same
semantics. The generated test data are more similar to the real image, and the process is more understandable. As an important part of the
autonomous driving software’s decision-making module, the steering angle prediction model is used to conduct experiments. Experimental
results show that the introduction of the interpretation method effectively enhances the ability of IATG to mislead the steering angle
prediction model. Furthermore, when the misleading angle is the same, the test data generated by IATG are more similar to the real image
than DeepTest; IATG has a stronger misleading ability than semSensFuzz, and the interpretation analysis based important object selection
method of IATG can effectively improve the misleading ability of semSensFuzz.
Key words: deep neural network (DNN); autonomous driving software; interpretation method; software testing
深度学习软件建立了类似人脑神经元的分层结构, 通过引入非线性的激活函数, 将输入的数据逐层转换为高
维特征, 从而建立底层输入到高层语义的复杂映射关系 [1] , 可基于大规模数据集学习特定能力, 在某些特定任务上
所生成的测试数据能有效对决策模块产生误导, 且和
的准确性甚至已经超过了人类. 目前深度学习系统已经在计算机视觉、自然语言处理等领域取得了显著进展并得
到了实际应用 [2] . 作为深度学习软件的代表, 深度神经网络 (deep neural network, DNN) 在计算机视觉领域表现出
卓越性能. 基于 DNN 的自动驾驶软件可对传感器采集的图像信息进行分析来做出驾驶决策, 已成为深度学习软
件的典型应用之一 [3] . 自动驾驶软件通常由感知模块、决策模块以及控制模块组成. 其中, 感知模块通过 2D 相机、
雷达和 3D 传感器等多种传感设备监测车辆周围环境, 为自动驾驶软件的决策模块提供至关重要的环境信息, 决
策模块收到由感知模块提供的多维度信息后, 依据当前环境信息进行驾驶行为决策, 并向车辆控制模块发送转向、
加速和刹车等相关指令, 是自动驾驶软件中承担车辆行为决策任务的重要核心模块. 由于处理高维度特征信息的
优异性能, DNN 被大量应用于构建决策模块.
与其他智能控制系统一样, 基于 DNN 的自动驾驶软件容易在特定环境或受到攻击时产生错误行为, 导致严
重事故的发生. 如特斯拉自动驾驶汽车在 2021 年因自动驾驶软件的错误行为而导致严重事故 [4] . 为减少此类事故
的发生, 需要对自动驾驶汽车进行充分测试. 然而, 直接进行真车测试的成本过于高昂. 因此, 在使用真车测试之前
通常会使用测试数据对相关模块进行模拟测试. 目前已经提出了多种基于图像的自动驾驶软件测试数据生成方
法, 例如 DeepBillboard , DeepTest , DeepRoad 等. 但这些方法的生成过程缺乏解释、难以理解, 且所生成的测
[7]
[5]
[6]
试数据和真实图像差异较大, 难以检测自动驾驶软件对相同场景做出不一致行为所导致的错误.
为解决上述问题, 本文提出了基于解释分析的自动驾驶软件测试数据生成方法 IATG (interpretability-analysis-
based test data generation), 利用 DNN 解释方法生成 DNN 模型所做出决策的视觉解释, 选择原始测试数据图像中
对决策模块产生重要影响的物体, 并通过基于真实图像和基于图像翻译两种替换策略将选择的重要物体替换为语
义相同 [8] 的其他物体以生成测试数据, 使所生成的测试数据更加接近真实图像. 转向角控制是最基础的驾驶行为
之一, 对决策模块中转向角预测模型的测试受到广泛关注. 本文对转向角预测模型进行测试的实验结果表明,
[9]
IATG DeepTest 相比更加接近真实图像; 与 semSensFuzz 相
比, IATG 则具有更高的误导能力, 且 IATG 中基于解释分析的重要物体选择方法可有效提高 semSensFuzz 生成测
试数据的误导能力.
IATG 使用两种物体替换策略生成测试数据的示例如图 1 所示. 图 1 中第 1、2 列分别是原始图像和用解释
方法生成的决策视觉解释 (以下称为热图). 第 3 列是基于真实图像的物体替换策略所生成的测试数据, 第 4 列是
基于图像翻译的物体替换策略所生成的测试数据. 第 3、4 列中的蓝色箭头和红色箭头分别是 DNN 模型对原始
图像和所生成测试数据的转向角预测结果, 其中绿色矩形框中的物体为经过解释方法进行选择并替换的物体. 从
图 1 中的示例可以看出, IATG 的物体替换方法虽然只对原始图像中的小面积区域进行修改, 但依然可对 DNN 模
型产生明显误导.