QuickCheck

QuickCheck

Infobox_Software
name = QuickCheck
logo =


caption =
developer = Koen Claessen, John Hughes
latest_release_version = 2.1.0.1
latest_release_date = Sat Sep 27 13:43:28 PDT 2008
operating_system = Unix-like, Microsoft Windows
genre = Software testing
license = BSD-style
website = [http://www.cs.chalmers.se/~rjmh/QuickCheck/] |

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 should fulfill; these tests are specifically generated to test and attempt to falsify these assertions. It was begun in 2000. 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 [For such a test suite, see [http://www.cse.unsw.edu.au/~dons/code/fps/tests/Properties.hs] .] .

Re-implementations (clones) of QuickCheck exist for Erlang [See Arts 2006] , Scheme ["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" [http://web.archive.org/web/20050212183945sh_re_/www.inf.ufrgs.br/~carlossch/scheme-check/] -(Internet Archive copy).] , Common Lisp"Libraries for automatic specification-based testing. They're both incomplete compared to the original QuickCheck (the Lisp comes closer than the Python)." [http://www.accesscom.com/~darius/software/clickcheck.html] ] , Perl [See Test::LectroTest [http://search.cpan.org/~tmoertel/Test-LectroTest-0.3600] for a Perl implementation. "The LectroTest project was inspired by Haskell's QuickCheck module by Koen Claessen and John Hughes: http://www.cs.chalmers.se/~rjmh/QuickCheck/." [http://search.cpan.org/~tmoertel/Test-LectroTest-0.3600/lib/Test/LectroTest/Tutorial.pod] ] , Python, Ruby [See RushCheck [http://rushcheck.rubyforge.org/] for a Ruby implementation.] , Java [See Reductio [http://reductiotest.org/] for a Java implementation; Reductio can also be used from within Scala [http://reductiotest.org/examples/scala] .] , Scala [See ScalaCheck [http://code.google.com/p/scalacheck/] for a Scala implementation.] , and Standard ML [See QCheck/SML [http://contrapunctus.net/league/haques/qcheck/] for a Standard ML implementation.] .

Main References

* cite journal
author = Arts, Thomas and Hughes, John and Johansson, Joakim and Wiger, Ulf
coauthors = Phil Trinder (editor)
year = 2006
title = [http://www.ituniv.se/program/sem_research/Publications/2006/AHJW06/erlang001-arts.pdf "Testing Telecoms Software with Quviq QuickCheck"]
journal = Proceedings of the Fifth ACM SIGPLAN Erlang Workshop"
language = English
format = PDF
accessdate = 2006-01-29
[http://www.ituniv.se/program/sem_research/Publications/2006/AHJW06]
* cite journal
author = Koen Claessen, John Hughes
year = 2002
title = Testing Monadic Programs with QuickCheck
journal = SIGPLAN Notices
volume = 37
issue = 12
pages = 47–59
url = http://www.cs.chalmers.se/~rjmh/Papers/QuickCheckST.ps
language = English
format = PostScript
accessdate = 2006-01-29
doi = 10.1145/636517.636527

* cite journal
author = Koen Claessen and John Hughes
year = 2000
title = QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs
journal = Proc. of International Conference on Functional Programming (ICFP), ACM SIGPLAN
url = http://www.cs.chalmers.se/~koen/pubs/icfp00-quickcheck.ps
language = English
format = PostScript
accessdate = 2006-01-29

* cite journal
author = Koen Claessen and John Hughes
year = 2003
title = Specification Based Testing with QuickCheck
journal = The Fun of Programming, Cornerstones of Computing, Jeremy Gibbons and Oege de Moor (eds.)
volume =
issue =
pages = 17–40
url = http://www.math.chalmers.se/~koen/pubs/entry-fop-quickcheck.html
language = English
accessdate = 2006-01-29

* cite journal
author = Koen Claessen
year = 2004
month = August
title = QuickCheck: Specification-based Random Testing
journal = Presentation at Summer Institute on Trends in Testing: Theory, Techniques and Tools
volume =
issue =
pages =
url = http://www.math.chalmers.se/~koen/pubs/entry-tt04-quickcheck.html
language = English
format = PPT
accessdate = 2006-01-29

* cite journal
author = Koen Claessen, Colin Runciman, Olaf Chitil, and John Hughes
year = 2002
title = Testing and Tracing Lazy Functional Programs Using QuickCheck and Hat
journal = Advanced Functional Programming: 4th International School, Lecture Notes in Computer Science
volume = 2638
pages = 59–99
url = http://www.cs.chalmers.se/~koen/pubs/afp02-quickcheck.ps
language = English
format = PostScript
accessdate = 2006-01-29

Citations and footnotes

External links

* [http://haskell.org/haskellwiki/Introduction_to_QuickCheck "Introduction to QuickCheck"] -(on the Haskell wiki)
* [http://haskell.org/haskellwiki/QuickCheck_as_a_test_set_generator "QuickCheck as a test set generator: Haskell as an ultimate "smoke testing" tool OR Using QuickCheck as a DIY test data generator"]
* [http://haskell.org/haskellwiki/QuickCheck_/_GADT "QuickCheck] / GADT"
* [http://blog.moertel.com/articles/2006/10/31/introductory-haskell-solving-the-sorting-it-out-kata "Introductory Haskell: Solving the Sorting-It-Out Kata"] -(demonstration of the use of QuickCheck in solving a programming problem)
* [http://blog.moertel.com/pages/seven-lessons-from-the-icfp-programming-contest QuickCheck testimonial]
* [http://neilmitchell.blogspot.com/2006/11/systemfilepath-automated-testing.html "System.FilePath, automated testing"]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • QuickCheck — Saltar a navegación, búsqueda QuickCheck es una herramienta que el lenguaje de programación Haskell provee para poder probar las propiedades que deberían de cumplir las funciones, es decir, cada función tiene propiedades deseables lo que se logra …   Wikipedia Español

  • Darcs — Developer(s) Eric Kow (and others) Stable release 2.5.2 / March 14, 2011; 8 months ago (2011 03 14) …   Wikipedia

  • Reductio — Infobox Software name = ℝ∊dμcti∅ caption = developer = Tony Morris latest release version = 2.2 latest release date = operating system = JVM genre = Software testing license = BSD style website = [http://reductiotest.org/] |Reductio is open… …   Wikipedia

  • Xmonad — Infobox Software name = xmonad caption = xmonad in tiling mode author = Spencer Janssen, Don Stewart, Jason Creighton released = latest release version = 0.8 [ [http://www.haskell.org/pipermail/xmonad/2008 September/006254.html ANNOUNCE: xmonad 0 …   Wikipedia

  • xmonad — im Tiling Modus …   Deutsch Wikipedia

  • Demographics of New Zealand — Map of New Zealand s population density as of the 2006 census …   Wikipedia

  • Scala (programming language) — Infobox programming language name = Scala paradigm = Multi paradigm: functional, object oriented year = 2003 designer = Martin Odersky developer = Programming Methods Laboratory of EPFL latest release version = 2.7.1 latest release date = May 5,… …   Wikipedia

  • The Bad, the Worse, and the Out of Print — Infobox Album | Name = The Bad the Worse and the Out of Print Type = Compilation album Artist = The Bouncing Souls Released = October 8, 2002 Recorded = Various Genre = Punk rock Label = Chunksaah Records Last album = BYO Split Series, Vol. 4… …   Wikipedia

  • Combinator library — A combinator library is a software library which implements combinators for a functional programming language; the key idea is this: a combinator library offers functions (the combinators) that combine functions together to make bigger functions …   Wikipedia

  • Haskell — Información general Paradigma Funcional, no estricto, modular, fuertemente tipificado Apareció en 1990 Diseñado por Universidad de Yale, Universidad de Glasgow …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”