: Thomas Durieux & Martin MonperrusVenue
: 2016 11th IEEE/ACM International Workshop in Automation of Software TestDate
: 5/14/2016Type of Experiement
: Controlled ExperimentData Collection Method
This paper presents a new code synthesis engine for Nopol, a repair system that repairs Java code. They describe Nopol uses their own sysnthesis engine called SMTSynth, which is capable to automatically repair two classes of Java bugs: buggy if conditions and missing preconditions. This is a limitation to Nopol as it is not able to fix bugs that are presented with methods calls. This team designed DynaMoth, which is able to repair bugs that have never been repaired automatically before.
In order to test their new system they used a dataset of known Java bugs, called Defects4J, that could occur. From this dataset they ran DynaMoth and recorded how many bugs it was able to fix compared to using SMTSynth. From the Defects4J dataset, DynaMoth was able to fix 27 of the 224 bugs presented, while SMTSynth was able to fix 35 of 224 bugs. However their new system was able to fix less bugs, they were able to fix 8 new bugs that SMTSynth was not able to fix, with 19 of the bugs fixes being overlap from the two systems. They consider these 8 new bug fixes that were never able to be fixed before as encouraging and wish to continue the development to implement additional optimizations.