Programmable Property-Based Testing

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Keles, Alperen, Frank, Justine, Mert, Ceren, Goldstein, Harrison, Lampropoulos, Leonidas
Format: Preprint
Publié: 2026
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866911461081612288
author Keles, Alperen
Frank, Justine
Mert, Ceren
Goldstein, Harrison
Lampropoulos, Leonidas
author_facet Keles, Alperen
Frank, Justine
Mert, Ceren
Goldstein, Harrison
Lampropoulos, Leonidas
contents Property-based testing (PBT) is a popular technique for establishing confidence in software, where users write properties -- i.e., executable specifications -- that can be checked many times in a loop by a testing framework. In modern PBT frameworks, properties are usually written in shallowly embedded domain-specific languages, and their definition is tightly coupled to the way they are tested. Such frameworks often provide convenient configuration options to customize aspects of the testing process, but users are limited to precisely what library authors had the prescience to allow for when developing the framework; if they want more flexibility, they may need to write a new framework from scratch. We propose a new, deeper language for properties based on a mixed embedding that we call deferred binding abstract syntax, which reifies properties as a data structure and decouples them from the property runners that execute them. We implement this language in Rocq and Racket, leveraging the power of dependent and dynamic types, respectively. Finally, we showcase the flexibility of this new approach by rapidly prototyping a variety of property runners, highlighting domain-specific testing improvements that can be unlocked by more programmable testing.
format Preprint
id arxiv_https___arxiv_org_abs_2602_18545
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Programmable Property-Based Testing
Keles, Alperen
Frank, Justine
Mert, Ceren
Goldstein, Harrison
Lampropoulos, Leonidas
Software Engineering
Programming Languages
Property-based testing (PBT) is a popular technique for establishing confidence in software, where users write properties -- i.e., executable specifications -- that can be checked many times in a loop by a testing framework. In modern PBT frameworks, properties are usually written in shallowly embedded domain-specific languages, and their definition is tightly coupled to the way they are tested. Such frameworks often provide convenient configuration options to customize aspects of the testing process, but users are limited to precisely what library authors had the prescience to allow for when developing the framework; if they want more flexibility, they may need to write a new framework from scratch. We propose a new, deeper language for properties based on a mixed embedding that we call deferred binding abstract syntax, which reifies properties as a data structure and decouples them from the property runners that execute them. We implement this language in Rocq and Racket, leveraging the power of dependent and dynamic types, respectively. Finally, we showcase the flexibility of this new approach by rapidly prototyping a variety of property runners, highlighting domain-specific testing improvements that can be unlocked by more programmable testing.
title Programmable Property-Based Testing
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2602.18545