Download:
|
by Koen Claessen, John Hughes
In Proc. ACM SIGPLAN workshop on Haskell
http://www.cs.chalmers.se/~koen/Papers/quick-monad.ps
Add To MetaCart
Abstract:
QuickCheck is a previously published random testing tool for Haskell programs. In this paper we show how to use it for testing monadic code, and in particular imperative code written using the ST monad. QuickCheck tests a program against a specication: we show that QuickCheck's speci-cation language is suciently powerful to represent common forms of specications: algebraic, model-based (both functional and relational), and pre-/post-conditional. Moreover, all these forms of specication can be used directly for testing. We dene a new language of monadic properties, and make a link between program testing and the notion of observational equivalence.
Citations
|
1128
|
Monads for functional programming
– Wadler
- 1992
|
|
156
|
Monad transformers and modular interpreters
– Liang, Hudak, et al.
- 1995
|
|
133
|
QuickCheck: a lightweight tool for random testing of Haskell programs
– Claessen, Hughes
|
|
132
|
Specification Case Studies
– Hayes
- 1987
|
|
125
|
An evaluation of random testing
– Duran, Ntafos
- 1984
|
|
87
|
Putting type annotations to work
– Odersky, Läufer
- 1996
|
|
76
|
Categorical Logic
– Pitts
- 1997
|
|
61
|
Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls
– Jones
- 2000
|
|
36
|
Automatically checking an implementation against its formal specification
– Antoy, Hamlet
|
|
32
|
Random testing
– Hamlet
- 1994
|
|
31
|
Multipleview tracing for Haskell: a new hat
– Wallace, Chitil, et al.
- 2001
|
|
20
|
A framework for practical, automated black-box testing of component-based software
– Edwards
|
|
15
|
An efficient functional implementation of FIFO queues
– Burton
- 1982
|
|
11
|
Modular Domain Speci Languages and Tools
– Hudak
- 1998
|
|
9
|
An overview of Edison
– Okasaki
- 2000
|
|
6
|
Software testing based on formal speci a theory and a tool
– Bernot, Gaudel, et al.
- 1991
|
|
4
|
Partition testing does not inspire con
– Hamlet, Taylor
- 1990
|
|
4
|
Automated benchmarking of functional data structures
– Moss, Runciman
- 1999
|
|
3
|
HUnit 1.0 User's Guide
– Herington
- 2002
|
|
2
|
Automated evaluation of cots components
– Mueller, Korel
- 2000
|
|
1
|
Automating Formal Speci Based Testing
– Donat
- 1997
|
|
1
|
Data abstraction implementation, speci
– Gannon, Hamlet, et al.
- 1981
|
|
1
|
A Framework for Speci Based Testing
– Stocks, Carrington
- 1996
|