QuickCheck

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Donnerpeter (talk | contribs) at 06:39, 10 July 2018 (add reference to jetCheck). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Developer(s)Koen Claessen, John Hughes
Initial release1999
Stable release
2.6 / 7 March 2013; 11 years ago (2013-03-07)
Operating systemUnix-like, Microsoft Windows
Available inHaskell
TypeSoftware testing
LicenseBSD-style
Websitewww.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 a test case that falsifies these assertions. Once such a test case is found, QuickCheck tries to reduce it to a minimal failing subset by removing or simplifying input data that are not needed to make the test fail.

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 a number of languages:


See also

References

  1. ^ "Data.Collections.Properties". hackage.haskell.org.
  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. ^ Scott Vokes (March 30, 2015). "Theft: property-based testing for C". GitHub.com. Retrieved November 16, 2015.
  5. ^ "QuickCheck". Software.legiasoft.com. Retrieved December 9, 2011.
  6. ^ "CppQuickCheck". Github.com. Retrieved March 30, 2015.
  7. ^ "RapidCheck". Github.com. Retrieved March 30, 2015.
  8. ^ mcandre. "cluckcheck". Github.com. Retrieved December 9, 2011.
  9. ^ ClojureCheck. "ClojureCheck". Bitbucket.org. Retrieved December 9, 2011.
  10. ^ reiddraper (May 9, 2013). "simple-check". Github.com. Retrieved August 21, 2013.
  11. ^ reiddraper (March 27, 2014). "org.clojure/test.check". Github.com. Retrieved March 27, 2014.
  12. ^ "cl-quickcheck". Cliki.net. Retrieved December 9, 2011.
  13. ^ mcandre (October 27, 2011). "dashcheck". Github.com. Retrieved December 9, 2011.
  14. ^ "elm-check". Github.com. Retrieved February 18, 2015.
  15. ^ Thoms, Dave (July 17, 2017), quixir: Property-based testing for Elixir, retrieved July 18, 2017
  16. ^ "FsCheck". Github.com. June 25, 2015. Retrieved June 25, 2011.
  17. ^ mcandre (October 13, 2011). "factcheck". Github.com. Retrieved December 9, 2011.
  18. ^ leanovate (April 26, 2016). "Gopter". Retrieved April 26, 2016.
  19. ^ mcandre (October 17, 2011). "IoCheck". Github.com. Retrieved December 9, 2011.
  20. ^ "FunctionalJava's QuickCheck module". FunctionalJava. Retrieved August 14, 2015.
  21. ^ "Quickcheck for Java". Quickcheck.dev.java.net. Retrieved December 9, 2011.
  22. ^ "JCheck". JCheck. Retrieved December 9, 2011.
  23. ^ "junit-quickcheck". junit-quickcheck. Retrieved July 3, 2013.
  24. ^ "jqwik for the JUnit5 Platform". jqwik. Retrieved June 19, 2017.
  25. ^ "Quick Theories property testing for Java 8". ncredinburgh. Retrieved October 30, 2017.
  26. ^ "jetCheck property-based testing for Java 8". JetBrains. Retrieved July 10, 2018.
  27. ^ qc.js. "qc.js". Bitbucket.org. Retrieved December 9, 2011.
  28. ^ crockford. "jscheck". Github.com. Retrieved October 21, 2017.
  29. ^ dubzzz. "fast-check". Github.com. Retrieved February 3, 2018.
  30. ^ "Checkers.jl". Retrieved April 8, 2018.
  31. ^ "lgtunit". Github.com. Retrieved August 23, 2016.
  32. ^ "lua-quickcheck". Github.com. Retrieved February 25, 2017.
  33. ^ "quickcheck". npm.
  34. ^ mcandre. "objcheck". Github.com. Retrieved December 9, 2011.
  35. ^ little-arhat. "ocaml-quickcheck". Github.com. Retrieved December 9, 2011.
  36. ^ "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/. {{cite web}}: External link in |quote= (help)
  37. ^ "library(quickcheck)".
  38. ^ 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).
  39. ^ steos. "PhpQuickCheck". Github.com. Retrieved November 12, 2015.
  40. ^ MacIver, David (April 26, 2016). "Hypothesis". Retrieved April 26, 2016.
  41. ^ "quickcheck: Randomized testing for R". September 11, 2017 – via GitHub.
  42. ^ "Quickcheck". docs.racket-lang.org.
  43. ^ Pennebaker, Andrew (September 14, 2017). "rubycheck: a Ruby port of the QuickCheck unit test framework" – via GitHub.
  44. ^ BurntSushi. "QuickCheck for Rust (with shrinking)". Github.com. Retrieved May 27, 2015.
  45. ^ "ScalaCheck". Retrieved June 30, 2016.
  46. ^ "scalaprops/scalaprops". GitHub. Retrieved June 30, 2016.
  47. ^ "nyaya". GitHub. Retrieved June 30, 2016.
  48. ^ "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).
  49. ^ mcandre. "QuickSmash". Github.com. Retrieved December 9, 2011.
  50. ^ "QCheck/SML". Contrapunctus.net. November 22, 2011. Retrieved December 9, 2011.
  51. ^ "SwiftCheck: QuickCheck for Swift". November 3, 2017 – via GitHub.
  52. ^ dubzzz. "fast-check". Github.com. Retrieved February 3, 2018.

Further reading