Page 167 - 《软件学报》2026年第5期
P. 167
2046 软件学报 2026 年第 37 卷第 5 期
采用多样性策略排序做准备.
2) 细粒度用例分组排序, 提高排序效率的同时提升排序有效性. 根据迭代次数对关键用例实施细粒度分组的
方法, 以优化排序策略. 针对能快速发现潜在问题的部分关键用例, 采用基于用例潜力度的 TP-Additional 策略排
序, 生成主用例序列. 对于普通用例组和余下的关键用例, 采用 Total 策略排序, 生成次用例序列. 将次用例序列合
并到主用例序列后, 形成一个优先级排序序列. 通过多轮迭代, 得到一个包含多个排序序列的序列集合. 最终, 对每
个优先级排序序列执行故障检测操作, 根据检测结果产生最优序列.
输入
测试执行 ... ... …
语句包含
被测程序 生成 转换 ... ... 关系检测 输出 普通用例组
插桩 ... ...
... ...
输入 ... ...
覆盖报告 ... …
关键用例组
测试准备 覆盖矩阵 用例-语句表 测试用例组
测试用例集
粗粒度用例分组
更新分区
选择 P i 中的
迭代阈值 的首个用例 ② 用例潜力度
… … … … ①
额外覆盖数
优先级排序序列集 主用例序列 总体语句 P 1
追加 覆盖判断 更新分区 P i
最佳优先级 … … P 2 …
排序序列 剩余待排
次用例序列 关键用例组 P n
排序 Total TP-Additional 排序策略
检测报告 故障检测 排序策略 随机
合并
细粒度用例分组排序
图 1 面向两阶段分组的测试用例优先级排序方法框架
为便于理解, 对文中一些主要符号进行说明, 如表 1 所示.
表 1 主要符号及含义
符号 含义 符号 含义
T 无序用例集 G 分区集
K, N 关键/普通用例集 WG 待排分区集
S 用例覆盖语句集 g count 分区覆盖语句数
关键/普通用例覆盖语句集
S k , S n tp 用例潜力度
用例覆盖语句数 关键用例中剩余待排集
t count R k
SC 语句-用例数表 R 总剩余待排用例集
TC 用例-语句数表 M 迭代阈值
语句标记表 P', P'' 主/次用例序列
S cov
用例标记表 最佳优先级排序序列
T cov P
此外, 为更好地理解本方法, 先给出一个示例表来展示测试套件的覆盖信息. 我们使用邻接表表示覆盖信息,
如表 2 所示. 该测试套件包括 8 个测试用例 (即 t 1 , t 2 ,…, t 8 ) 以及 8 个程序元素 (即 e 1 , e 2 ,…, e 8 ), 这里, 程序元素指
语句、分支、方法等.

