Software Open Access

Property-Based Testing: Climbing the Stairway to Verification (Artefact)

Zilin Chen; Christine Rizkallah; Liam O'Connor; Partha Susarla; Gerwin Klein; Gernot Heiser; Gabriele Keller

Property-based testing (PBT) is a powerful tool that is widely available in many modern programming languages. It has been used to reduce the effort required for formal software verification. We demonstrate how PBT can be used in conjunction with formal verification to incrementally gain greater assurance in code correctness by integrating PBT into the verification framework of Cogent—a programming language equipped with a certifying compiler for developing high-assurance systems components. Specifically, for PBT and formal verification to work in tandem, we structure the tests in a fashion that mirrors the refinement infrastructure that is often used in formal verification: the behaviour of the system under test is modelled by a functional correctness specification, which mimics that of the formal proof, and we test the refinement relation between the implementation and the specification. We exhibit the additional benefits that this mutualism brings to developers and demonstrate the techniques we used in this style of PBT, by studying two concrete examples.

SLE2022 Artefact
Files (4.4 GB)
Name Size
7.3 kB Download
Cogent VM.ova
4.4 GB Download
All versions This version
Views 215169
Downloads 132
Data volume 26.6 GB14.6 kB
Unique views 181158
Unique downloads 82


Cite as