March 22, 2024
Property-based testing 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 error with hand-written generators is that they may be incomplete, i.e. they are unable to generate some valid inputs. In this talk, I will discuss our ongoing work using program synthesis to automatically repair incomplete generators. Our solution uses a novel enumerative synthesis algorithm that leverages the recently developed coverage types to characterize the set of missing test inputs as well as the coverage provided by candidate repairs.
About Patrick LaFontaine
Patrick LaFontaine is a third-year PhD student advised by Ben Delaware. He is interested in Program Synthesis, Type Systems, and Programming Languages.