Automatic Testing of Operation Invariance

Authors: T. Gödderz and J. Voigtländer
Published: In 23rd International Workshop on Functional and (Constraint) Logic Programming (WFLP'14), Wittenberg, Germany, Proceedings, pages 172-186, volume 1335 of CEUR Workshop Proceedings, September 2014.
BibTeX: GV14.bib
Abstract: We present an approach to automatically generating operation invariance tests for use with Haskell's random testing framework QuickCheck. The motivation stems from a paper by Holdermans (PPDP'13) which showed how to address certain shortcomings of straightforward testing of implementations of an abstract datatype. While effective, his solution requires extra generation work from the test engineer. Also, it may not even be doable if the person responsible for testing has no knowledge about, and program-level access to, the internals of the concrete datatype implementation under test. We propose and realize a refinement to Holdermans' solution that improves on both aspects: Required operation invariance tests can be formulated even in ignorance of implementation internals, and can be automatically generated using Template Haskell.
Download: AutomaticTestingOfOperationInvariance.pdf
Rights: Copyright held by the authors. Distribution permitted for private and academic purposes.

An implementation of the approach discussed in this paper is available here.