Property-Based Testing: Climbing the Stairway to Verification

10Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Property-based testing (PBT) is a powerful tool that is widely available in modern programming languages. It has been used to reduce formal software verification effort. 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 to mirror the refinement proof that we used in Cogent's verification framework: The expected behaviour of the system under test is captured by a functional correctness specification, which mimics the formal specification of the system, 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.

Cite

CITATION STYLE

APA

Chen, Z., Rizkallah, C., O’Connor, L., Susarla, P., Klein, G., Heiser, G., & Keller, G. (2022). Property-Based Testing: Climbing the Stairway to Verification. In SLE 2022 - Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2022 (pp. 84–97). Association for Computing Machinery, Inc. https://doi.org/10.1145/3567512.3567520

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free