We've Got You Covered: Type-Guided Repair of Incomplete Input Generators

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: LaFontaine, Patrick, Zhou, Zhe, Mishra, Ashish, Jagannathan, Suresh, Delaware, Benjamin
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866916991198035968
author LaFontaine, Patrick
Zhou, Zhe
Mishra, Ashish
Jagannathan, Suresh
Delaware, Benjamin
author_facet LaFontaine, Patrick
Zhou, Zhe
Mishra, Ashish
Jagannathan, Suresh
Delaware, Benjamin
contents Property-based testing (PBT) is a popular technique for automatically testing semantic properties of a program, specified as a pair of pre- and post-conditions. The efficacy of this approach depends on being able to quickly generate inputs that meet the precondition, in order to maximize the set of program behaviors that are probed. For semantically rich preconditions, purely random generation is unlikely to produce many valid inputs; when this occurs, users are forced to manually write their own specialized input generators. One common problem with handwritten generators is that they may be incomplete, i.e., they are unable to generate some values meeting the target precondition. This paper presents a novel program repair technique that patches an incomplete generator so that its range includes every valid input. Our approach uses a novel enumerative synthesis algorithm that leverages the recently developed notion of coverage types to characterize the set of missing test values as well as the coverage provided by candidate repairs. We have implemented a repair tool for OCaml generators, called Cobb, and used it to repair a suite of benchmarks drawn from the PBT literature.
format Preprint
id arxiv_https___arxiv_org_abs_2504_06421
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle We've Got You Covered: Type-Guided Repair of Incomplete Input Generators
LaFontaine, Patrick
Zhou, Zhe
Mishra, Ashish
Jagannathan, Suresh
Delaware, Benjamin
Programming Languages
Property-based testing (PBT) is a popular technique for automatically testing semantic properties of a program, specified as a pair of pre- and post-conditions. The efficacy of this approach depends on being able to quickly generate inputs that meet the precondition, in order to maximize the set of program behaviors that are probed. For semantically rich preconditions, purely random generation is unlikely to produce many valid inputs; when this occurs, users are forced to manually write their own specialized input generators. One common problem with handwritten generators is that they may be incomplete, i.e., they are unable to generate some values meeting the target precondition. This paper presents a novel program repair technique that patches an incomplete generator so that its range includes every valid input. Our approach uses a novel enumerative synthesis algorithm that leverages the recently developed notion of coverage types to characterize the set of missing test values as well as the coverage provided by candidate repairs. We have implemented a repair tool for OCaml generators, called Cobb, and used it to repair a suite of benchmarks drawn from the PBT literature.
title We've Got You Covered: Type-Guided Repair of Incomplete Input Generators
topic Programming Languages
url https://arxiv.org/abs/2504.06421