Page 191 - 《软件学报》2024年第6期
P. 191

谢瑞麟 等: IATG: 基于解释分析的自动驾驶软件测试方法                                                  2767


                 种方法). 从图   14  中可以看出, IATG  在参数设置为     S1  和  S2  时均生成了较为真实的测试数据, 且所生成的测试数
                 据没有改变物体语义和物体之间的位置关系, 因而具有和原始数据相同的测试预言. DeepTest 则对原始数据全局
                 进行改动以生成测试数据, 虽然具有和原始数据相同的测试预言, 但其生成测试数据的变异方式难以出现在真实
                 世界, 且全局性改动也使其具有较高的            LPSPS  值. semSensFuzz 改变物体颜色和添加物体两种方法只对单个物体
                 进行变异且大多应用于尺寸较小的物体, 这使其生成的测试数据具有较小的                         LPIPS  值, 但改变物体颜色的方法缺
                 乏针对性, 会对所有物体逐一变异导致生成大量误导角度极低的测试数据. 而                        semSensFuzz 添加物体的方法因添
                 加新物体会改变测试数据的测试预言, 无法使用蜕变测试技术检测误导角度. 此外, semSensFuzz 生成的部分测试
                 数据中所添加新物体位于其他物体之上, 虽然具有较低的                   LPIPS  值但明显不符合常识. 例如第       7  行的第  2  张图片
                 中  semSensFuzz 将一辆橙色汽车添加至行人前方且悬浮于地面上方.


                       原始数据



                        IATG
                         (S1)



                        IATG
                         (S2)


                       DeepTest
                       (Rotation)


                       DeepTest
                        (Shear)                       LPIPS



                      semSensFuzz
                     (改变物体颜色)


                      semSensFuzz
                       (添加物体)

                                               图 14 不同方法生成测试数据示例

                    与  DeepTest 相比, IATG  明显降低了  LPIPS  值, 且转向角误导角度仅略低于        DeepTest. 与  semSensFuzz 相比,
                 IATG  具有更高的误导角度, 且同样具有较低的                 值. 这也引出了一个新的问题: 当误导角度相同时, IATG             相
                 比  DeepTest 和  semSensFuzz 所生成测试数据的  LPIPS  值如何?
                    为此, 我们从    DeepTest 生成的  17 850 张测试数据和  semSensFuzz 生成的  50 000 张测试数据中分别随机采样出
                 5 408  个样本, 使其与参数设置为      S1  和  S2  时  IATG  所生成的测试数据量之和相同, 以比较       IATG、DeepTest 和
                 semSensFuzz 所生成测试数据的误导角度及对应           LPIPS  值. 图  15  为所生成的散点图, 从最大值看, 当参数设置为
                 S1  和  S2  时, IATG  所生成测试数据的最大    LPIPS  值分别为  0.173  和  0.087, DeepTest 的最大  LPIPS  值为  0.38,
                 semSensFuzz 的最大  LPIPS  值为  0.056; 从分布区域看, IATG  所生成测试数据主要集中于         LPIPS  值小于  0.1  的区
                 域, 而  DeepTest 主要集中于  LPIPS  值大于  0.1  的区域, semSensFuzz 则主要集中于  LPIPS  值小于  0.05  且误导角度
   186   187   188   189   190   191   192   193   194   195   196