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

4646                                                      软件学报  2025  年第  36  卷第  10  期


                 not  trigger  failure  accidents  are  predicted  and  the  testing  execution  of  such  sequences  is  terminated  to  improve  the  testing  efficiency.  The
                 experimental  evaluations  are  conducted  in  four  common  test  configurations,  and  the  results  show  that  compared  with  the  latest  fuzz  testing
                 for  SDM  models,  IIFuzzing  can  detect  16.7%–54.5%  more  failure  accidents  within  the  same  time,  and  the  diversity  of  accidents  is  also
                 better than that of the baseline approach.
                 Key words:  sequential decision-making (SDM) model; Markov decision process (MDP); fuzz testing

                    随着信息化、智能化程度的发展, 智能系统在国防建设、社会生活中扮演着愈发重要的作用, 例如无人机、
                 水下无人艇、无人坦克、机器人控制、自动驾驶、兵棋推演等. 随着应用场景的愈发复杂, 智能系统也由无需和
                 环境交互的、单功能并相对静态的智能系统演变为复杂的、需要不断和环境交互并实时决策的、相对动态的智
                 能系统. 其中不仅有基于独立事件的预测、分类等模型, 还有需要在有限时间内连续针对环境的反馈做出一系列
                 的响应, 最终完成任务目标的决策模型, 亦即连续决策                (sequential decision-making, SDM) 智能模型. 由于连续决策
                 模型需要和环境不断交互并作出响应, 所以连续决策过程通常可以建模为马尔可夫决策过程                                 (Markov decision
                 process, MDP) . 连续决策智能体   (SDM-Agent) 通过感知环境得到当前时刻的状态, 根据学到的策略执行动作, 然
                            [1]
                 后得到下一时刻的状态和奖励, 如图           1  所示. SDM-Agent 根据策略不断与环境交互, 产生新的奖励, 再根据奖励改
                 进动作策略, 经过反复的迭代训练, SDM-Agent 就会学到完成任务目标所需要的最优策略.

                                                      Agent
                                                      π(a|s t )
                                                                        奖励
                                          Action  a 1  a 2  a 3  a t
                                                                        Reward
                                                                        r t =R(s t , a t )

                                               s 1  s 2   s 3  s t
                                             环境 (Environment) S t+1 =T(s t , a t )
                                                 图 1 马尔可夫决策过程模型

                    尽管这些智能决策模型已经有了很多有效的应用, 但其可靠性、鲁棒性等质量问题依然面临极大的挑战, 我
                 们可以看到, 当前大多数的自动驾驶依然依赖于大量的实际路测, 决策失误引发的事故频发. 据美国加利福尼亚机
                 动车辆管理局的统计       [2] , 从  2014  年  10  月至  2023  年  4  月, 接到  581  起由于自动驾驶引起的碰撞事故, 导致严重的
                 生命安全和财产损失.
                    测试一直是保障产品质量的重要手段, 但智能算法的测试由于其影响质量的因素已经不再是算法的功能, 而
                 是算法在模型训练时的泛在性如何去适应应用环境的不确定性, 对人工智能算法的测试非常困难. 近年一些传统
                 的软件测试技术如模糊测试          [3] 、变异测试  [4] 、蜕变测试  [5,6] 等开始尝试改进以用于对人工智能算法的测试, 如图片
                 分类、机器翻译、回答系统等. 这些测试通常是通过对种子测试用例的变异, 产生差异化的测试用例集, 以期望触
                 发算法失效的场景. 对于连续决策算法, 目前常用的测试技术是在人工指导下, 通过手动定义适应度函数                                (如自主
                 车辆与行人之间的最小距离等), 然后利用遗传算法生成连续的安全关键场景, 来测试自主智能体的决策能力, 如
                                     [8]
                 AV-FUZZER 和   MOSAT 等针对自动驾驶系统         (autonomous driving system, ADS) 的测试. 2022  年, Peng  等人  [9]
                           [7]
                 提出了一个基于模糊测试的          MDP  测试框架   MDPFuzz, 通过选择一组状态作为种子, 然后通过变异产生测试的初
                 始状态, 将每个初始状态输入          MDP  模型, 驱动  SDM-Agent 仿真执行, 直到完成一次仿真或者出现碰撞等事故.
                 MDPFuzz 不需要人工介入, 但存在两个问题: 1) MDPFuzz 将智能算法作为黑盒, 只关注初始状态的选择和变异,
                 而不考虑决策过程中和环境交互的信息和影响, 导致测试的“交互-行动”决策序列多样性不够充分; 2) 由于测试序
                 列多样性不够, 决策过程非常依赖历史经验而出现惰性, 导致花大量时间执行惯性模式且不能触发失效事故.
                    我们都知道测试的目的是发现问题, 而并非证明系统是正确的. 对于连续决策模型的测试, 由于环境和交互的
                 不确定性, 发现决策风险远比完成决策任务重要. 本文提出了一种面向                       SDM  决策算法, 在模糊测试执行中, 通
                 过干预惰性测试序列, 加速模糊测试触发失效事故的效率和效果的方法: IIFuzzing (fuzz testing with inert interven-
   244   245   246   247   248   249   250   251   252   253   254