Page 197 - 《软件学报》2025年第7期
P. 197
3118 软件学报 2025 年第 36 卷第 7 期
正向流程-根据测试剖面进行测试用例生成、执行、评估
测试剖面 (测试策略) 测试用例 t 测试结果
路径3
测 测 路径1 测试结
果评估
试 试 路径2 S(t)
生 执
成 行
抽取测试剖面增量
与上一个测试
用例相比, 失效
更新测试剖面 度是否提升?
−ε
S(t)>S(t−1)
否
是
ε 否
S(t)>S(t )
*
失效度是否大
于当前最优的
2ε 是
反馈流程-更新测试剖面 测试用例?
图 3 DRT-PP 框架图
基于该思想, DRT-PP 分为正向流程和反馈流程. 其正向流程是正常的测试过程, 包含测试用例生成、测试用
例执行、测试用例的结果分析, 如图 3 的上半部分所示. 所不同的是, DRT-PP 根据路径规划场景的特性构建测试
剖面, 并以该剖面作为测试策略生成测试用例. 根据定义 4, 路径规划算法的输入 (即测试用例 t) 为环境 E, 而我们
假设任务场景 M 固定, 则生成一个测试用例就是要确定威胁集合 Obs 的分布. 因此, DRT-PP 的测试剖面应为威
胁分布的概率密度分布函数: h : O → R, 其中, O 为所有可能的 Obs 分布的集合. 考虑到方法的可行性, 本文将场
200×200 的任务空间 M 按每 10 个单位进行切分, 则整个任务空间就包含
景空间进行某种程度的离散化, 例如将
400 个子区域, 而在构造测试用例时我们需要考虑每个子区域内是否包含威胁. 经离散化后的测试剖面就可以表
示为测试用例的概率函数, 即:
P : T → [0,1] (13)
满足:
∑
P(t) = 1,
t∈T
其中, T 为所有可能测试用例的集合, 而 P(t) 为测试用例 t 被生成的概率. 这样, 我们就可以根据测试剖面来生成
测试用例, 这里将通过测试剖面 P 生成测试用例 t 的操作记为:
t = Generate(P) (14)
具体测试剖面的构建方法将在第 2.3 节介绍.
在测试过程中, DRT-PP 需要根据被测算法的输出实时动态地更新测试剖面, 以触发较大的失效度 S (t), 如
图 3 下半部分所示. 现假设已经生成并执行的测试用例集为 T = {t 1 ,t 2 ,...,t N T }, 而执行这些测试用例后的得到的测
T
t
t
t
试结果集合为 L = {PTH 1 ,PTH 2 ,...,PTH N T }, 则 DRT-PP 的测试剖面调整策略 φ 应与当前测试集 T、当前测试
T P N T +1 就可以按公式
集的输出 L 以及当前的测试剖面 P N T 有关, 那么更新后的测试剖面 (15) 计算.

