Page 259 - 《软件学报》2025年第10期
P. 259
4656 软件学报 2025 年第 36 卷第 10 期
在每个测试配置中, 图 5 的投影图绘制尺度一致, 越趋近蓝色的区域, 表示分布密度越高, 表示这部分的样本
越趋同. 反之, 越趋近黄色的区域, 表示分布密度越低, 也表示这部分样本的差异性越大 (亦即越多样). 趋黄色的区
域越大, 表示整体样本的多样性越好. 从图 5 可以看出, IIFuzzing 的 GMM 投影面积和黄色区域面积都大于基线方
法, 在 RL+CARLA 和 MARL+CoopNavi 测试配置中更加明显, 说明 IIFuzzing 可以探测到更多样的失效事故.
问题 3 评价结论: IIFuzzing 在同样的测试时间内, 可以探索更大的测试空间, 并触发更多样的失效事故.
4.5.4 干预点设置的合理性 (RQ4)
第 3.4 节我们介绍了设置干预点的方法. 由于数据非常不均衡, 我们要兼顾预测双侧的召回率, 期望在尽可能
放行非惰性序列的前提下, 减少惰性序列的放行执行, 以减少测试资源消耗. 具体地, 在每个测试配置中, 分别以其
最大时间步长 M (见表 1) 的 20% (亦即 20%M) 为起点, 每增加 20% 为间隔, 共设 5 个观测点. 图 6 详细展示了不
同干预点 InertS-Pred@IIFuzzing 预测双侧的召回率.
R nis R is
1.1 1.1 1.1 1.1
0.8 0.8 0.8 0.8
召回率 0.5 召回率 0.5 召回率 0.5 召回率 0.5
0.2 0.2 0.2 0.2
−0.1 −0.1 −0.1 −0.1
20 40 60 80 100 20 40 60 80 100 20 40 60 80 100 20 40 60 80 100
干预点 (%) 干预点 (%) 干预点 (%) 干预点 (%)
(a) RL+CARLA (c) IL+CARLA (b) RL+BipedalWalker (d) MARL+CoopNavi
图 6 IIFuzzing 不同干预点的惰性预测召回率
由于 4 个测试配置的差异很大, 我们可以看到惰性序列预测性能随时间进展并没有一致性的趋势, 按照第
3.4 节介绍的方法, 基于实验结果, 红圈标记的点是本方法选择的干预点, 其中 RL+BipedalWalker, 双侧召回率平均
值最高的点在 80% 处为 55%), 但在 20% 处双侧的平均召回率为 51.4%, 相差在 5% 以内, 所以, 我们选择靠前的
时间点 20% 处作为干预点, 其他 3 个测试配置中, 都是选择的双侧平均最高点.
为了验证干预点的合理性, 我们分析在干预点的状态序列分布. 对所有执行到干预点的测试序列, 基于第 3.3
节介绍的聚类模型做聚类, 然后将聚类后的分布向量输入算法 t-SNE [48] 做降维处理并可视化展示在二维平面, 图 7
分别展示了各测试配置中的分布情况. 其中不同的颜色表示聚类后的不同类簇, 特别地, 灰色表示离群点, 亦即认
为可能会触发失效事故的状态簇; 圆点表示最终未触发失效事故的测试序列, 即惰性序列, 三角表示最终实际触发
失效事故的测试序列, 即非惰性序列. 我们可以看到: 1) 在干预点, 大多数的测试序列为惰性序列; 2) 惰性状态序
列通常分布在簇中心的高密度区域, 而非惰性序列则分布在外围的低密度区域; 3) IIFuzzing 识别出的离群点 (即
灰色标记) 确实可以定位到分布于外围的低密度区域, 说明干预点的设置是合理的.
80 40
75 60 40
50 40 20
25 20 20
0 0
0 −20 0
−25 −40 −20 −20
−50 −60 −40
−75 −80 −40
−100 −75 −50 −25 0 25 50 75 −80 −60 −40 −20 0 20 40 60 80 −40 −30 −20 −10 0 10 20 30 40 −40 −20 0 20 40 60
(a) RL+CARLA (b) IL+CARLA (c) RL+BipedalWalker (d) MARL+CoopNavi
(干预点=40%M) (干预点=20%M) (干预点=20%M) (干预点=20%M)
图 7 在干预点的状态序列密度聚类分布
问题 4 评价结论: 测试状态序列在干预点已经呈现比较清晰的密度分布, 惰性和非惰性序列分布于明显不同
的聚类, IIFuzzing 干预点的选择方法是合理的.

