Page 254 - 《软件学报》2025年第10期
P. 254
吴泊逾 等: 干扰惰性序列的连续决策模型模糊测试 4651
(p 1 , p 2 ,..., p n ), 该向
拟合后的模型在线工作时, 对于给定的归一化表示的状态序列, 模型将输出一个聚类向量
量的长度等于拟合模型中聚类的数目, 向量中第 i 个数据点 p i 的值表示该状态序列属于第 i 个聚类的概率. 我们
发现可能触发失效事故的序列到任何已有聚类的概率都非常低.
3.3.3 预测惰性序列
惊喜充分性 (surprise adequacy, SA) 是一种度量 DNN 测试充分性的方法 [38] , 表征新输入的样本相对于训练样
本的新颖性. DeepGini [39] 进一步将该指标用于选择 DNN 的测试用例. 对于得到的聚类向量, 可能触发失效事故的
序列属于任何已有聚类的概率都非常低. 对于给定状态序列, 我们已经得到该序列属于某个聚类的概率向量. 参
考 DeepGini 我们将状态序列惰性的计算公式定义为:
∑ c
SA = p 2 i (2)
i=1
SA 越小, 该状态序列触发失效事故的可能性越大. 实践中可以根据测试资源、风险控制水平等要素经验性确
定一个阈值, SA 高于该阈值则预测为惰性序列, IIFuzzing 将中止该序列的继续执行.
3.4 干预点设置
干预点的选择对 IIFuzzing 的影响很大, 越早干预并中止惰性序列的执行, 可以节省测试资源, 在相同时间内执
行更多的测试用例; 但过早干预也提高了错误预测并中止有效测试的风险. 我们通过实验方法, 在多个间隔时间点
综合考虑惰性和非惰性序列预测的召回率 (记为 R is , R nis ) 和时间 t 来设置合适的干预点. 具体的选择方法遵循两个
准则: 1) 选择惰性和非惰性序列预测的召回率的平均值 Average(R is , R nis ) 最高的时间点作为备选干预点; 2) 如果平
均值最高的前两名之间的差距低于 5%, 则选择时间 t 靠前的时间点作为干预点. 更详细的介绍见第 4.5.4 节.
4 实验验证
4.1 实验验证目标
实验设计的目标是验证 IIFuzzing 的有效性. 为此我们设计 4 个评价问题 (research question, RQ).
RQ1: IIFuzzing 探索连续决策模型失效事故的有效性和效率?
RQ2: IIFuzzing 预测惰性和非惰性状态序列的准确性?
RQ3: IIFuzzing 探测到的失效事故的多样性?
RQ4: 干预点设置的合理性?
4.2 测试目标模型与测试环境
如图 1 所示, 连续决策问题通常建模为 MDP 过程, 通过智能体模型和环境的交互执行完成预设任务. 为了验
证 IIFuzzing 的有效性, 我们选择并设置了 4 种目标模型和测试环境的组合配置, 摘要信息如表 1 所示.
表 1 测试配置
历史/初始数据
算法模型+测试环境 领域 最大时间步M 状态维度
测试序列数 失效事故率 (‰)
RL+CARLA 自动驾驶 100 17 714 40.60
IL+CARLA 自动驾驶 200 17 516 50.40
RL+BipedalWalker 机器人控制 300 24 6 148 11.90
MARL+CoopNavi 合作导航 100 24 13 194 0.30
(1) RL+CARLA: CARLA [40] 是一个流行并开源的自动驾驶仿真系统, 包括行人、路口和交通灯, 用于自动驾驶
系统在城市仿真道路的训练和验证. 我们选择了一个可在 CARLA 执行的、先进的强化学习模型 [41] 作为待测的目
标智能体. 该模型在 CARLA 挑战赛的“仅用相机”赛道中获胜 [42] .
(2) IL+CARLA: 同样在 CARLA 的环境上, 我们选择了一个模仿学习模型 [30] . 该模型曾经在 CARLA 自动驾
驶排行榜排第一 [43] .

