QuickCheck
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Developer(s) | Koen Claessen, John Hughes |
---|---|
Initial release | 1999 |
Stable release | 2.6 / 7 March 2013 |
Operating system | Unix-like, Microsoft Windows |
Available in | Haskell |
Type | Software testing |
License | BSD-style |
Website | www |
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 C,[2][3][4] C++,[5][6][7] Chicken Scheme,[8] Clojure,[9][10][11] Common Lisp,[12] D,[13] Elm, [14] Erlang, F# (and C#, VB.NET) ,[15] Factor,[16] Io,[17] Java,[18][19][20][21] JavaScript,[22] Node.js,[23] Objective-C,[24] OCaml,[25] Perl,[26] Prolog,[27][28] PHP, [29] Python,[30] R,[31] Ruby,[32] Rust,[33] Scala,[34] Scheme,[35] Smalltalk,[36] Standard ML[37] and Swift.[38]
See also
References
- ↑ http://hackage.haskell.org/packages/archive/collections-api/1.0.0.0/doc/html/Data-Collections-Properties.html
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Node.js node-quickcheck
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://github.com/RevolutionAnalytics/quickcheck
- ↑ https://github.com/mcandre/rubycheck
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ "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).
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://github.com/typelift/SwiftCheck
Further reading
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.[dead link]
- Lua error in package.lua at line 80: module 'strict' not found.[dead link]
- Lua error in package.lua at line 80: module 'strict' not found.[dead link]
External links
Wikibooks has a book on the topic of: Haskell/Testing |
- "Introduction to QuickCheck" -(on the Haskell wiki)
- "QuickCheck as a test set generator: Haskell as an ultimate "smoke testing" tool OR Using QuickCheck as a DIY test data generator"
- "QuickCheck / GADT"
- "Introductory Haskell: Solving the Sorting-It-Out Kata" -(demonstration of the use of QuickCheck in solving a programming problem)
- QuickCheck testimonial
- "System.FilePath, automated testing"
- "Chapter 11. Testing and quality assurance" of Real World Haskell; covers property-based testing using QuickCheck.