QuickCheck

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For the convenience store, see Quick Chek.
QuickCheck
Developer(s) Koen Claessen, John Hughes
Initial release 1999
Stable release 2.6 / 7 March 2013; 2 years ago (2013-03-07)
Operating system Unix-like, Microsoft Windows
Available in Haskell
Type Software testing
License BSD-style
Website www.cse.chalmers.se/~rjmh/QuickCheck/

QuickCheck is a combinator library originally 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.

In QuickCheck the programmer writes assertions about logical properties that a function should fulfill. Then QuickCheck attempts to generate test cases that falsify these assertions. The project was started in 1999. 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 C,[2][3] C++,[4][5][6] Chicken Scheme,[7] Clojure,[8][9][10] Common Lisp,[11] D,[12] Elm, [13] Erlang, F#,[14] Factor,[15] Io,[16] Java,[17][18][19] JavaScript,[20] Node.js,[21] Objective-C,[22] OCaml,[23] Perl,[24] Prolog,[25][26] Python,[27] R,[28] Ruby,[29] Rust,[30] Scala,[31] Scheme,[32] Smalltalk,[33] Standard ML[34] and Swift.[35]

See also[edit]

References[edit]

  1. ^ http://hackage.haskell.org/packages/archive/collections-api/1.0.0.0/doc/html/Data-Collections-Properties.html
  2. ^ mcandre (October 13, 2011). "qc". Github.com. Retrieved December 9, 2011. 
  3. ^ nivox (July 27, 2014). "quickcheck4c". Github.com. Retrieved July 27, 2014. 
  4. ^ "QuickCheck". Software.legiasoft.com. Retrieved December 9, 2011. 
  5. ^ "CppQuickCheck". Github.com. Retrieved March 30, 2015. 
  6. ^ "RapidCheck". Github.com. Retrieved March 30, 2015. 
  7. ^ mcandre. "cluckcheck". Github.com. Retrieved December 9, 2011. 
  8. ^ ClojureCheck. "ClojureCheck". Bitbucket.org. Retrieved December 9, 2011. 
  9. ^ reiddraper (May 9, 2013). "simple-check". Github.com. Retrieved August 21, 2013. 
  10. ^ reiddraper (March 27, 2014). "org.clojure/test.check". Github.com. Retrieved March 27, 2014. 
  11. ^ "cl-quickcheck". Cliki.net. Retrieved December 9, 2011. 
  12. ^ mcandre (October 27, 2011). "dashcheck". Github.com. Retrieved December 9, 2011. 
  13. ^ "elm-check". Github.com. Retrieved February 18, 2015. 
  14. ^ "FsCheck". Github.com. June 25, 2015. Retrieved June 25, 2011. 
  15. ^ mcandre (October 13, 2011). "factcheck". Github.com. Retrieved December 9, 2011. 
  16. ^ mcandre (October 17, 2011). "IoCheck". Github.com. Retrieved December 9, 2011. 
  17. ^ "Quickcheck for Java". Quickcheck.dev.java.net. Retrieved December 9, 2011. 
  18. ^ "JCheck". JCheck. Retrieved December 9, 2011. 
  19. ^ "junit-quickcheck". junit-quickcheck. Retrieved July 3, 2013. 
  20. ^ qc.js. "qc.js". Bitbucket.org. Retrieved December 9, 2011. 
  21. ^ Node.js node-quickcheck
  22. ^ mcandre. "objcheck". Github.com. Retrieved December 9, 2011. 
  23. ^ little-arhat. "ocaml-quickcheck". Github.com. Retrieved December 9, 2011. 
  24. ^ "Test::LectroTest::Tutorial". The LectroTest project was inspired by Haskell's QuickCheck module by Koen Claessen and John Hughes: http://www.cs.chalmers.se/~rjmh/QuickCheck/. 
  25. ^ "library(quickcheck)". 
  26. ^ Claudio Amaral, Mario Florido, Vitor Santos Costa (2014). "PrologCheck - Property-based testing in Prolog". Proceedings of the Twelfth International Symposium on Functional and Logic Programming (FLOPS 2014). 
  27. ^ MacIver, David (March 30, 2015). "Hypothesis documentation". Retrieved March 30, 2015. 
  28. ^ https://github.com/RevolutionAnalytics/quickcheck
  29. ^ https://github.com/mcandre/rubycheck
  30. ^ BurntSushi. "QuickCheck for Rust (with shrinking).". Github.com. Retrieved May 27, 2015. 
  31. ^ "ScalaCheck". Retrieved March 30, 2015. 
  32. ^ "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" [1] -(Internet Archive copy).
  33. ^ mcandre. "QuickSmash". Github.com. Retrieved December 9, 2011. 
  34. ^ "QCheck/SML". Contrapunctus.net. November 22, 2011. Retrieved December 9, 2011. 
  35. ^ https://github.com/typelift/SwiftCheck

Further reading[edit]

External links[edit]