Int J Performability Eng ›› 2018, Vol. 14 ›› Issue (9): 2090-2104.doi: 10.23940/ijpe.18.09.p18.20902104

Previous Articles     Next Articles

A Study of Applying Fault-based Genetic-Like Programming Approaches to Automatic Software Fault Corrections

Chia-Hao Leea, Chin-Yu Huangb, *, and Tzu-Yang Linb   

  1. aSystem Software Department V, MediaTek Corporation, Hsinchu, 30078, China;
    bDepartment of Computer Science, National Tsing Hua University, Hsinchu, 30078, China
  • Revised on ; Accepted on
  • Contact: * E-mail address: cyhuang@cs.nthu.edu.tw

Abstract: 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.

Key words: component, automatic software repair, genetic programming, fault localization