Page 179 - 《软件学报》2026年第5期
P. 179

2058                                                       软件学报  2026  年第  37  卷第  5  期


                    3) 与基于故障的     TCP  方法相比
                    FB-TCP  侧重于组合多种基于故障的方法以解决             TCP  问题. 相较于  FB-TCP  方法, TPG-TCP  在  APFD  和  TETC
                 指标上分别最少提升       1.40%  和  99.29%.
                    此方法根据排序过程中的多种因素对同一用例集进行排序, 将不同排序结果进行整合, 该方法在有效性方面
                 取得不错的提升. 但该方法在采用多种排序方法时未区分用例, 只是对不同排序方法的结果进行调整组合, 这极大
                 地增加了排序时间. 本文方法         TPG-TCP  利用用例间的关系对用例进行粗粒度划分, 并根据用例重要性采用差异化
                 的排序策略, 较好地提升了方法的效率.
                    4) 与基于机器学习的      TCP  方法相比
                    ① KS-TCP  通过  K-medoids 聚类挖掘用例间的相似性, 以提高排序有效性. 相较于               KS-TCP  方法, TPG-TCP
                 在  APFD  和  TETC  指标上分别最少提升    4.19%  和  84.23%.
                    ② SAT-TCP  将  TCP  排序分为两个阶段, 在将用例进行过滤与排序后, 采用预训练模型捕获用例间的语义相
                 似性, 进一步细化排序, 在有效性方面取得极大提升. 相较于                 SAT-TCP  方法, TPG-TCP  在  APFD  和  TETC  指标上
                 分别最少提升     1.2%  和  93.23%.
                    这两种基于机器学习的方法均在一定程度上提高了排序的有效性, 但由于聚类方法和预训练过程复杂, 其在
                 时间性能上的提升非常有限. 本文方法            TPG-TCP  采用简单但有效的集合操作以利用用例间的相似性将用例分组,
                 并在后续排序过程中, 根据用例的重要性采用不同复杂程度的策略排序, 可见                        TPG-TCP  方法在效率方面有更好的
                 表现.
                    综上分析, 相比于其他方法, TPG-TCP        在  Flex、Tcas、Schedule2、Jsoup、Jacksoncore 和  Camel-core 这  6  个
                 数据集上的性能均有所提升. ① 从数据集的角度看: 对于较小规模数据集, 在                      Tcas 上, APFD  与  TETC  指标分别提
                 升  1.72%  和  10.86%; 在  Schedule2  上, APFD  与  TETC  指标分别提升  1.20%  和  11.88%; 在  Jsoup  上, APFD  与
                 TETC  指标分别提升    1.34%  和  4.06%. 对于较大规模数据集, 在     Flex  上, APFD  与  TETC  指标分别提升  1.02%  和
                 12.22%; 在  Jacksoncore 上, APFD  与  TETC  指标分别提升  1.40%  和  5.32%; 在  Camel-core 上, APFD  与  TETC  指标
                 分别提升   1.06%  和  12.90%. 在较小规模数据集   Tcas、Schedule2、Jsoup  中, 本文方法在  Schedule2  上表现更好; 在
                 较大规模数据集      Flex、Jacksoncore、Camel-core 中, 本文方法在  Camel-core 上表现更好. 因为当代码规模较小时,
                 测试用例规模对时间成本的影响更大; 当代码规模较大时, 代码规模对时间成本的影响会超过测试用例规模的影
                 响. 可见, TPG-TCP  对于代码规模较大或测试用例规模较大的数据集表现更好, 原因在于, 粗粒度用例分组构件与
                 迭代次数划定构件能减少冗余信息的处理, 可减少在覆盖信息和排序方面的处理时间, 使排序过程更灵活和高效.
                 ② 从指标的角度看: 在      APFD  与  TETC  指标上, TPG-TCP  较对比方法分别平均提升        1.29%  和  9.54%. 这是因为
                 TPG-TCP  加入了用例潜力度这个二级指标, 打破了            Additional 策略陷入平局的局面, 在一定程度上提高了排序的
                 有效性, 并将排序过程分为粗细粒度两个阶段, 针对不同重要性的用例采用差异化的策略进行排序, 在保证有效性
                 的同时提高排序效率.
                    考虑到各方法之间        APFD  指标值的差异较小, 并排除随机干扰的影响, 图              3  展示了  TPG-TCP  方法与其他
                 TCP  方法在  6  个数据集上实验    50  次的  APFD  值. 对于  CGWO-TCP、WOA-TCP、FB-TCP  和  KS-TCP  方法, 其数
                 据来源于各原始文献        (见表  7  说明), 故其箱型图的中值即对应文献中的原始数据, 其余方法的数据在实验中未出
                 现误报或漏报情况. 与大多数其他方法相比, 所提方法                 TPG-TCP  的  APFD  指标表现出相对较高的中值, 这表明
                 TPG-TCP  在多数情况下更能有效地检测出故障, 准确性和稳定性更高.
                    此外, 在  6  个数据集上, 我们采用单侧       Wilcoxon  符号秩检验进行统计分析, 以评估        TPG-TCP  方法相对于其他
                 对比方法在    APFD  指标上的改进情况. 单侧 Wilcoxon 符号秩检验适用于配对样本的比较, 在我们的实验中, 每一
                 对配对样本来自同一数据集下的            2  种方法的性能结果. Wilcoxon    符号秩检验通过对这些配对样本的差异进行排
                 序并计算符号秩, 来评估       2  种方法之间是否存在显著差异. 我们将           p  值的阈值设置为    0.05, 若  p  值小于该阈值则表
                 明应拒绝原假设, 即本文方法的分布差异显著高于对比方法. 检验结果如表                        8  所示. 从检验结果来看, 本文提出的
                 TPG-TCP  方法均优于其他对比方法, 这也说明本文方法的故障检测有效性更优.
   174   175   176   177   178   179   180   181   182   183   184