Understanding the ways that genetic algorithms can be utilized in automatic bug fixing

Fall 2013

Student
Manuel Diaz Corrada
Advisor
Claire Le Goues
Project description

Throughout Fall 2013, I, Manuel Diaz Corrada, in conjunction with the professor Claire Le Goues , will be working on improving a program called Gen Prog. This program was created by a team of researchers in order to streamline and automate the bug fixing procedure of any compatible program. The program accomplishes this by taking test cases given to it and creating a weighted path, where areas that fail to pass their tests are given higher weights. After creating these weights the program is able to create a path for which it is able to go down through in order to attempt to fix the problem. These paths are represented with abstract syntax trees. Once these weights are in place it is able to go to the most faulty areas of the code and implement its bug fixing procedures. These procedures are essentially limited by three operations: replace, insert, delete with replace being a delete then insert. These three operations remove and add commands that already exist in another part of the program in hopes that a solution is found. After a generations worth of changes happens a fitness test is performed in order to reduce the number of possible solutions to the most effective. This process continues until either the generation limit is reached or a set of changes is able to make the program execute properly. If the solution is found then we utilize delta debugging to remove unnecessary changes created from this process.

Return to project list