A Capable Crossover Technique on Automatic Program Repair

In software development, debugging is indispensable to guarantee the reliability. However, debugging is becoming more difficult because software is becoming larger and more complex. Thus, techniques for supporting debugging, especially automatic program repair techniques based on genetic programming distinguish themselves due to their capability. Genetic programming produces many modified programs by three operations: selection, mutation, and crossover. In this research, we focus on crossover that can bring a large modification at one operation, and we are conducting research on capable crossover by selecting several modified programs not randomly but using the guidance indicating their properties. In this paper, we propose a new crossover technique based on comparing modified programs' properties.

[1]  Claire Le Goues,et al.  A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[2]  Yuhua Qi,et al.  The strength of random search on automated program repair , 2014, ICSE.

[3]  Fan Long,et al.  Automatic patch generation by learning correct code , 2016, POPL.

[4]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[5]  Abhik Roychoudhury,et al.  DirectFix: Looking for Simple Program Repairs , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[6]  David Lo,et al.  Should fixing these failures be delegated to automated program repair? , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[7]  Melanie Mitchell,et al.  Relative Building-Block Fitness and the Building Block Hypothesis , 1992, FOGA.

[8]  Dawei Qi,et al.  SemFix: Program repair via semantic analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[9]  Yuriy Brun,et al.  The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs , 2015, IEEE Transactions on Software Engineering.

[10]  Fan Long,et al.  Staged program repair with condition synthesis , 2015, ESEC/SIGSOFT FSE.

[11]  Jaechang Nam,et al.  Automatic patch generation learned from human-written patches , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[12]  David Lo,et al.  History Driven Program Repair , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).