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  模
                   型产生明显误导.
   173   174   175   176   177   178   179   180   181   182   183