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 且误导角度