Description
Contains the Dataset, Binaries and Docker-Tools to recreate and adjust the presented experiments and data.
Automatic program repair (APR) regularly faces the challenge of overfitting patches — patches that pass the test suite, but do not actually address the problems when evaluated manually. Currently, overfit detection requires manual inspection or an oracle making quality control of APR an expensive task. With this work, we want to introduce properties in addition to unit tests for APR to address the problem of overfitting. To that end, we design and implement PropR, a program repair tool for Haskell that leverages both property-based testing (via QuickCheck) and the rich type system and synthesis offered by the Haskell compiler. We compare the repair-ratio, time-to-first-patch and overfitting-ratio when using unit tests, property-based tests, and their combination. Our results show that properties lead to quicker results and have a lower overfit ratio than unit tests. The created overfit patches provide valuable insight into the underlying problems of the program to repair (e.g., in terms of fault localization or test quality). We consider this step towards fitter, or at least insightful, patches a critical contribution to bring APR into developer workflows.
Automatic program repair (APR) regularly faces the challenge of overfitting patches — patches that pass the test suite, but do not actually address the problems when evaluated manually. Currently, overfit detection requires manual inspection or an oracle making quality control of APR an expensive task. With this work, we want to introduce properties in addition to unit tests for APR to address the problem of overfitting. To that end, we design and implement PropR, a program repair tool for Haskell that leverages both property-based testing (via QuickCheck) and the rich type system and synthesis offered by the Haskell compiler. We compare the repair-ratio, time-to-first-patch and overfitting-ratio when using unit tests, property-based tests, and their combination. Our results show that properties lead to quicker results and have a lower overfit ratio than unit tests. The created overfit patches provide valuable insight into the underlying problems of the program to repair (e.g., in terms of fault localization or test quality). We consider this step towards fitter, or at least insightful, patches a critical contribution to bring APR into developer workflows.
| Date made available | 3 Sept 2022 |
|---|---|
| Publisher | TU Delft - 4TU.ResearchData |
| Date of data production | 2021 |
Software license
- MIT
Research output
- 1 Conference contribution
-
PropR: Property-Based Automatic Program Repair
Gissurarson, M. P., Applis, L. H., Panichella, A., van Deursen, A. & Sands, D., 2022, The 44th IEEE/ACM In- ternational Conference on Software Engineering (ICSE). IEEE / ACM, p. 1768-1780 13 p.Research output: Chapter in Book/Conference proceedings/Edited volume › Conference contribution › Scientific › peer-review
Open AccessFile13 Link opens in a new tab Citations (Scopus)478 Downloads (Pure)
Cite this
- DataSetCite