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

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


                    近年来, 研究人员从不同角度探索了            BPEL  程序的故障定位技术. Sun     等人  [6] 提出一种基于语句块的      BPEL  程
                 序故障定位框架. 该框架结合         BPEL  中语句块特点, 利用测试用例的执行信息计算每个语句块的怀疑度并提供检
                 查语句块的启发式规则, 定位精度可达            80%, 但定位代价偏高, 效率仅达到         50%. 基于谓词切换的     BPEL  程序故障
                 定位技术   [7] 通过谓词切换逐步缩小程序的故障范围, 其核心在于采用程序切片技术分析与关键谓词相关的程序片
                 段, 该技术定位效率达      90%, 但定位精度存在一定的不足, 最高达           50%. Sun  等人  [19] 提出一种基于谓词切换和动态
                 切片技术相结合的       BPEL  程序故障定位技术, 首先利用谓词切换技术找到程序的关键谓词. 然后利用后向切片算
                 法, 搜索到起始节点, 最后输出排序后的故障语句块集合, 该方法具有较高的故障定位召回率和较低的定位代价,
                 但无法定位出变量声明和活动交换等故障类型. 孙昌爱等人                    [8] 将变异测试应用到    BPEL  程序的故障定位中, 提出
                 一种基于变异分析的        BPEL  程序故障定位技术. 首先通过变异获得故障程序所有的变异体, 对                   BPEL  故障程序和
                 变异体程序执行测试用例集以获得详细的执行信息. 统计每个语句块对应变异体集的执行信息并结合怀疑度计算
                 公式计算语句块的怀疑度, 最后根据怀疑度的值对语句块进行降序排列. 该技术借鉴基于语句块的                                BPEL  程序故
                 障定位框架, 在提高      BPEL  程序故障定位召回率的同时, 有效降低了变异执行开销.

                  5   总 结

                    BPEL  服务组合的质量问题日益受到广泛关注. 已有工作探讨了面向                   BPEL  程序的故障定位技术, 但是尚未针
                 对  BPEL  程序故障修复开展研究工作. 本文结合           BPEL  程序的特性以及变异分析技术, 提出一种基于模板匹配的
                 BPEL  程序故障修复技术      BPELRepair, 通过  BPEL  程序的语句块类型信息与变异算子组合构造修复模板, 依据修
                 复模板对故障语句块执行变异操作生成候选补丁程序, 通过执行测试用例集验证补丁程序的正确性. 从补丁程序
                 生成、测试用例选择以及终止条件             3  个角度, 提出了多种有效的优化策略. 通过          6  个  BPEL  程序评估所提故障修
                 复技术及优化策略的有效性. 实验结果表明: 本文所提故障修复技术能够成功修复部分故障版本; 补丁生成优化策
                 略能够有效降低故障修复开销; 提出的两种测试用例选择策略能够减少                        26%–75%  的测试用例执行开销; 提出的
                 故障修复终止策略能够在不显著影响故障修复成功率的前提下减少不必要的语句块修复验证开销.
                    进一步的研究工作包括: (1) 已有的变异算子并不能覆盖所有故障类型, 未来将扩展更多                          BPEL  变异算子, 增
                 大故障修复搜索空间, 从而修复更复杂的故障类型; (2) 本文故障定位与修复阶段都使用变异分析, 但实现的工具
                 只利用了定位阶段测试用例信息, 我们将综合两个阶段变异算子的使用信息, 进一步提高定位修复效率.

                 References:
                  [1]  Goeb A, Lochmann K. A software quality model for SOA. In: Proc. of the 8th Int’l Workshop on Software Quality. Szeged: ACM, 2011.
                     18–25. [doi: 10.1145/2024587.2024593]
                  [2]  IBM. What is SOA? 2021. https://www.ibm.com/cloud/learn/soa
                  [3]  Wright  G.  BPEL  (business  process  execution  language).  2022.  https://www.techtarget.com/searchapparchitecture/definition/BPEL-
                     Business-Process-Execution-Language
                  [4]  Wang XH, Zhao FY. Research summary for the key technology of software fault localization. Software Guide, 2017, 16(7): 205–209 (in
                      Chinese  with  English  abstract). [doi: 10.11907/rjdk.171181]
                  [5]  Boubeta-Puig  J,  Medina-Bulo  I,  García-Domínguez  A.  Analogies  and  differences  between  mutation  operators  for  WS-BPEL  2.0  and
                     other  languages.  In:  Proc.  of  the  4th  Int ’l  Conf.  on  Software  Testing,  Verification  and  Validation  Workshops.  Berlin:  IEEE,  2011.
                     398–407. [doi: 10.1109/ICSTW.2011.52]
                  [6]  Sun CA, Zhai YM, Shang Y, Zhang ZY. BPELDebugger: An effective BPEL-specific fault localization framework. Information and
                     Software Technology, 2013, 55(12): 2140–2153. [doi: 10.1016/j.infsof.2013.07.009]
                  [7]  Sun CA, Ran YF, Zheng CY, Liu H, Towey D, Zhang XY. Fault localisation for WS-BPEL programs based on predicate switching and
                     program slicing. Journal of Systems and Software, 2018, 135: 191–204. [doi: 10.1016/j.jss.2017.10.030]
                  [8]  Sun CA, Zhang SF, Zhu WZ. Mutation based fault localization technique for BPEL programs. Computer Science, 2021, 48(1): 301–307
                     (in  Chinese  with  English  abstract). [doi: 10.11896/jsjkx.200900051]
                  [9]  Subramanian S, Thiran P, Narendra NC, Mostefaoui GK, Maamar Z. On the enhancement of BPEL engines for self-healing composite
                     Web services. In: Proc. of the 2008 Int’l Symp. on Applications and the Internet. Turku: IEEE, 2008. 33–39. [doi: 10.1109/SAINT.2008.
   279   280   281   282   283   284   285   286   287   288   289