This fork of TBar extends the original upstream with reporting of the Number of Tests Executed (NTE) metric. It is used for the experiments reported in the paper “The Impact of Program Reduction on Automated Program Repair”, by Linas Vidziunas, David Binkley, and Leon Moonen, published in the research track of the 40th International Conference on Software Maintenance and Evolution (ICSME 2024).
The remainder of this README is as provided by the original upstream
- Download and Install Defects4J.
./installD4J.sh
- Check out and compile each bug.
./checkoutD4JBugs.sh
If you fail to install defects4j, checkout or compile defects4j bugs, please reference these introductions.
The docker image of TBar is available: TBar.
- Fixing Defects4J bugs with perfect fault localization configuration.
-
./PerfectFLTBarRunner.sh <Bug_Data_Path> <Bug_ID> <defects4j_Home> <true/false>Example:
./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>Example:
./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.
|--- 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 codeALL suggestions are welcomed.

