QuickCheck
Software testing software
title: "QuickCheck" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["software-testing-tools", "free-computer-libraries", "free-software-programmed-in-haskell", "free-software-testing-tools", "software-using-the-bsd-license"] description: "Software testing software" topic_path: "technology/software-engineering" source: "https://en.wikipedia.org/wiki/QuickCheck" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Software testing software ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | QuickCheck |
| logo | |
| screenshot | |
| developer | Koen Claessen, John Hughes |
| released | |
| latest release version | 2.14.2 |
| latest release date | |
| latest preview date | |
| repo | |
| programming language | Haskell |
| operating system | Unix-like, Windows |
| language | English |
| genre | Software testing |
| license | BSD-style |
| website | |
| :: |
| name = QuickCheck | title = | logo = | logo caption = | screenshot = | caption = | author = | developer = Koen Claessen, John Hughes | released = | latest release version = 2.14.2 | latest release date = | latest preview version = | latest preview date = | repo = | programming language = Haskell | operating system = Unix-like, Windows | platform = | size = | language = English | genre = Software testing | license = BSD-style | alexa = | website = 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.
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.
Re-implementations of QuickCheck exist for many languages:
- C
- C++
- Chicken
- Clojure
- Common Lisp
- D
- Elm
- Elixir
- Erlang
- F#, and C#, Visual Basic (.NET) (VB.NET)
- Factor
- Go
- Io
- Java
- JavaScript
- Julia
- Logtalk
- Lua
- Mathematica
- Objective-C
- OCaml
- Perl
- Prolog{{cite book |chapter-url=http://repositorio.inesctec.pt/bitstreams/8eba3be3-020c-4ab3-9b49-398b3b65a561/download |last1=Amaral |first1=Claudio |last2=Florido |first2=Mario |last3=Costa |first3=Vitor Santos |year=2014 |chapter=PrologCheck - Property-based testing in Prolog |title=Proceedings of the Twelfth International Symposium on Functional and Logic Programming (FLOPS 2014) |volume=8475 |pages=1–17 |doi=10.1007/978-3-319-07151-0_1 |series=Lecture Notes in Computer Science |isbn=978-3-319-07150-3 }}
- PHP
- Pony
- Python
- R
- Racket
- Rocq
- Ruby
- Rust
- Scala
- Scheme
- Smalltalk
- Standard ML
- Swift
- TypeScript
- Whiley
References
References
- "Data.Collections.Properties".
- Pennebaker, Andrew (mcandre). (October 13, 2011). "qc".
- Zito, Andrea (nivox). (July 27, 2014). "quickcheck4c".
- Vokes, Scott. (March 30, 2015). "Theft: property-based testing for C".
- "QuickCheck".
- "CppQuickCheck".
- "RapidCheck".
- Pennebaker, Andrew (mcandre). "cluckcheck".
- Draper, Reid (reiddraper). (May 9, 2013). "simple-check".
- Draper, Reid (reiddraper). (March 27, 2014). "org.clojure/test.check".
- "cl-quickcheck".
- Pennebaker, Andrew (mcandre). (October 27, 2011). "dashcheck".
- "elm-explorations/test".
- Thomas, Dave (pragdave). (2017-07-17). "quixir: Property-based testing for Elixir".
- Alfert, Klaus. "propcheck: Property based testing for Elixir".
- "PropEr: a QuickCheck-inspired property-based testing tool for Erlang".
- (June 25, 2015). "FsCheck".
- Pennebaker, Andrew (mcandre). (October 13, 2011). "factcheck".
- leanovate. (April 26, 2016). "Gopter".
- Pennebaker, Andrew (mcandre). (October 17, 2011). "IoCheck".
- "FunctionalJava's QuickCheck module".
- "Quickcheck for Java".
- "JCheck".
- "junit-quickcheck".
- "jqwik for the JUnit5 Platform".
- "Quick Theories property testing for Java 8".
- "jetCheck property-based testing for Java 8".
- Thompson, Darrin (darrint). "qc.js".
- Crockford, Douglas. "jscheck".
- Dubien, Nicolas (dubzzz). "fast-check".
- "JSVerify — property based testing for JavaScript. Like QuickCheck.".
- "Checkers.jl".
- "lgtunit".
- "lua-quickcheck".
- "QuickCheck.wl — Automated Property-Based Testing for the Wolfram Language - Online Technical Discussion Groups—Wolfram Community".
- Pennebaker, Andrew (mcandre). "objcheck".
- Cruanes, Simon. "QuickCheck inspired property-based testing for OCaml.".
- "Test: LectroTest: Tutorial".
- "library(quickcheck)".
- Oestreicher, Stefan (steos). "PhpQuickCheck".
- Wahl, Matthias (mfelsche). "ponycheck".
- MacIver, David. (April 16, 2016). "QuickCheck in Every Language".
- (March 17, 2022). "quickcheck: Property Based Testing in R".
- "Quickcheck".
- "QuickChick".
- Pennebaker, Andrew (mcandre). (September 14, 2017). "Rubycheck: a Ruby port of the QuickCheck unit test framework".
- Gallant, Andrew (BurntSushi). "QuickCheck for Rust (with shrinking)".
- "Hypothesis-like property testing for Rust".
- "ScalaCheck".
- "scalaprops/scalaprops".
- "nyaya".
- "Scheme-Check: Randomized Unit Testing for PLT Scheme".
- Mejr, Antero. "SRFI 252: Property Testing".
- Pennebaker, Andrew (mcandre). "QuickSmash".
- (November 22, 2011). "QCheck/SML".
- (November 3, 2017). "SwiftCheck: QuickCheck for Swift".
- Dubien, Nicolas (dubzzz). "fast-check".
- Chin, Janice. (July 2025). "QuickCheck for Whiley".
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::