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] .
   249   250   251   252   253   254   255   256   257   258   259