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

孙昌爱 等: 基于模板匹配的       BPEL  程序故障修复及优化技术                                          2855


                 否选用该策略. 测试用例选择策略          (1) 和策略  (2) 可以同时使用, 因为故障定位阶段未通过的测试用例有可能执行
                 覆盖了故障语句块, 这些测试用例相比其他测试用例可能具有更高的故障检测能力. 相应地, 测试用例选择策略包
                 括  DFTS、CSS、VFTS、随机选择测试用例策略           (random)、同时选用    DFTS  和  CSS  策略  (DFTS & CSS). 本文使
                 用  4  种故障定位策略, 分别是     Tarantula (T)、DStar (D)、CBI (C) 和  Ochiai (O).


                                                    表 5    实验策略选项表

                                       Strategy                           Options
                                        TMS                               Yes/No
                                       OPSS                               Yes/No
                                       HOPS                               Yes/No
                                   Test case strategy          Random/DFTS/CSS/DFTS & CSS/VFTS
                                 Fault localization strategy             T/D/C/O

                    特别地, HOPS   需要历史修复报告作为参数输入, 本文使用留一法验证该策略的有效性. 首先选择                         CarEstimate
                 之外的其他    5  个程序实例作为训练集得到历史修复操作, CarEstimate 作为测试集进行修复. 类似地, 其他                    5  个程
                 序实例依据此方式进行训练与测试过程. 实验评估所采用的修复配置为                        TMS、OPSS、DFTS    与  DStar 故障定位
                 技术.
                                                                                                   6
                    由于不同策略的参数组合数导致实验规模庞大, 本文选用正交试验设计来缩减实验组数. 选择                               L25(5 ) 正交
                 表, 共需执行   25  组实验, 设计的正交实验方案见表         6. 为了减少实验中随机性的影响, 每组实验重复执行               30  次, 计
                 算相应度量指标的平均值.


                                                   表 6    正交实验设计方案

                             No.        TMS       OPSS       Test case strategy  Fault localization strategy
                              1         Yes        Yes          DFTS                 T
                              2         Yes        No            CSS                 D
                                                                                     C
                              3         Yes        No
                                                              DFTS & CSS
                                                   No
                              4         Yes        No           VFTS                 O
                              5         Yes        No           random               O
                              6         No         Yes           CSS                 C
                              7         No         No         DFTS & CSS             O
                              8         No         No           VFTS                 O
                              9         No         No           random               T
                              10        No         No           DFTS                 D
                              11        No         Yes        DFTS & CSS             O
                              12        No         No           VFTS                 T
                              13        No         No           random               D
                              14        No         No           DFTS                 C
                              15        No         No            CSS                 O
                              16        No         Yes          VFTS                 D
                              17        No                      random               C
                              18        No         No           DFTS                 O
                              19        No         No            CSS                 O
                              20        No         No         DFTS & CSS             T
                              21        No         Yes          random               O
                              22        No         No           DFTS                 O
                              23        No         No            CSS                 T
                              24        No         No         DFTS & CSS             D
                              25        No         No           VFTS                 C
   274   275   276   277   278   279   280   281   282   283   284