Replication package for "The Impact of Program Reduction on Automated Program Repair"
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 fileAnalysis/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 inExperiment 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 toExperiment Replication/README.md
. -
Local Repair Replication/
: Provides scripts and documentation for replicating the repair process locally, without the use of containers. See theLocal 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 inLocal 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 toSlicing 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.
- Defects4J v2.0
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
Files
The Impact of Program Reduction on Automated Program Repair.zip
Files
(4.9 GB)
Name | Size | Download all |
---|---|---|
md5:4862447564ca6d1c820a9c45b86dc019
|
4.9 GB | Preview Download |