There is a newer version of the record available.

Published August 2, 2024 | Version v1.0.0
Software Open

Replication package for "The Impact of Program Reduction on Automated Program Repair"

  • 1. ROR icon Simula Research Laboratory
  • 2. ROR icon Loyola University Maryland
  • 3. ROR icon BI Norwegian Business School

Description

This repository contains the replication package for 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). A pre-print of the paper has been deposited on arXiv, and a copy is included in the root directory of this repository.

The source code is distributed under the MIT license, and the data and paper are distributed under the CC BY 4.0 license.

Organization

The repository is organized into the following directories.

  • Analysis/: Contains the files related to data analysis and visualization for the paper. For more information, refer to the file Analysis/README.md.

  • Experiment Replication/: Includes scripts and documentation for replicating the experimental pipeline, including test suite reduction, fault localization, and automated program repair using containers. Detailed instructions can be found in Experiment Replication/README.md. This is the recommended form of replication as it ensures consistent environments across machines.

  • Slices/: Contains pre-computed reduced versions of the original programs with file names corresponding to project and bug identifier names. These are provided to avoid the time-consuming process of recomputing the slices, and they are used in the containerized experiment replication. For further details, refer to Experiment Replication/README.md.

  • Local Repair Replication/: Provides scripts and documentation for replicating the repair process locally, without the use of containers. See the Local Repair Replication/README.md file for more information.

  • Programs/: Contains compressed tarballs for each of the programs considered in the paper. Each tarball includes subdirectories for original and reduced source code, test suites, and lists of suspicious statements, as well as combinations of these to operate with Defects4J and, subsequently, TBar. These data are used for the local repair replication, and their structure is elaborated in Local Repair Replication/README.md.

  • Patches/: Contains pre-computed results of the automated program repair process for each of the programs and configurations considered in the paper.

  • Slicing Replication/: Contains scripts and documentation for replicating the program slices used in the paper. For further details, refer to Slicing Replication/README.md.

For comprehensive setup and usage instructions, please refer to the specific README.md files within each sub-directory.

Prerequisites

More details about prerequisites are provided in each subdirectory's README. Below is an overview of notable tools and dependencies:

Analysis

  • The analysis and visualization require the Python packages specified in Analysis/requirements.txt.

Experiment Replication

  • Containerized Experiment Replication (Recommended)
  • Local Repair Replication
    • Defects4J v2.0
      • R. Just, D. Jalali, and M. D. Ernst, “Defects4J: a database of existing faults to enable controlled testing studies for Java programs,” in International Symposium on Software Testing and Analysis (ISSTA), San Jose, CA, USA: ACM, 2014, pp. 437–440. doi: 10.1145/2610384.2628055.
    • Our extension of TBar that includes code for tracking and reporting the Number of Tests Executed (NTE) metric.
    • Alternatively, you can use the original upstream TBar and forgo the NTE results.
      • K. Liu, A. Koyuncu, D. Kim, and T. F. Bissyandé, “TBar: revisiting template-based automated program repair,” in International Symposium on Software Testing and Analysis (ISSTA), Beijing China: ACM, Jul. 2019, pp. 31–42. doi: 10.1145/3293882.3330577.

Program Slice Replication

  • Parallel ORBS version v5.0
    • S. Islam and D. Binkley, “PORBS: A parallel observation-based slicer,” in International Conference on Program Comprehension (ICPC), May 2016, pp. 1–3. doi: 10.1109/icpc.2016.7503745.

Citation and Zenodo links

Please cite this work by referring to the published paper:

Linas Vidziunas, David Binkley, and Leon Moonen. 2024. The Impact of Program Reduction on Automated Program Repair. In Proceedings of the 40th International Conference on Software Maintenance and Evolution (ICSME). IEEE, 13 pages.

@inproceedings{vidziunas2024:impact,
    title = {{The Impact of Program Reduction on Automated Program Repair}},
    author = {Vidziunas, Linas and Binkley, David and Moonen, Leon},
    booktitle = {{Proceedings of the 40th International Conference on Software Maintenance and Evolution (ICSME)}},
    year = {2024},
    pages = {13},
    publisher = {{IEEE}},
    language = {en}
}

This replication package has been registered at Zenodo with DOI: 10.5281/zenodo.13074333.

Notes

This work has been financially supported by the Research Council of Norway through the secureIT project (RCN contract #288787).

Files

The Impact of Program Reduction on Automated Program Repair.zip

Files (4.9 GB)

Additional details

Software

Programming language
Python, Java, Shell