This page refers to the original version of QuickCheck, developed
in Haskell. For information on the commercial version,
see quviq.com

QuickCheck is a tool for testing Haskell programs automatically. The
programmer provides a specification of the program, in the form of
properties which functions should satisfy, and QuickCheck then tests that the
properties hold in a large number of randomly generated cases. Specifications
are expressed in Haskell, using combinators defined in the QuickCheck
library. QuickCheck provides combinators to define properties, observe the
distribution of test data, and define test data generators.

User Experiences

Current Developments

We currently have several experimental versions of QuickCheck,
including one integrated with the Hat tracing tool. The next job is to
merge them all back together again!

Other Languages

Similar libraries have been implemented for many other programming
languages, from Scala to Google's Go--too many to keep an up-to-date
list here. A commercial version in Erlang is marketed by our
associated company, Quviq.