Template-based automated program repair
II. Overview of TBar
III. Prepare Defects4J Bugs
- Download and Install Defects4J.
- Check out and compile each bug.
If you fail to install defects4j, checkout or compile defects4j bugs, please reference these introductions.
The docker image of TBar is available: TBar.
IV. Run TBar
- Fixing Defects4J bugs with perfect fault localization configuration.
./PerfectFLTBarRunner.sh <Bug_Data_Path> <Bug_ID> <defects4j_Home> <true/false>
./PerfectFLTBarRunner.sh D4J/projects/ Chart_8 D4J/defects4j/ falseto fix bug Chart_8 with perfect fault localization configuration.
./PerfectFLTBarRunner.sh D4J/projects/ Chart_8 D4J/defects4j/ truetries to fix bug Chart_8 with all possible matching fix patterns.
- Fixing Defects4J bugs with normal fault localization configuration.
./NormalFLTBarRunner.sh <Bug_Data_Path> <Bug_ID> <defects4j_Home>
./NormalFLTBarRunner.sh D4J/projects/ Chart_8 D4J/defects4j/.
If it executes failed because of the paths of <Bug_Data_Path> and <defects4j_Home>, please use their absolute paths.
V. Structure of the Directories
|--- README.md : user guidance |--- D4J : Defects4J information |--- FailedTestCases : Failed test cases of each Defects4J bug |--- lib : GZoltar jar files |--- Results : Generated patches |------ FixPatterns : Bugs fixed by each fix pattern |------ PerfectFL : Bugs fixed with perfect fault localization configuration |------ NormalFL : Bugs fixed with normal fault localization configuration |--- src : source code |--- SuspiciousCodePositions : Bug positions localized with GZoltar |--- target : binary code
ALL suggestions are welcomed.