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

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


                 <t 2 , t 3 , t 1 , t 8 , t 7 , t 5 , t 4 , t 6 >, 即为一轮迭代产生的优先级排序序列.
                    拼接完成后, 用     P tem 的测试用例进行故障检测, 根据故障检测结果可得到最佳优先级排序序列                       P. 面向两阶
                                    p
                 段分组的具体过程见算法         3.
                 算法  3. 面向两阶段分组的测试用例优先级排序过程.

                 输入: 关键用例集     K, 普通用例集   N, 主用例序列    P', 迭代阈值  M, 用例标记表    T cov ;
                 输出: 最佳优先级排序序列        P.
                 Begin
                 1. 获得关键用例集     K  和普通用例集   N // 见算法  1
                 2. m = 0;
                 3. while T cov .include(0)
                 4.  if m ≤ M then
                 5.   P' = TP_Additional(K); // 对关键用例集  K  的部分用例排序, 见算法  2
                 6.   m = m + 1;
                 7.   Update T cov ; // 将已排序的用例在用例标记表    T co 中标记为“已标记”
                                                           v
                 8.  else
                 9.   for i = 1 to |T cov |
                 10.    if T cov [i] = 0 then
                 11.     R k  ← R k ∪K[i]; // 关键用例中剩余未排用例加入待排序列        R k
                 12.    end if
                 13.    end for
                 14.   end if
                 15.   R = R k ∪N; // 合并关键用例中剩余未排用例集    R k 与普通用例集   N
                 16.   P'' = Total(R); // 对  R  中所有用例使用  Total 策略排序
                 17.   P temp  = P'.append(P''); // 将  P''中的所有用例拼接在  P'后
                 18.   Result ← Fault_test(P temp ); // 用优先级序列  P tem 对故障进行检测
                                                        p
                 19. end while
                 20. P ← Best_P(Result); // 根据故障检测结果  Result 输出最佳优先级排序序列    P
                 21. Output P;
                 End
                    在算法   3  中, 第  1  行根据基于邻接表的粗粒度用例分组算法获得关键用例集                 K  和普通用例集    N. 第  2  行迭代
                 次数初始化为     0, 第  3–19  行对测试用例进行优先级排序. 其中, 第        3–7  行根据迭代阈值    M  对部分关键用例     K  使用
                 基于  TP_Additional 策略排序得到主序列     P', 并将已排序用例在用例标记表          T co 标记为“已标记”. 第   8–14  行将关
                                                                              v
                 键用例中剩余未排用例加入待排序列             R k . 第  15  行合并关键用例中剩余未排用例      R k 与普通用例集   N. 第  16  行对合
                 并后的用例使用      Total 策略排序得到次序列      P''. 第  17  行将次序列  P''中的所有用例拼接在主序列       P'后. 第  18  行用
                 优先级序列    P tem 对故障进行检测, 用    Result 记录每轮检测结果. 第     20  行根据故障检测结果得到最佳优先级排序
                             p
                 序列  P, 并在第  21  行输出.

                  3   实验设计与分析

                  3.1   问题提出
                    为验证   TPG-TCP  方法的有效性与高效性, 本节通过多种综合实验进行验证与对比分析, 主要回答以下                         3  个方
   168   169   170   171   172   173   174   175   176   177   178