Template Matching-based Fault Fixing Technique for BPEL Programs and Its Optimization
Author:
Affiliation:

Clc Number:

TP311

  • Article
  • | |
  • Metrics
  • |
  • Reference [35]
  • |
  • Related
  • | | |
  • Comments
    Abstract:

    Business process execution language (BPEL) is an executable web service composition language. Compared with traditional programs, BPEL programs are significantly different in terms of programming models and execution modes. These new features make it challenging to locate and fix faults of BPEL programs detected during the testing process. In addition, fault fixing techniques developed for traditional software cannot be used for BPEL programs directly. This study proposes a fault fixing technique for BPEL programs based on template matching, namely BPELRepair from the perspective of mutation analysis. In order to overcome the high computational overhead of the mutation analysis-based fault fixing technique, a set of optimization strategies are proposed from three perspectives, namely patch generation, test case selection, and termination condition. A supporting tool is developed to improve the automation and efficiency of fault fixing for BPEL programs. An empirical study is used to evaluate the effectiveness of the proposed fault fixing technique and optimization strategies. The experimental results show that the proposed technique can successfully fix about 53% of faults of BPEL programs, and the proposed optimization strategies can significantly reduce the overhead in terms of search matching, patch program verification, test case execution, and fault fixing.

    Reference
    [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.
    [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] 黄小红, 赵逢禹. 软件故障定位关键技术研究综述. 软件导刊, 2017, 16(7): 205–209. [doi: 10.11907/rjdk.171181]
    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.
    [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] 孙昌爱, 张守峰, 朱维忠. 一种基于变异分析的BPEL程序故障定位技术. 计算机科学, 2021, 48(1): 301–307. [doi: 10.11896/jsjkx.200900051]
    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.
    [10] Modafferi S, Mussi E, Pernici B. SH-BPEL: A self-healing plug-in for Ws-BPEL engines. In: Proc. of the 1st Workshop on Middleware for Service Oriented Computing (MW4SOC 2006). Melbourne: ACM, 2006. 48–53.
    [11] Friedrich G, Fugini MG, Mussi E, Pernici B, Tagni G. Exception handling for repair in service-based processes. IEEE Transactions on Software Engineering, 2010, 36(2): 198–215. [doi: 10.1109/TSE.2010.8]
    [12] Papadakis M, Le Traon Y. Using mutants to locate “unknown” faults. In: Proc. of the 5th Int’l Conf. on Software Testing, Verification and Validation. Montreal: IEEE, 2012. 691–700.
    [13] DeMillo RA, Lipton RJ, Sayward FG. Hints on test data selection: Help for the practicing programmer. Computer, 1978, 11(4): 34–41. [doi: 10.1109/C-M.1978.218136]
    [14] Jia Y, Harman M. An analysis and survey of the development of mutation testing. IEEE Transactions on Software Engineering, 2011, 37(5): 649–678. [doi: 10.1109/TSE.2010.62]
    [15] Papadakis M, Le Traon Y. Effective fault localization via mutation analysis: A selective mutation approach. In: Proc. of the 29th Annual ACM Symp. on Applied Computing. Gyeongju: ACM, 2014. 1293–1300.
    [16] Estero-Botaro A, Palomo-Lozano F, Medina-Bulo I, Domínguez-Jiménez JJ, García-Domínguez A. Quality metrics for mutation testing with applications to WS-BPEL compositions. Software Testing, Verification and Reliability, 2015, 25(5–7): 536–571.
    [17] Debroy V, Wong WE. Using mutation to automatically suggest fixes for faulty programs. In: Proc. of the 3rd Int’l Conf. on Software Testing, Verification and Validation. Paris: IEEE, 2010. 65–74.
    [18] 郑彩云. 基于谓词切换的BPEL程序故障定位技术与支持工具研究 [硕士学位论文]. 北京: 北京科技大学, 2015.
    Zheng CY. A predicate switching based approach to locating faults of BPEL programs and supporting tool [MS. Thesis]. Beijing: University of Science and Technology Beijing, 2015 (in Chinese with English abstract).
    [19] 孙昌爱, 王真, 潘琳. 面向WS-BPEL程序的变异测试优化技术. 计算机研究与发展, 2019, 56(4): 895–905. [doi: 10.7544/issn1000-1239.2019.20180037]
    Sun CA, Wang Z, Pan L. Optimized mutation testing techniques for WS-BPEL programs. Journal of Computer Research and Development, 2019, 56(4): 895–905 (in Chinese with English abstract). [doi: 10.7544/issn1000-1239.2019.20180037]
    [20] Le XBD, Lo D, Le Goues C. History driven program repair. In: Proc. of the 23rd Int’l Conf. on Software Analysis, Evolution, and Reengineering. Osaka: IEEE, 2016. 213–224.
    [21] 李斌, 贺也平, 马恒太. 程序自动修复: 关键问题及技术. 软件学报, 2019, 30(2): 244–265. http://www.jos.org.cn/1000-9825/5657.htm
    Li B, He YP, Ma HT. Automatic program repair: Key problems and technologies. Ruan Jian Xue Bao/Journal of Software, 2019, 30(2): 244–265 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5657.htm
    [22] Gazzola L, Micucci D, Mariani L. Automatic software repair: A survey. IEEE Transactions on Software Engineering, 2019, 45(1): 34–67. [doi: 10.1109/TSE.2017.2755013]
    [23] 王赞, 郜健, 陈翔, 傅浩杰, 樊向宇. 自动程序修复方法研究述评. 计算机学报, 2018, 41(3): 588–610. [doi: 10.11897/SP.J.1016.2018.00588]
    Wang Z, Gao J, Chen X, Fu HJ, Fan XY. Automatic program repair techniques: A survey. Chinese Journal of Computers, 2018, 41(3): 588–610 (in Chinese with English abstract). [doi: 10.11897/SP.J.1016.2018.00588]
    [24] Goues CL, Nguyen T, Forrest S, Weimer W. GenProg: A generic method for automatic software repair. IEEE Transactions on Software Engineering, 2012, 38(1): 54–72. [doi: 10.1109/TSE.2011.104]
    [25] Qi YH, Mao XG, Lei Y, Dai ZY, Wang CS. The strength of random search on automated program repair. In: Proc. of the 36th Int’l Conf. on Software Engineering. Hyderabad: ACM, 2014. 254–265.
    [26] Villanueva OM, Trujillo L, Hernandez DE. Novelty search for automatic bug repair. In: Proc. of the 2020 Genetic and Evolutionary Computation Conf. Cancún: ACM, 2020. 1021–1028.
    [27] Long F, Rinard M. Staged program repair with condition synthesis. In: Proc. of the 10th Joint Meeting on Foundations of Software Engineering. Bergamo: ACM, 2015. 166–178.
    [28] Kim D, Nam J, Song J, Kim S. Automatic patch generation learned from human-written patches. In: Proc. of the 35th Int’l Conf. on Software Engineering. San Francisco: IEEE, 2013. 802–811.
    [29] Islam MR, Zibran MF. How bugs are fixed: Exposing bug-fix patterns with edits and nesting levels. In: Proc. of the 35th Annual ACM Symp. on Applied Computing. Brno: ACM, 2020. 1523–1531.
    Related
    Cited by
    Comments
    Comments
    分享到微博
    Submit
Get Citation

孙昌爱,吴思懿,张守峰,付安.基于模板匹配的BPEL程序故障修复及优化技术.软件学报,2024,35(6):2844-2862

Copy
Share
Article Metrics
  • Abstract:452
  • PDF: 1892
  • HTML: 672
  • Cited by: 0
History
  • Received:September 20,2022
  • Revised:November 17,2022
  • Online: July 05,2023
  • Published: June 06,2024
You are the first2034795Visitors
Copyright: Institute of Software, Chinese Academy of Sciences Beijing ICP No. 05046678-4
Address:4# South Fourth Street, Zhong Guan Cun, Beijing 100190,Postal Code:100190
Phone:010-62562563 Fax:010-62562533 Email:jos@iscas.ac.cn
Technical Support:Beijing Qinyun Technology Development Co., Ltd.

Beijing Public Network Security No. 11040202500063