Proof-based Testing - Using Proof Techniques to Enable Automated Testing of Complex Algorithms
Research Project, 2014 – 2017

Automatic testing requires executable specifications. However, these executable specifications very often end up being as complicated as the programs they are meant to test. We propose a new method called "proof-based testing" that uses mathematical proof techniques to break up a complex specification which is hard to test directly, into smaller properties which together logically imply the original specification, but are easier to test. The proof techniques we have already found useful in this context are contrapositives, induction, and co-induction. The kind of programs that benefit most from this new approach are those with a high algorithmic content. Examples are optimization software, automated theorem provers, model checkers, and compilers. The project?s aim is to (1) investigate and classify the kind of programs that benefit from this technique, (2) develop a supporting theoretical framework for reasoning about the choices that must be made when applying this technique, and (3) evaluate experimentally the effectiveness of proof-based testing against more traditional methods.

Participants

Koen Lindström Claessen (contact)

Software Technology (Chalmers)

Funding

Swedish Research Council (VR)

Project ID: 2013-4961
Funding Chalmers participation during 2014–2017

More information

Latest update

2017-12-20