Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
QuickCheck
Software testing software

QuickCheck is a software library, a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property testing.

We don't have any images related to QuickCheck yet.
We don't have any YouTube videos related to QuickCheck yet.
We don't have any PDF documents related to QuickCheck yet.
We don't have any Books related to QuickCheck yet.
We don't have any archived web articles related to QuickCheck yet.

Software

It is compatible with the compiler, Glasgow Haskell Compiler (GHC) and the interpreter, Haskell User's Gofer System (Hugs). It is free and open-source software released under a BSD-style license.

In QuickCheck, assertions are written about logical properties that a function should fulfill. Then QuickCheck attempts to generate a test case that falsifies such 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 unneeded to make the test fail.

The project began 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 many languages:

See also

Further reading

Wikibooks has a book on the topic of: Haskell/Testing

References

  1. "Data.Collections.Properties". hackage.haskell.org. http://hackage.haskell.org/packages/archive/collections-api/1.0.0.0/doc/html/Data-Collections-Properties.html

  2. Pennebaker, Andrew (mcandre) (October 13, 2011). "qc". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/qc

  3. Zito, Andrea (nivox) (July 27, 2014). "quickcheck4c". GitHub. Retrieved July 27, 2014. https://github.com/nivox/quickcheck4c

  4. Vokes, Scott (March 30, 2015). "Theft: property-based testing for C". GitHub. Retrieved November 16, 2015. https://github.com/silentbicycle/theft

  5. "QuickCheck". Software.legiasoft.com. Retrieved December 9, 2011. http://software.legiasoft.com/quickcheck/

  6. "CppQuickCheck". GitHub. Retrieved March 30, 2015. https://github.com/philipp-classen/CppQuickCheck

  7. "RapidCheck". GitHub. Retrieved March 30, 2015. https://github.com/emil-e/rapidcheck

  8. Pennebaker, Andrew (mcandre). "cluckcheck". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/cluckcheck

  9. Draper, Reid (reiddraper) (May 9, 2013). "simple-check". GitHub. Retrieved August 21, 2013. https://github.com/reiddraper/simple-check

  10. Draper, Reid (reiddraper) (March 27, 2014). "org.clojure/test.check". GitHub. Retrieved March 27, 2014. https://github.com/clojure/test.check

  11. "cl-quickcheck". Cliki. Retrieved December 9, 2011. http://www.cliki.net/cl-quickcheck

  12. "QuickChick". GitHub. Retrieved August 26, 2019. https://github.com/QuickChick/QuickChick

  13. Pennebaker, Andrew (mcandre) (October 27, 2011). "dashcheck". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/dashcheck

  14. "elm-explorations/test". GitHub. Retrieved November 20, 2018. https://github.com/elm-explorations/test

  15. Thomas, Dave (pragdave) (July 17, 2017). "quixir: Property-based testing for Elixir". GitHub. Retrieved April 1, 2019. https://github.com/pragdave/quixir

  16. Alfert, Klaus. "propcheck: Property based testing for Elixir". GitHub. Retrieved February 1, 2021. https://github.com/alfert/propcheck

  17. "PropEr: a QuickCheck-inspired property-based testing tool for Erlang". GitHub. Retrieved May 8, 2019. https://github.com/proper-testing/proper

  18. "FsCheck". GitHub. June 25, 2015. Retrieved June 25, 2011. https://fscheck.github.io/FsCheck

  19. Pennebaker, Andrew (mcandre) (October 13, 2011). "factcheck". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/factcheck

  20. leanovate (April 26, 2016). "Gopter". GitHub. Retrieved April 26, 2016. https://github.com/leanovate/gopter

  21. Pennebaker, Andrew (mcandre) (October 17, 2011). "IoCheck". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/IoCheck

  22. "FunctionalJava's QuickCheck module". FunctionalJava. Retrieved August 14, 2015. https://github.com/functionaljava/functionaljava/

  23. "Quickcheck for Java". Quickcheck.dev.java.net. Retrieved December 9, 2011. https://bitbucket.org/blob79/quickcheck

  24. "JCheck". JCheck. Retrieved December 9, 2011. http://www.jcheck.org/

  25. "junit-quickcheck". junit-quickcheck. Retrieved July 3, 2013. https://github.com/pholser/junit-quickcheck/

  26. "jqwik for the JUnit5 Platform". jqwik. Retrieved June 19, 2017. http://jqwik.net/

  27. "Quick Theories property testing for Java 8". ncredinburgh. Retrieved October 30, 2017. https://github.com/ncredinburgh/QuickTheories

  28. "jetCheck property-based testing for Java 8". JetBrains. Retrieved July 10, 2018. https://github.com/JetBrains/jetCheck

  29. Thompson, Darrin (darrint). "qc.js". Bitbucket. Retrieved December 9, 2011. https://bitbucket.org/darrint/qc.js/

  30. Crockford, Douglas. "jscheck". GitHub. Retrieved October 21, 2017. https://github.com/douglascrockford/JSCheck

  31. Dubien, Nicolas (dubzzz). "fast-check". GitHub. Retrieved February 3, 2018. https://github.com/dubzzz/fast-check

  32. "JSVerify — property based testing for JavaScript. Like QuickCheck". jsverify.github.io. https://jsverify.github.io

  33. "Checkers.jl". GitHub. Retrieved April 8, 2018. https://github.com/pkalikman/Checkers.jl

  34. "lgtunit". Retrieved February 26, 2020. https://logtalk.org/manuals/devtools/lgtunit.html

  35. "lua-quickcheck". GitHub. Retrieved February 25, 2017. https://github.com/luc-tielen/lua-quickcheck

  36. "QuickCheck.wl — Automated Property-Based Testing for the Wolfram Language - Online Technical Discussion Groups—Wolfram Community". community.wolfram.com. Retrieved July 11, 2021. https://community.wolfram.com/groups/-/m/t/2309649

  37. Pennebaker, Andrew (mcandre). "objcheck". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/objcheck

  38. Cruanes, Simon. "QuickCheck inspired property-based testing for OCaml". GitHub. Retrieved September 1, 2022. https://github.com/c-cube/qcheck

  39. "Test: LectroTest: Tutorial". The LectroTest project was inspired by Haskell's QuickCheck module by Koen Claessen and John Hughes https://metacpan.org/module/Test::LectroTest::Tutorial

  40. "library(quickcheck)". http://www.swi-prolog.org/pack/list?p=quickcheck

  41. Amaral, Claudio; Florido, Mario; Costa, Vitor Santos (2014). "PrologCheck - Property-based testing in Prolog". Proceedings of the Twelfth International Symposium on Functional and Logic Programming (FLOPS 2014). Lecture Notes in Computer Science. Vol. 8475. pp. 1–17. doi:10.1007/978-3-319-07151-0_1. ISBN 978-3-319-07150-3. 978-3-319-07150-3

  42. Oestreicher, Stefan (steos). "PhpQuickCheck". GitHub. Retrieved November 12, 2015. https://github.com/steos/php-quickcheck

  43. Wahl, Matthias (mfelsche). "ponycheck". GitHub. Retrieved December 26, 2018. https://github.com/mfelsche/ponycheck

  44. MacIver, David (April 16, 2016). "QuickCheck in Every Language". Retrieved August 1, 2022. https://hypothesis.works/articles/quickcheck-in-every-language/

  45. "quickcheck: Property Based Testing in R". GitHub. March 17, 2022. https://github.com/armcn/quickcheck

  46. "Quickcheck". docs.racket-lang.org. https://docs.racket-lang.org/quickcheck/index.html

  47. Pennebaker, Andrew (mcandre) (September 14, 2017). "Rubycheck: a Ruby port of the QuickCheck unit test framework". GitHub. https://github.com/mcandre/rubycheck

  48. Gallant, Andrew (BurntSushi). "QuickCheck for Rust (with shrinking)". GitHub. Retrieved May 27, 2015. https://github.com/BurntSushi/quickcheck

  49. "Hypothesis-like property testing for Rust". GitHub. https://github.com/altsysrq/proptest

  50. "ScalaCheck". GitHub. Retrieved June 30, 2016. https://github.com/rickynils/scalacheck

  51. "scalaprops/scalaprops". GitHub. Retrieved June 30, 2016. https://github.com/scalaprops/scalaprops

  52. "nyaya". GitHub. Retrieved June 30, 2016. https://github.com/japgolly/nyaya

  53. "Scheme-Check: Randomized Unit Testing for PLT Scheme". Archived from the original on February 12, 2005. Scheme-Check is a module that implements randomized unit testing in PLT Scheme. With Scheme-Check, instead of creating many 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. https://web.archive.org/web/20050212183945/http://www.inf.ufrgs.br/~carlossch/scheme-check/

  54. Mejr, Antero. "SRFI 252: Property Testing". Scheme Requests for Implementation. Retrieved April 25, 2024. https://srfi.schemers.org/srfi-252/

  55. Pennebaker, Andrew (mcandre). "QuickSmash". GitHub. Retrieved December 9, 2011. https://github.com/mcandre/quicksmash

  56. "QCheck/SML". Contrapunctus. November 22, 2011. Retrieved December 9, 2011. http://contrapunctus.net/league/haques/qcheck/

  57. "SwiftCheck: QuickCheck for Swift". GitHub. November 3, 2017. https://github.com/typelift/SwiftCheck

  58. Dubien, Nicolas (dubzzz). "fast-check". GitHub. Retrieved February 3, 2018. https://github.com/dubzzz/fast-check

  59. Chin, Janice. "QuickCheck for Whiley" (PDF). Retrieved April 20, 2020. http://ecs.victoria.ac.nz/~djp/files/JaniceChinENGR489.pdf