Page 201 - 《软件学报》2025年第7期
P. 201

3122                                                       软件学报  2025  年第  36  卷第  7  期


                  ++
                 φ , 即令  s = 2.
                    (2) 若当前测试用例的失效度小于目前最优测试用例的失效度, 但好于上一个测试用例的失效度, 即
                                              +
                 S (t N T ) > S (t N T −1 )  时, 我们做正向调整  φ , 即令  s = 1.
                                                                                                  φ , 即令
                                                                                                   −
                    (3) 若当前测试用例的失效度小于上一个测试用例失效度, 即                   S (t N T ) < S (t N T −1 )  时, 我们做负向调整
                 s = −1.
                                             ε 为一个正数    (实验中分别取     0.05、0.1、0.15  和 0.2).  Q N T  Q N T   中
                                                                                                    t
                                                                                        t
                    需指出, 这里测试剖面调整幅度                                                       −0.25·1 将
                 所有的   q i j  减去一个值, 这样不仅可以增加距离测试用例          t N T  中威胁较近的子区域包含威胁的概率, 也能降低距离
                 t N T  中威胁较远的子区域包含威胁的概率. 此外, 我们对           Q N T +1  进行了缩放以保证  Q N T +1  中不含有大于  1  或者小于
                 0     的概率值. 此外, 为了防止  Q N T +1  的值越加越大, 我们将通过  Q N T +1  生成威胁的期望个数归一化为:
                                                                    t
                                                   (1−δ)NEQ N T +δNEQ N T                            (22)
                    公式  (22) 不仅将原测试剖面与当前测试用例的剖面的分布趋势相融合, 还融合了二者的期望威胁数量, 以保
                                                                                           Q N T +1 .
                 证测试过程中场景的威胁数量不会持续增大并陷入某个局部最优. 最后我们得到新的测试剖面                               P
                    从第  2.2  节可知, 与随机测试相比, DRT-PP     额外的计算量主要来自测试剖面的更新, 即公式                 (20)–公式  (22).
                 公式  (21) 和公式  (22) 都是矩阵的线性运算, 尽管公式        (20) 进行了指数运算, 但由于所有的运算都是基于整数, 因
                 此我们可以在测试前执行该计算, 并在接下来的测试过程中直接使用存储结果. 因此, 相较于被测路径规划算法本
                 身的执行代价, DRT-PP     的执行代价是可以忽略不计的. 此外, 假设有最优的测试用例                    t  能够达到很高的失效度
                                                           t
                 S (t); 而更新后的测试剖面    Q N T +1  是根据  t 的特征矩阵  Q  构建的, 因此其比更新前的测试剖面       Q N T  更容易生成  t, 因
                 此该策略满足测试剖面更新的基本需求.

                 3   实验评估

                 3.1   研究问题
                    本节通过实验研究对        DRT-PP  方法的有效性进行验证, 具体来说, 我们试图回答以下              3  个研究问题.
                    ● RQ1: DRT-PP  方法对  RRT  路径规划算法潜在失效的检测能力如何?
                    ● RQ2: DRT-PP  方法生成的测试用例是否具有多样性?
                    ● RQ3: 测试剖面的更新幅度       ε 是否会影响   DRT-PP  方法的有效性?
                    RQ1  旨在评估   DRT-PP  算法的有效性, 即    DRT-PP  是否能够发现失效度      S (t) 较大的测试用例. 此外, 测试用例
                 的多样性是路径规划算法能够被全面评测的关键, 而                 DRT-PP  方法生成的测试用例能否涵盖不同的威胁分布模式
                 是衡量其是否会陷入局部最优以及是否能够发现更多有意义的失效的重要指标, 相关问题将会在                                 RQ2  进行讨论.
                 最后, 尽管我们在设计      DRT-PP  时尽量考虑其通用性和普适性, 然而           DRT-PP  仍存在内部参数, 即测试剖面的更新
                 幅度  ε, 而其带来的影响将会在       RQ3  中进行讨论.
                    除了 RQ1、RQ2 和 RQ3 之外, 我们还将对        DRT-PP  算法进行定性分析, 检查      DRT-PP  是否能够检测出那些规
                 划结果不稳定的测试用例, 以及这些具有高失效度的测试用例是否有助于观测                         RRT  算法的潜在问题.

                 3.2   实验设计

                 3.2.1    被测对象设置
                    我们用   Matlab  实现作为被测对象的      RRT  路径规划算法以及       DRT-PP  测试方法: 将任务场景      M  设为  200×
                 200  的方形场景, 即  X = 200 Y = 200; 起始点和终止点分别设在左下角和右上角, 其坐标分别为               (5,5) 和  (195,195);
                                      ,
                 到达目标的判定阈值为        3, 即当智能体距离目标为       3  个单位时到达目标.
                    针对  RRT  算法, 我们将随机树生长的步长         (即公式   (5) 中的  ag.r) 设为  3. 通过实验表明, RRT  算法在路径规划
                 过程中随机采样点的数量一般小于             10 000. 因此, 为了防止生成的无效测试用例         (如“死胡同”场景) 耗费大量的测
                 试资源, 我们将随机采样点的上限设为             20 000. 此外, 一般情况下, RRT  最后生成的路径长度        |pth| 是小于  150  的,
                 因此, 当  RRT  采样点数量超过     20 000  却仍没有找到可行路径时, 则令路径的长度为           200. 此外, RRT  生成的树结构
   196   197   198   199   200   201   202   203   204   205   206