/extendingAPR

Replication package for "Extending the Range of Bugs That Automated Program Repair Can Handle"

Primary LanguageShellMIT LicenseMIT

Replication package for "Extending the Range of Bugs That Automated Program Repair Can Handle"

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

How to install

Pull the docker container from DockerHub or build it using the Dockerfile in the project root directory.

  docker pull linasvidz/extending-apr

How to run

  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

Directory structure

.
├── 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

License

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.

Citation and Zenodo links

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.

Acknowledgement

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