Two Case Studies:QuickCheck and Wash/CGI
Motivations
QuickCheck: The Research Hypothesis
A “Demo”
Property Language
Set = Test Data Generator
Type Based Generation
Type Based Testing
Generation Language
Random Numbers in Haskell
A Generator Monad Transformer
Representation of Properties
Did it Work?
Current Work: Testing Imperative ADTs
Future Work
QuickCheck Summary
Wash/CGI: The Goal
Counter Example
Extended Counter
File Uploader
Lab Result Entry System
Wash/CGI Paradigm
How CGI Works
Saving the State
How Can We Save the State?
A Monad Transformer for Resumable Actions
Example of Resuming
Defining Resume
The CGI Monad
How Input Fields Work
HTML Generation
HTML Monad Transformer
HTML Example
Wash/CGI Summary
E-post: rjmh@cs.chalmers.se
Hemsida: www.cs.chalmers.se/~rjmh