Published October 12, 2022 | Version v4
Software Open

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

  • 1. UNSW Sydney
  • 2. University of Melbourne
  • 3. University of Edinburgh
  • 4. Proofcraft and UNSW Sydney
  • 5. Utrecht University

Description

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.

Notes

SLE2022 Artefact

Files

artefact-README.md

Files (4.4 GB)

Name Size Download all
md5:c3f28c51c728c732dc24a3017eb0e7fa
7.3 kB Preview Download
md5:60e56e3f46afcf90693d5ebbb93e8b3c
4.4 GB Download