A study of applying fault-based genetic-like programming approaches to automatic software fault corrections

被引:0
作者
Lee C.-H. [1 ]
Huang C.-Y. [2 ]
Lin T.-Y. [2 ]
机构
[1] System Software Department v, MediaTek Corporation, Hsinchu
[2] Department of Computer Science, National Tsing Hua University, Hsinchu
来源
International Journal of Performability Engineering | 2018年 / 14卷 / 09期
关键词
Automatic software repair; Component; Fault localization; Genetic programming;
D O I
10.23940/ijpe.18.09.p18.20902104
中图分类号
学科分类号
摘要
Correcting software bugs automatically is challenging because the process poses many uncertainties. As the size and complexity of software increases, manually correcting software bugs becomes very difficult. Hence, automatic software repair has become increasingly essential. Genetic programming (GP) is a method for addressing this problem, as research has applied it to find ways to repair faulty programs in recent years. Nevertheless, most of the variants generated by GP are not precise in detecting repair solutions. In this paper, we propose a fault-based genetic-like programming approach that heuristically searches all possible variants as they increase with the number of modifications. Our method is able to find the best repairs for programs with fewer faults, faster than genetic programming. However, the cost is that heuristically searching for suitable repairs is time-consuming. Hence, we have also optimized our approach to speed up performance. In this study, our approach was used to repair faulty C programs, and the results were compared with those generated by genetic programming. The results show that our approach better detected faulty programs in up to 18000 lines of code when the number of program faults was less than two. © 2018 Totem Publisher, Inc. All rights reserved.
引用
收藏
页码:2090 / 2104
页数:14
相关论文
共 39 条
  • [1] Arcuri A., On the automation of fixing software bugs, Proceedings of the 30th International Conference Software Engineering (ICSE), pp. 1003-1006, (2008)
  • [2] Korel B., Al-Yami A.M., Assertion-oriented automated test data generation, Proceedings of the 18th International Conference on Software Engineering (ICSE), pp. 71-80, (1996)
  • [3] Eiben A.E., Smith J.E., Introduction to Evolutionary Computing, 53, (2003)
  • [4] Edvardsson J., A survey on automatic test data generation, Proceedings of the 2nd Conference on Computer Science Engineering (CSE), pp. 21-28, (1999)
  • [5] Koza J.R., Genetic Programming: On the Programming of Computers by Means of Natural Selection. Massachusetts, (1992)
  • [6] Wilkerson J.L., Tauritz D., Coevolutionary automated software correction, Proceedings of the 12th Conference on Genetic and Evolutionary Computation (GECCO), pp. 1391-1392, (2010)
  • [7] Auguston M., Jeffery C., Underwood S., A framework for automatic debugging, Proceedings of the 17th IEEE International Conference on Automated Software Engineering (ASE), pp. 217-222, (2002)
  • [8] Huang Y.C., Huang C.Y., Chang J.R., Chen T.Y., A study of cost-cognizant test case prioritization using genetic algorithm with test history, Proceedings of the 34th Annual IEEE International Computer Software and Applications Conference (COMPSAC), pp. 413-418, (2010)
  • [9] Poli R., Langdon W.B., McPhee N.F., A Field Guide to Genetic Programming
  • [10] Staber S., Jobstmann B., Bloem R., Finding and fixing faults, Proceedings of the 13th Conference on Correct Hardware Design and Verification Methods (CHARME), pp. 35-49, (2005)