This repository contains the replication package for the paper
"Extending the Range of Bugs That Automated Program Repair Can Handle", Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas. Published in the Journal on System and Software (JSS). 2023. DOI: 10.1016/j.jss.2023.111918
Pull the docker container from DockerHub or build it using the Dockerfile in the project root directory.
docker pull linasvidz/extending-apr
docker run -it -w /opt/Bugs/ linasvidz/extending-apr /bin/bash
The docker container already contains the configured buggy projects. The configurations for the termination bugs have been generated by the Repair/generate_project.sh script.
To perform repair on a pre-configured bug, enter the bug's root directory and run the following command:
cd /opt/Bugs/termination/Adding_Subtracting_Zero_1_NT.c && genprog configuration
.
├── Bugs Buggy source code and generated patches
│ ├── performance-elaborate Elaborate performance bug
│ ├── performance-simple Simple performance bug
│ └── termination Termination bugs
├── Repair Source code
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
└── termination.prp Termination property for UAutomizer
All files in this repository are distributed under the MIT license,
except for the termination bugs in the folder Bugs/termination
.
These originate from https://github.com/FSE2022benchmarks/termination,
which is distributed under the GPL3 license.
Please site this work by referring to the paper:
"Extending the Range of Bugs That Automated Program Repair Can Handle", Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas. Journal on System and Software (JSS). 2023. DOI: 10.1016/j.jss.2023.111918
@article{bataineh2023:extending,
title = {Extending the Range of Bugs That Automated Program Repair Can Handle},
author = {Omar I. {Al-Bataineh} and Moonen, Leon and Vidziunas, Linas}
journal = {Journal of Systems and Software (JSS)},
year = {2023},
pages = {111918},
publisher = {Elsevier},
keywords = {automated program repair, bug classification, hybrid techniques, non-observable and liveness bugs},
doi = {10.1016/j.jss.2023.111918},
}
The GitHub repository containing the code to automatically collect the dataset can be found at https://github.com/secureIT-project/extendingAPR, released with DOI: 10.5281/zenodo.10397656.
This work has been financially supported by the Research Council of Norway through the secureIT project (RCN contract #288787).