چكيده به لاتين
One of the most costly processes of developing a software program is the debugging of program failures. Recent studies indicate that code debugging activities, on average, account for 50 percent of the cost of software development. A bunch of research titled "Automatic Program Repair" are trying to provide methods that can be used to generate patches for the code of an faulty program automatically. The program should then be validated, which means that the program should be repaired so that it does not have any side effects on the rest of the program.
Many of the methods available in the automated repair area use Redundancy Assumptions. This assumption asserts that large programs contain a piece of code that is needed to repair itself. However, many automated repair methods of redundancy-based applications will randomly select the code portion to be used at the fault location. This will produce a lot of incorrect patches. Later, there are some methods that have tried to extract patterns of common bugs using different techniques and use them to repair faulty programs.
In this study, using deep learning methods, we will provide a model for learning the sequence of words and instructions used in the correct programs and to generate correct statement in the faulty program with that model. The proposed method has been tested on the Defect4j data set. The results show that the proposed method in producing compilable patches, provides more accurate patches than the baseline method. In the case of producing patches that are capable of passing the test suite for an faulty program, the proposed method in cases where an error-contained program application area (eg, computational programs or system programs) are similar with the data set used to train the neural network model, shows a dramatic improvement. This means that if a high quality data set is collected and used in the proposed method for training the neural network, far better results could be achieved.