PropR: Property-Based Automatic Program Repair
Paper in proceeding, 2022

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. Our results show that while the total number of fixes is reduced, the ratio of overfit patches greatly declines. 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.


typed holes

automatic program repair

search based software engineering

property-based testing


Matthías Páll Gissurarson

Chalmers, Computer Science and Engineering (Chalmers), Information Security

Leonhard Applis

Delft University of Technology

Annibale Panichella

Delft University of Technology

Arie van Deursen

Delft University of Technology

David Sands

Chalmers, Computer Science and Engineering (Chalmers), Computing Science

Proceedings - International Conference on Software Engineering

02705257 (ISSN)

978-1-4503-9221-1 (ISBN)

44th International Conference on Software Engineering, ICSE 2022
Pittsburgh, PA, USA,

Areas of Advance

Information and Communication Technology

Subject Categories

Computer Science



More information

Latest update