Page 174 - 《软件学报》2026年第5期
P. 174
钱忠胜 等: 面向两阶段分组的测试用例优先级排序方法 2053
面的问题.
RQ1: 本文方法的不同构件对排序性能有何影响? 是否有存在的必要性?
针对此问题, 在第 3.4.1 节设置了消融实验, 根据粗粒度用例分组、细粒度用例分组排序这 2 大模块中的 3 个
构件组成的 6 种变体方法, 分别分析这些构件对 TPG-TCP 方法的整体影响. 实验结果表明, 这 6 种变体方法的排
序性能均在不同程度上不如所提方法 TPG-TCP, 说明这 3 个构件在 TCP 方面是有效的.
RQ2: 与经典的、较新的相关方法对比, 本文方法有何优势? 效果如何?
针对此问题, 第 3.4.2 节设置了对比实验, 分别将所提方法 TPG-TCP 在 6 个数据集上与 8 种相关方法做对比.
实验结果表明, 在平均缺陷检测百分比 (average percentage of fault detect, APFD) 和测试执行时间成本 (test
execution time cost, TETC) 这两个评价指标上, TPG-TCP 方法均优于其他对比方法. 这主要得益于粗粒度分组阶段
用例筛选过程与细粒度排序策略的改进, 可在提高排序速度的同时提高其有效性.
RQ3: 迭代次数对本文方法的性能有何影响?
针对此问题, 在第 3.4.3 节进行了迭代次数划定的实验, 分析不同迭代次数在不同规模数据集下对方法性能的
影响, 以便更好地平衡方法的有效性与效率, 进一步优化排序方法.
3.2 数据集与评价指标
实验均在 Windows 10 操作系统下进行, 环境为 8 GB 内存、1.8 GHz 主频的 AMD Ryzen 7 4800U 处理器
(16 核), 编程语言使用 Python 3. 为兼顾计算资源和时间成本等因素, 并减少随机性因素带来的影响, 每组实验运
行 50 次, 最终结果取其平均值 (表 7 数据以其下方说明为准).
3.2.1 数据集
我们从近期的研究 [8,11,13,15–17] 中筛选了 6 个常用数据集, 它们涵盖了从 3k 行代码的小型项目到超过 100k 行
代码的大型项目, 且为了对比的公平性, 尽量选择具有相似评估指标的数据集. 数据集来源如下: ① Flex、Tcas、
Schedule2 这 3 种数据集源自著名测试数据库 SIR (software-artifact infrastructure repository) [18] , SIR 库中的项目被
广泛用于评估 TCP 技术 [5,10,11,19] ; ② Jsoup 与 Jacksoncore 数据集源于 Defects4J 数据库 [20] , 常用于评估 TCP 技术,
在最新的 TCP 研究 [15,21] 中也得到应用; ③ Camel-core 是来源于 GitHub 上的大型开源工业项目, 其集成逻辑复杂,
功能多样化, 是评估 TCP 有效性的重要选择 [8] . 这 6 种开源数据集的统计信息如表 4 所示.
表 4 数据集统计信息
数据集 代码行数 测试用例数 突变故障数
Flex 79 200 567 1 289
Tcas 7 093 1 608 876
Schedule2 3 740 2 710 780
Jsoup 4 512 41 346
Jacksoncore 27 908 135 351
Camel-core 120 248 5 623 13 005
已有工作 [8,11,15] 表明突变故障适用于软件测试评估, 且该技术已被广泛应用于 TCP 评估, 故本文引入突变故
障技术以评估不同 TCP 性能. 使用 PIT 突变工具 [22] 中的 11 个突变运算符以生成突变体, 并利用 TCE [23] 消除部分
重复与等价的突变体. 而等价性是不可判定的, 故 TCE 不能去除所有等价突变体, 但有助于缓解过多重复突变体
对方法有效性造成的影响, 最终在剩余的突变体集中为每个项目构建一个突变组. 各数据集的突变故障数见表 4.
3.2.2 评价指标
APFD 是当前测试用例优先级研究领域中的一个核心指标 [8,11,15–17] , 已被广泛应用于衡量测试用例排序序列检
测缺陷的能力. 本文与上述工作类似, 采用 APFD 作为评价指标, 以评估各 TCP 方法的有效性. 此外, 增加 TETC
指标用于评估各 TCP 方法的效率.
1) APFD 是平均缺陷检测百分比, 用于衡量测试用例排序序列检测缺陷的能力, 该能力越强说明检测方法越
有效. 给定一个包含 n 个用例的测试用例集 T, P 是 T 的排序后序列, P 的 APFD 计算如公式 (4) 所示:

