Page 250 - 《软件学报》2025年第10期
P. 250

吴泊逾 等: 干扰惰性序列的连续决策模型模糊测试                                                        4647


                 tion). IIFuzzing  基于通用的模糊测试范式, 首先选择和变异初始状态, 获得测试输入集合, 输入                  SDM-Agent 模型,
                 观测决策过程的状态序列, 分析和预测剩余的执行序列是否会触发失效事故, 干预并中止无失效序列的测试执行.
                 我们用   3  类最流行并先进的模型       (强化学习、模仿学习、多智能体强化学习), 在自动驾驶、机器人控制以及合作
                 导航等场景进行实验, 实验结果表明           IIFuzzing  在同样的测试时间内, 相比最先进的基线方法            MDPFuzz 可以多触
                 发  17.2%–51.5%  的失效事故, 且事故多样性更好. 我们公开发布了            IIFuzzing  的源代码, 以及在实验中使用的目标
                 模型和模拟环境, 以促进本研究的复现和扩展, 网站链接为                 https://github.com/ARMABLE/IIFuzzing. 本文的创新贡
                 献主要包括以下几点.
                    ● 提出了一种部分打破连续决策模型黑盒, 通过智能分析和预测, 干预惰性测试序列的模糊测试方法, 可以有
                 效提高测试的效率和测试的多样性.
                    ● 构建了基于状态分布密度的惰性测试序列预测模型, 可以准确地预测惰性测试序列.
                    ● 选择了   4  种模型在  3  种仿真环境进行详实的实验验证, 实验结果表明              IIFuzzing  相比现有的基线方法具有
                 更好的性能.
                    本文第   1  节介绍深度学习模型测试的相关方法和研究现状. 第                2  节介绍本文所需的基础知识, 包括马尔可夫
                 决策过程和其策略学习模型. 第          3  节介绍本文构建的干扰惰性序列的连续决策模型模糊测试方法. 第                     4  节通过对
                 比实验验证所提方法的有效性. 最后总结全文.
                  1   相关工作

                    人工智能技术的发展日新月异, 而与之对应的测试技术却远远没有跟上, 也成为学术界和产业界当前的研究
                 重点, 我们从以下几个方面介绍相关技术的发展.
                  1.1   面向离散决策模型的测试方法
                    近年来, 学术界越来越多的研究探索如何将模糊测试、变异测试、蜕变测试等传统软件测试方法应用到对智
                                    [3]
                 能模型的测试中. DLFuzz 是一个差分模糊测试框架, 通过对测试数据施加微小扰动来变异输入, 以获取最大化的
                 神经元覆盖和预测差异. DeepMutation 从源代码和模型两个级别设计了                 8  个变异算子, 对深度神经网络的训练数
                                              [4]
                 据、训练程序和模型文件进行变异测试. 蜕变测试在测试智能模型方面得到了大规模的应用, 如                               TransRepair [10] 和
                 CAT [11] 设计了一组蜕变关系来测试机器翻译模型, QAAsker          [12] 和  QAQA [13] 用蜕变测试改进问答系统的能力, Liu
                 等人基于蜕变测试理论提出了统一的模糊测试框架                  QATest [14] , 适用于多种形式的问答系统. 从以上工作中可以发
                 现, 传统软件的测试方法经过改进也可以应用于智能模型的测试, 但上述工作针对的被测模型均为离散决策模型,
                 在针对连续决策的智能模型进行测试时无法生效.
                  1.2   面向连续决策模型的测试方法
                    除了上述针对离散决策模型测试的研究, 学术界针对连续决策模型的测试技术也进行了很多探索. 连续决策
                 模型主要应用在自动驾驶、机器人等领域. 目前较为常见的测试方法是生成任务安全攸关的场景, 包括基于知识
                 和基于搜索两种技术路线. 基于知识的方法是基于特定领域的知识本体或蜕变关系生成临界案例, 这些知识来源
                                                                              [6]
                 于人类的驾驶经验, 交通事故报告以及交通法规等, 如                DeepTest [15] 和  DeepRoad 基于天气变化不应影响自动驾驶
                                                                    [16]
                 系统转向角度的预测等公共知识生成临界测试案例. DeepBillboard                通过在真实的广告牌上添加对抗性扰动来生
                 成临界案例, 以检查模型是否输出相同的转向角度. 而基于搜索的方法旨在找到一组测试参数, 在自动驾驶系统中
                 引入诸如碰撞和车道偏离等行为差异. 为了定义参数搜索空间, 大多数基于搜索的方法根据自动驾驶汽车的状态
                 (例如被测车辆的位置和速度, 以及道路上的其他车辆和行人等) 设计驾驶模式. 搜索过程通常由人工定义的适应
                 度函数   (例如碰撞时间、被测车辆与行人之间的最小距离等) 引导, 利用遗传算法求解这些适应度函数的最优解.
                 例如, AsFault [17] 使用遗传算法来评估道路的长度和位置等参数, 在生成的测试场景中使被测车辆在车道保持任务
                 中更容易出错. FITEST    [18] 扩展了最近提出的多目标进化算法, 以减少计算适应度值所需的时间. 国内也有很多研
                 究团队提出了相关的工作, 例如          Tian  等人  [8] 提出的  MOSAT  认为  NPC (non-player character) 车辆的自由组合不能
   245   246   247   248   249   250   251   252   253   254   255