QuickCheck

From Wikipedia, the free encyclopedia

QuickCheck
Developed by Koen Claessen, John Hughes
Latest release 1.1.0.0
OS Unix-like, Microsoft Windows
Genre Software testing
License BSD-style
Website [9]

QuickCheck is a combinator library written in Haskell, designed to assist in software testing by generating test cases for test suites. It is compatible with the GHC compiler and the Hugs interpreter. The author of the program being tested makes certain assertions about logical properties that a function should fulfill; these tests are specifically generated to test and attempt to falsify these assertions. It was begun in 2000. Besides being used to test regular programs, QuickCheck is also useful for building up a functional specification, for documenting what functions should be doing, and for testing compiler implementations[1]. Re-implementations of QuickCheck exist for Erlang[2], Scheme[3], Common Lisp[4], Perl[5], Python[4], Ruby[6], Scala[7], and Standard ML[8].

[edit] Main References

[edit] Citations and footnotes

  1. ^ For such a test suite, see [1].
  2. ^ See Arts 2006
  3. ^ "Scheme-Check is a module that implements randomized unit testing in PLT Scheme. With Scheme-Check, instead of creating lots of individual tests, you specify properties of your code and Scheme-Check generates a large amount of random data sets to test those properties. Scheme-Check is basically a Scheme port of QuickCheck" [2] -(Internet Archive copy).
  4. ^ a b "Libraries for automatic specification-based testing. They're both incomplete compared to the original QuickCheck (the Lisp comes closer than the Python)." [3]
  5. ^ See Test::LectroTest [4] for a Perl implementation. "The LectroTest project was inspired by Haskell's QuickCheck module by Koen Claessen and John Hughes: http://www.cs.chalmers.se/~rjmh/QuickCheck/."[5]
  6. ^ See RushCheck [6] for a Ruby implementation.
  7. ^ See ScalaCheck [7] or Reductio for Scala implementations.
  8. ^ See QCheck/SML [8] for a Standard ML implementation.

[edit] External links

Wikibooks
Wikibooks has a book on the topic of
Languages