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

2858                                                       软件学报  2024  年第  35  卷第  6  期


                 障语句块, 甚至无法检测错误的修复.
                    (2) 能检出故障的测试用例一定覆盖故障语句块, 但仍然无法确定故障语句块真实位置, 当                               CSS  策略与
                 DFTS  策略结合时, 真正起作用的则是        DFTS  策略.

                                        表 9    测试用例选择优化策略的#Validation     评估结果

                                         DFTS              CSS            DFTS & CSS          VFTS
                 Subject program Random    OC DFTS           OC  CSS          OC  DFTS&CSS      OC  VFTS
                                   Optimized     #Validation  Optimized     #Validation  Optimized     #Validation  Optimized     #Validation
                                              (%)              (%)               (%)               (%)
                  CarEstimate  158.43  116.71  26.33  161.65   −2.03   115.52    27.08   116.01   26.78
                  LoanApproval  337.82  122.38  63.77  339.33  −0.45   124.27    63.21   134.12   60.30
                  QuoteProcess  172.35  74.08  57.02  173.68   −0.77    74.65    56.69    81.14   52.92
                   SmartShelf  720.95  355.50  50.69  728.74   −1.08   359.42    50.15   266.74   63.00
                 SupplyCustomer 117.61  71.46  39.24  120.53   −2.48    70.99    39.64    68.60   41.67
                  TravelAgency  840.16  226.74  73.01  852.92  −1.52   228.59    72.79   213.77   74.56
                    Average   -       -      51.68     -       −1.39     -       51.59     -      53.21

                  3.4.3    BPELRepair 成功修复的代价  (RQ3)
                    图  5  展示了  BPELRepair 应用于不同实验对象时成功修复故障的代价, 即修复故障版本时, 检查的语句块数占
                 总语句块数的百分比. 其中, 盒的中间线代表了数据的中位数; 盒的上下底分别是数据的上四分位数和下四分位数;
                 上下边缘则代表了该组数据的最大值和最小值; 盒内点为均值; 盒外部点为数据中的“异常值”“Total”汇总了所有
                 实验程序的成功修复代价, 均值为          28.61%. 实验结果表明    BPELRepair 的故障修复的代价是可接受的.

                                           100
                                            90
                                            80
                                          Percentage of blocks (%)  60
                                            70

                                            50
                                            40
                                            30
                                            20
                                            10
                                            0
                                                LoanApproval
                                                                    TravelAgency
                                           CarEstimate  QuoteProcess  SupplyCustomer  Total
                                                           SmartShelf
                                                             Subjects
                                         图 5 BPELRepair 的故障修复代价评估结果         (盒图)

                  4   相关工作

                    本节首先介绍基于搜索的故障修复技术相关的研究工作, 然后介绍                      BPEL  程序故障修复技术与定位技术的研
                 究工作.
                  4.1   故障修复技术
                    程序故障是指程序实际执行时产生的行为和预期行为发生了偏差. 故障修复是对程序的非预期行为进行修正
                 的过程  [21,22] . 现有的故障修复技术大致分为     3  类  [23] : 基于搜索的方法、基于语义的方法和其他类型的方法. 基于搜
                 索的故障修复技术又被称为“生成—验证”技术, 每生成一个候选补丁程序, 对其执行测试用例集以验证其是否为
   277   278   279   280   281   282   283   284   285   286   287