QuickCheck
From Wikipedia, the free encyclopedia
QuickCheck | |
Developer: | Koen Claessen, John Hughes |
---|---|
Latest release: | 1.0-3 |
OS: | Unix-like, Microsoft Windows |
Use: | Software testing |
License: | BSD-style |
Website: | [4] |
QuickCheck is a combinator library 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. The author of the program being tested makes certain assertions about logical properties that a function fulfills; these tests are specifically generated to test and attempt to falsify these assertions. It was begun in 2001. 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 Erlang[2], Scheme[3], Common Lisp[4], and Python[4].
[edit] References
- ^ For such a test suite, see [1].
- ^ See Arts 2006
- ^ "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" [2] -(Internet Archive copy).
- ^ a b "Libraries for automatic specification-based testing. They're both incomplete compared to the original QuickCheck (the Lisp comes closer than the Python)." [3]
- Arts, Thomas and Hughes, John and Johansson, Joakim and Wiger, Ulf; Phil Trinder (editor) (2006). ""Testing Telecoms Software with Quviq QuickCheck"" (in English) (PDF). Proceedings of the Fifth ACM SIGPLAN Erlang Workshop". Retrieved on 29 January 2006. [5]
- Koen Claessen, John Hughes (2002). "Testing Monadic Programs with QuickCheck" (in English) (PostScript). SIGPLAN Notices 37 (12): 47-59. Retrieved on 29 January 2006.
- Koen Claessen and John Hughes (2000). "QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs" (in English) (PostScript). Proc. of International Conference on Functional Programming (ICFP), ACM SIGPLAN. Retrieved on 29 January 2006.
- Koen Claessen and John Hughes (2003). "Specification Based Testing with QuickCheck" (in English). The Fun of Programming, Cornerstones of Computing, Jeremy Gibbons and Oege de Moor (eds.): 17-40. Retrieved on 29 January 2006.
- Koen Claessen (August 2004). "QuickCheck: Specification-based Random Testing" (in English) (PPT). Presentation at Summer Institute on Trends in Testing: Theory, Techniques and Tools. Retrieved on 29 January 2006.
- Koen Claessen, Colin Runciman, Olaf Chitil, and John Hughes (2002). "Testing and Tracing Lazy Functional Programs Using QuickCheck and Hat" (in English) (PostScript). Advanced Functional Programming: 4th International School, Lecture Notes in Computer Science 2638: 59-99. Retrieved on 29 January 2006.
[edit] External links
Wikibooks has a book on the topic of
- "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"