Title
Testing monadic code with QuickCheck
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 specification: we show that QuickCheck's specification language is sufficiently powerful to represent common forms of specifications: algebraic, model-based (both functional and relational), and pre-/post-conditional. Moreover, all these forms of specification can be used directly for testing. We define a new language of monadic properties, and make a link between program testing and the notion of observational equivalence.
Year
DOI
Venue
2002
10.1145/581690.581696
symposium/workshop on haskell
Keywords
Field
DocType
monadic code,testing monadic code,random testing tool,st monad,haskell program,specification language,new language,program testing,monadic property,common form,particular imperative code,random testing
Algebraic specification,Specification language,Random testing,Programming language,Computer science,Erlang (programming language),Imperative programming,Theoretical computer science,Haskell,Monad (functional programming),Monadic predicate calculus
Journal
Volume
Issue
ISSN
37
12
0362-1340
ISBN
Citations 
PageRank 
1-58113-605-6
28
1.72
References 
Authors
17
2
Name
Order
Citations
PageRank
Koen Claessen1146896.88
John Hughes21573174.22