20-21 November 2014

15Hatfields, London, UK

Functional Test-Driven Development

Session Title

Functional Test-Driven Development

Session Type Tutorial
Duration 60 minutes
Session Description

Functional Programming languages gives us the ability not only to write cleaner, safer and more concise code, but also make it possible to test-drive our code using new techniques.

Immutability, higher-order functions and monadic sequencing provides the foundation upon which one can build expressive and compact executable specifications.

This session is a live coding-based demonstration of various uses of property-based testing and generative testing to help test-drive code. It will demonstrate the use of QuickCheck in Haskell for test-driving "in the small", and Jepsen in Clojure for higher-level specifications-based testing, e.g. TDDing "in the large".


Arnaud Bailly (Murex)

Arnaud has been developing software professionally for more than fifteen years, playing various roles in the process which all boil down to: Trying to satisfy customers, users and future maintainers.

Once in a while he likes to get back to academia to earn a degree or two and maybe get a PhD. He is currently with Murex and has lot of interests for distributed systems, functional programming and how to make this stuff simpler.

Support FP Days 2014

In return for promoting FP Days 2014 to members of your user group, we offer a 10% discount on all tickets to group members.

We'll also help to promote your group by featuring it here on the FP Days website.

If you run a user group and you'd like more information on supporting FP Days 2014, please get in touch!

Contact Cara

Cara Hanman

FP Days 2014 Session Types

Need help planning which sessions to attend? We've provided a breakdown of our various session types below.

Case Study/Experience Report

A presentation and discussion of real-life (not theoretical) experiences of the application (or mis-application) of service design techniques. Case studies and experience reports include some discussion of lessons learned and an indication of how novel the work is.


Participants learn a new approach, tool or technology through using it to solve one or more practical exercises. Any software/hardware requirements are disclosed in the session description.


A session focused around some specific tool, technique or issue. Primarily led by the speaker, tutorials usually include some elements of interactivity or individual / group exercise.


An in-depth working session on a specific topic. May include paper presentations.