Page 207 - 《软件学报》2025年第7期
P. 207
3128 软件学报 2025 年第 36 卷第 7 期
看出, 在平均失效度 S avg 方面, DRT-10、DRT-15、DRT-20 均优于 DRT-05; 在最大失效度 S max 方面, DRT-15 优
于 DRT-05 和 DRT-20.
表 7 RQ3 不同测试剖面更新幅度下 DRT-PP 的假设检验对比结果 (平均失效度 S avg )
方法 DRT-05 DRT-10 DRT-15 DRT-20
DRT-05 - (−4.93, 0.00, ×) (−4.04, 0.00, ×) (−4.85, 0.00, ×)
DRT-10 (4.93, 0.00, √) - (0.56, 0.58, ≡) (1.56, 0.14, ≡)
DRT-15 (4.04, 0.00, √) (−0.56, 0.58, ≡) - (0.86, 0.40, ≡)
DRT-20 (4.85, 0.00, √) (−1.56, 0.14, ≡) (−0.86, 0.40, ≡) -
表 8 RQ3 不同测试剖面更新幅度下 DRT-PP 的假设检验对比结果 (考虑最大失效度 S max )
方法 DRT-05 DRT-10 DRT-15 DRT-20
DRT-05 - (−1.97, 0.06, ≡) (−2.67, 0.02, ×) (−0.96, 0.35, ≡)
DRT-10 (1.97, 0.06, ≡) - (−1.47, 0.17, ≡) (1.13, 0.27, ≡)
DRT-15 (2.67, 0.02, √) (1.47, 0.17, ≡) - (2.16, 0.05, √)
DRT-20 (0.96, 0.35, =) (−1.13, 0.27, ≡) (−2.16, 0.05, ≡) -
总的来说, DRT-15, 即当测试剖面的更新幅度为 0.15 时, 测试效果较好, 这说明当我们将更新幅度设为
0.15 时, 既保证了寻优性, 也能够避免陷入局部最优. 相比之下, DRT-05 和 DRT-20 表现较差. 首先, 路径规划算法
的输入空间复杂, 而测试剖面在调整过程中也会伴有较大的噪声, 这一点从图 6 中也可以观测到, 而 DRT-05 由于
测试剖面调整幅度较小, 更新效果有可能被噪声淹没, 因此其发现失效度较大测试用例的概率就会少一些. 相对
的, DRT-20 由于测试剖面调整幅度过大, 使得测试剖面收敛过快, 进而导致测试过程陷入局部最优, 或产生更多的
无效测试用例.
表 5 和表 6 同样展示了各种 DRT-PP 配置下生成测试用例的多样性. 可以看出 DRT-05 虽然在寻优性上略逊
于其他配置, 但由于其测试剖面调整程度小, 生成的测试用例具有较高的多样性. 实验结果表明, 无论是否考虑无
效测试用例, DRT-05 生成测试用例的多样性程度都是最高的 (分别为 9.9 与 6.9).
RQ3 结论: 实验结果表明, 在不同配置下, DRT-PP 的测试效果相差不大. 对于寻优性来说, DRT-15 (即测试剖
面更新幅度为 0.15) 的表现稍好, 而 DRT-05 和 DRT20 (即测试剖面更新幅度分别为 0.05 和 0.20) 的表现稍差. 考
虑测试用例的多样性, DRT-05 的表现最好. 在实际应用时, 测试人员可以根据经验选取合适的测试剖面更新幅度.
在今后的研究中, 我们也会对 DRT-PP 的各种配置参数做进一步考察.
3.3.4 实例研究
在 RQ1、RQ2 和 RQ3 中, 我们研究了 DRT-PP 在测试 RRT 路径规划算法时的有效性. 本节我们通过实例评
估, 对测试过程中发现的失效度最大的测试用例进行观察, 并讨论其在暴露算法潜在问题上的价值. 图 7 描述了测
试过程中生成的失效度最大测试用例的威胁分布情况以及 RRT 算法在执行该测试用例时的生成路径. 该测试用
例为 DRT-PP 在测试剖面更新幅度为 0.15 时生成的第 897 个测试用例, 这里我们将其记为 t 897 . 执行 t 897 得到不同
S (t 897 ) 值达到了 54.
的路径, 经计算其失效度
该测试用例的威胁分布如图 7 中的红色圆圈所示, 可以看出 DRT-PP 生成的测试用例 t 897 是一个由 168 个威
胁构成了一个“多陷阱”场景, 而路径规划的起始点和终止点分别位于左上角和右下角. 直觉上, 该场景的一个较为
合理的路径如图中绿色曲线所示: 智能体避开陷阱, 从场景的中间穿过, 到达终点. 现在我们将该测试用例用 RRT
算法运行 10 次, 并记录每次执行后的生成路径, 如图中蓝色线条所示. 在该例子中, 我们能够明显看到, 生成的路
径之间存在很大的差异, 很多路径都走入了不同的“陷阱”中, 从而导致路径长度过长. 因此, 可以认为在该例子中,
经典的 RRT 算法表现出较为明显的不稳定性. 确实, 由于 RRT 基于构建随机树来生成路径, 一旦随机树的某个分
支进入了“陷阱”并且优先走到距离目标点较近的位置, 那么这个分支将很可能被当作最终路径并无法被修正, 从
而导致较长生成路径. 因此, RRT 算法在这种多陷阱场景中, 有可能存在性能风险.

