Design of Repair Operators for Automated Program Repair
24 Jan 2018 Wednesday, 02:30 PM to 04:00 PM
COM2 Level 4
Executive Classroom, COM2-04-02
Software bug-fixing is a time-consuming software development activity. Recently, many automated program repair approaches are proposed to reduce the time and effort spent in fixing defects. These techniques rely on a fixed set of program transformations (repair operators) for generating patches automatically.
We present a comprehensive study on the effectiveness of repair operators in existing repair tools. We also introduce a new benchmark to enable the objective comparison between different repair tools. Moreover, we investigate the possibility of improving the effectiveness of automated repair techniques by enhancing the quality of test suite. Furthermore, we propose anti-patterns, a set of rules that illustrate problems in automatically generated patches. Our set of anti-patterns allows elimination of patches at the level of program transformations. In addition, we introduce a novel repair tool with repair operators drawn from code changes between different versions. Finally, we adopt the idea of program repair to fixing mobile applications by designing specialized repair operators for Android apps. As shown by extensive evaluations, our proposed approaches improve over existing automated program repair techniques.