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 ), 这里, 程序元素指
                 语句、分支、方法等.
   162   163   164   165   166   167   168   169   170   171   172