An introduction to property-based testing, explaining its purpose and benefits, and demonstrating its use.
Testing accounts for a large portion of the cost of software development. Tools to automate testing allow for more thorough testing in less time. Property-based testing provides ways to
define expected properties of functions under test and mechanisms to automatically check whether those properties hold in a large number of cases - or whether a property can be falsified.
Concepts will be demonstrated primarily in Haskell, using the QuickCheck library. Property-based testing is available in most languages, so options for Python and Java will also be examined. The talk will conclude with a discussion of the limitations of
property-based testing, and alternative approaches.
Project URL: http://www.cse.chalmers.se/~rjmh/QuickCheck/