Meetup #2 - QuickCheck by Naren Sundaravaradan


Details
Naren will be talking about the QuickCheck paper from John Hughes: http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf
slides and code:
http://nanonaren.wordpress.com/2014/10/11/quickcheck/
More details:
Many of you have mentioned about this clashing with a talk at FuConf on property-based testing but I suggest we go through with this because I not only plan to cover QuickCheck but also motivate the topic with a little generality with respect to functional programming (to cater to those with a background mainly in imperative languages). Here is an outline of things I will cover
Each of these below will be illustrated with plenty of code examples
-
Why are tests needed? This is not as obvious as it seems when viewed from the point-of-view of the Curry-Howard isomorphism (this will also serve as a hook for a future talk someone will inevitably want to do on type systems)
-
How Haskell and other functional and type-safe languages can reduce testing needs
-
What types can tell you about code functionality
-
Types can get you far but not totally... so testing begins. Starting with the familiar method of unit testing
-
An alternative mode of testing: invariance testing. Introducing QuickCheck. Include other motivations for invariance testing (from the model-checking world... successfully used in hardware and driver testing)
-
Work through the paper
-
Real-world uses of QuickCheck in Haskell packages (vector, lens, etc)
-
Integration with unit tests and cabal (if people are interested)
-
and ... pointing to further reading
Let me know what you guys think.
Thanks,
Naren

Meetup #2 - QuickCheck by Naren Sundaravaradan