Property-Based Testing: Climbing the Stairway to Verification (Artefact)
Creators
- 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
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 |