Software Testing with QuickCheck

This paper presents a tutorial, with extensive exercises, in the use of Quviq QuickCheck--a property-based testing tool for Erlang, which enables developers to formulate formal specifications of their code and to use them for testing. We cover the basic concepts of properties and test-data generators, properties for testing abstract data types, and a state-machine modelling approach to testing stateful systems. Finally we discuss applications of QuickCheck in industry.