Page 259 - 《软件学报》2024年第6期
P. 259

向毅 等: 基于多样性     SAT  求解器和新颖性搜索的软件产品线测试                                          2835


                 形”始终远高于“退化情形”.
                    从以上实验结果及分析, 可得出以下结论.
                    • U  检验和   ˆ A 12  效应量均表明, 当  N  较小时, 采用了多样化求解器的    dSATNS  算法更倾向于获得更高的覆盖率;
                 而当  N  较大时, 在绝大多数模型上覆盖率的差别并不显著. 上述现象可解释如下: 随着                      N  的增大, 相应测试集能潜
                 在地覆盖更多的      t-集合. 当  N  足够大时, 任何随机产生的测试集都有可能覆盖             (将近) 所有的    t-集合. 此时, 是否采
                 用多样性求解器仅会带来很小的差异.
                    • U  检验和   ˆ A 12  效应量均表明, 无论  N  取何值, 采用了多样化求解器的     dSATNS  算法都更倾向于获得更高的缺
                 陷检测率.

                        100                                       100
                                 →  →   ~                                  →  →   ~
                                  82
                         80                                       80
                                                  62    64        60                        62
                      百分比 (%)  40  36    52  40                 百分比 (%)  40  46  40  50  44  52  36  36  52
                         60
                            56
                                                     N=100
                                                20    26                                 34
                         20          14        18                 20   14           12
                              8           8          10                       6                 12
                                    4                                                      4
                         0                                         0
                             N=4   N=6   N=10  N=50  N=100             N=4   N=6   N=10  N=50  N=100
                                        (a) 覆盖率                                 (b) 缺陷检测率
                                            图 3 dSATNS  算法不同情形所占的百分比

                    因此, RQ1  的答案已明确: 在本文所提算法中, 采用多样化的               SAT  求解器的确有助于提高软件产品线测试的
                 覆盖率和缺陷检测率.
                  5.5.2    采用两种归档策略的必要性     (RQ2)
                    图  4  给出了  TwoArch  与  GloArch  比较的  U  检验结果. 如图所示, 无论是覆盖率还是缺陷检测率, TwoArch (显
                 著) 优于  GloArch (•) 的百分比始终大于等于     TwoArch  表现更差  (◦) 的百分比. 当  p j  时, TwoArch  的优势非常明显;
                     N ⩾ 50 时, 这两个算法在绝大多数      (90%+) 模型上并未有显著的性能差异. 由此可见, 全局档案策略虽然可在
                 而当
                 N  较大时取得较好的效果, 但当        N  较小时, 其性能具有很大的改善空间. 换言之, 采用两种档案策略一方面保持了
                 全局档案在    N  较大时的优良性能, 另一方面又有效规避了该档案在                N  较小时的性能退化.

                        100  96                         96        100
                                  •   ◦   ±       90                  90    •   ◦    ±      92    92
                         80                                       80           78    78
                                     64    58                     60
                      百分比 (%)  40  36    42                     百分比 (%)  40
                         60


                                                                            22     22
                         20                                       20
                                               10                        10
                               4                      4                                  6     4 4
                              0     0     0      0     0                0     0     0      2
                         0                                         0
                             N=4   N=6   N=10  N=50                    N=4   N=6   N=10  N=50  N=100
                                        (a) 覆盖率                                 (b) 缺陷检测率
                                          图 4 TwoArch  与  GloArch  比较的  U  检验结果

                    类似地, 图   5  给出了  TwoArch  与  LocArch  比较的  U  检验结果. 与图  4  正好相反, 当  N ⩽ 10 时, TwoArch  的整
                 体性能表现稍逊于       LocArch; 但当  N ⩾ 50 时, TwoArch  整体要优于  LocArch. 由此可见, 局部档案策略对较小的       N
   254   255   256   257   258   259   260   261   262   263   264