PropR: Property-Based Automatic Program Repair
Paper i 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.

synthesis

typed holes

automatic program repair

search based software engineering

property-based testing

Författare

Matthías Páll Gissurarson

Chalmers, Data- och informationsteknik, Informationssäkerhet

Leonhard Applis

TU Delft

Annibale Panichella

TU Delft

Arie van Deursen

TU Delft

David Sands

Chalmers, Data- och informationsteknik, 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,

Styrkeområden

Informations- och kommunikationsteknik

Ämneskategorier

Datavetenskap (datalogi)

DOI

10.1145/3510003.3510620

Mer information

Senast uppdaterat

2023-03-21