Extracting Formal Specifications to Strenghten Type Behaviour Testing
Dimitri Racordon, Didier Buchs

TL;DR
This paper proposes a method to extract formal specifications from programs using model checking to identify untested cases, thereby improving the effectiveness of software testing.
Contribution
It introduces a novel approach to strengthen testing by leveraging formal verification to identify overlooked cases based on extracted specifications.
Findings
Formal specifications can be extracted as term rewriting systems.
Model checking can identify cases where properties do not hold.
The approach enhances test suite confidence and coverage.
Abstract
Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as the input and/or output of a program component can represent incredbly large, unless infinite domains. A common approach to tackle this issue it to only test classes of cases, and to assume that those classes cover all (or at least most) of the cases a component is susceptible to be exposed to. Unfortunately, those kind of assumptions can prove wrong in many situations, causing a yet well-tested program to fail upon a particular input. In this short paper, we propose to leverage formal verification, in particular model checking techniques, as a way to better identify cases for which the aforementioned assumptions do not hold, and ultimately strenghten…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Formal Methods in Verification · Software Reliability and Analysis Research
