Skip to content

secureIT-project/TBar

 
 

Repository files navigation

TBar - Template-based automated program repair

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


I. Requirement

II. Overview of TBar

The overview bug fixing process with TBar.\label{step}

III. Prepare Defects4J Bugs

  1. Download and Install Defects4J.
  • ./installD4J.sh
  1. 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.

IV. Run TBar

  1. 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/ false to fix bug Chart_8 with perfect fault localization configuration.

    ./PerfectFLTBarRunner.sh D4J/projects/ Chart_8 D4J/defects4j/ true tries to fix bug Chart_8 with all possible matching fix patterns.

  1. 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.

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.

About

Template-based Automated Program Repair

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.4%
  • Other 0.6%