Workshop: Property-based testing with F#

Learn 'unit testing on steroids' - property-based testing, which is a slightly different approach to automated software testing. Based on randomised test data, it occupies an interesting intersection between unit testing and fuzz testing.

Perhaps the most interesting feature of property-based testing is that since test data is unknown at design-time, it forces test programmers to focus on the observable behaviour of a system, rather than on implementation details. This should get the attention of fans of behaviour-driven development, although property-based testing offers a completely different perspective.

In this workshop, you'll learn about property-based testing in general, as well as how to write property-based tests with FsCheck in F#. You can attend this workshop in itself, but you can also combine it with the Growing Functional Software, Guided by Tests workshop for extra synergy!

What you will learn:

  • How to categorise test input
  • Property-based testing
  • FsCheck
  • Refactoring unit tests to property-based tests
  • Real-world application

The workshop will consist of an interchange of presentations and hands-on exercises.

Intended audience
Programmers interested in learning new techniques for design and unit testing of software should attend this workshop. Even if you don't work with F#, you may learn something interesting that you can use in your daily life.

Prerequisite
You ought to be able to write simple F# library code, but you don't have to have extensive experience with F#: as long as you're comfortable with basic F# syntax, you will benefit from participating.

Computer setup

You will require a laptop capable of writing and compiling F# 4 code to follow this workshop:

  • xUnit.net tests
  • Visual Studio 2015