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

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


                                                                         1
                                                        TF 1 +TF 2 +...+TF m
                                              APFD = 1−                +                              (4)
                                                              nm         2n
                 其中, TF i 表示检测到第    i 个  (1 ≤ i ≤ m) 缺陷的测试用例在  T  中的位置, m  是检测到的缺陷总数. 因在同一测试中
                 任何测试序列的      n  和  m  都是固定的, 故  APFD  值越高表明按测试序列       P  检测缺陷的速度越快, 其对应的         TCP  方
                 法越有效.
                    2) TETC  是测试执行时间成本, 用于衡量测试的执行效率, 如公式               (5) 所示:

                                                                                                      (5)
                                                      TETC = t last −t first
                 其中, t firs 是测试的开始时间, t las 是测试的结束时间. TETC    表示使用    TCP  方法生成排序序列花费的总时间, TETC
                                          t
                       t
                 值越低, 则其对应的      TCP  方法效率越高.
                  3.3   对比方法
                    这里将所提方法       TPG-TCP  与  8  个经典的、先进的方法做对比, 对比方法主要分为如下               4  大类. ① 基于贪心
                                  [6]
                 策略的   TCP  方法. GA 是最先将    Additional 策略用于  TCP  中的方法, 而  OCP [11] 在其基础上融入部分注意力思想,
                                                        [8]
                 并增加二次排序指标, 以提高排序性能. 此外, AGA 通过增加额外数据结构并减少迭代次数的方法提高了                               GA  的
                 效率. OCP  和  AGA  方法与本文方法的细粒度用例分组模块有相似性. ② 基于群智能算法的方法. CGWO-TCP                       [16]
                 和  WOA-TCP [17] 是近年来将先进的群智能算法应用于          TCP  领域的方法. ③ 基于故障的      TCP  方法. FB-TCP [15] 考虑
                 多种排序因素, 将多个单一的        TCP 技术集成以提高     TCP 的有效性, 与本文方法的细粒度用例分组模块有相似性. ④ 基
                 于机器学习的方法. KS-TCP      [13] 运用聚类方法挖掘测试用例间的相似性以提高              TCP  性能, 与本文方法的粗粒度用
                 例排序模块具有一定相关性. SAT-TCP         [14] 将  TCP  过程分为两个阶段, 基于语义相似度利用信息检索和预训练模型
                 分别对测试用例进行粗粒度和细粒度排序, 与本文方法的两阶段排序框架相似.
                    1) GA: 一种优先选择可最大覆盖剩余未被覆盖代码数测试用例的方法.
                    2) OCP: 一种基于部分注意机制的        TCP  方法, 其采用历史优先级避免考虑所有候选用例.
                    3) AGA: 通过增加数据结构存储覆盖信息以减少冗余数据访问, 并探究迭代次数对                       TCP  效率的影响.
                    4) CGWO-TCP: 该方法使用混沌函数提高现有灰狼优化              (GWO) 算法在收敛速度方面的性能, 以确定用例优
                 先级.
                    5) WOA-TCP: 一种使用   n  维有向搜索空间改进鲸鱼优化算法以优化             TCP  决策的方法.
                    6) FB-TCP: 提出  4  种基于故障的优先级排序方法以生成用例的初始排名, 并选择基于                    Averaging、Kendall
                 Tau  以及  Schulze 这  3  种排名聚合技术来整合  4  种排序方法生成的排名, 其中        Kendall Tau  集成技术在排序上表现
                 更出色.
                    7) KS-TCP: 一种基于聚类的静态黑盒测试用例优先级排序方法, 先采用                  K-medoids 方法捕获用例的相似性进
                 行更精细的划分, 再使用贪婪策略对各个簇进行优先级排序, 并通过轮询方式选择最终的执行顺序.
                    8) SAT-TCP: 一种基于语义感知的两阶段 TCP 框架, 利用基于信息检索对测试用例进行初步排序和过滤, 并
                 使用预训练的     Siamese 语言模型基于语义相似性对用例进行细粒度排序.
                  3.4   实验结果与分析
                    下面通过各实验验证本文方法的优势. 第              3.4.1  节针对本文方法的    2  大模块中的   3  个构件设计了    6  种变体方
                 法进行消融实验, 以回答 RQ1; 第       3.4.2  节将本文方法在    6  个数据集上与   8  种经典的、最新的相关方法进行对比,
                 详细分析本文方法的优势, 以回答 RQ2; 第          3.4.3  节探讨所提方法的迭代次数是如何划定的, 以回答             RQ3.
                  3.4.1    消融实验  (RQ1)
                    为验证粗粒度用例分组和细粒度用例分组排序这                  2  大模块中的构件对      TCP  排序性能的影响, 设计     6  种变体
                 方法, 将本文方法     TPG-TCP  与它们进行对比. 其中, ① Ours-1 变体方法不进行粗粒度分组, 直接采用              TP-Additional
                 策略对全部测试用例排序, 并通过减少迭代次数加快排序, 主要考察本文方法的粗粒度分组模块的作用; ② Ours-2
                 变体方法在使用      TP-Additional 策略对粗粒度用例分组后得到的关键用例组排序时, 不减少迭代次数, 主要验证本
   170   171   172   173   174   175   176   177   178   179   180