Tutorial: Property-Based Testing for Web Services

Simon Thompson
Functional Programming Researcher and Teacher

This tutorial will be delivered by Simon Thompson and Thomas Arts.

This tutorial will provide an introduction to using Property-Based Testing to test web services, based on the results of the EU-funded PROWESS project. PROWESS has developed a range of tools and techniques to support testing web services, centred on QuickCheck. Taking the example of the VoDKATV system from Interoud Innovation, the tutorial will give an overview of how each of the PROWESS tools fits into the overall process of testing web services systems. After introducing how QuickCheck is used in the example, we give more details about some of the tools: - JSONgen and WSDL_dsl are generator libraries for JSON and WSDL; - WStoolkit automatically generates QuickCheck boiler-plate code from WSDL system descriptions; - James, your butler for creating additional unit tests in your Java Unit test suite; - scaling QuickCheck by clustering component libraries and mocking in QuickCheck suitable way; - the quality of test code can be assessed using the Smother coverage analyser and the Mu2 mutation testing tool; - MegaLoad for load testing your applications in the cloud. Other PROWESS tools are described in more detail in the tutorial "Showing QuickCheck results to stake-holdersî which follows this one, and in presentations in the main conference itself.

Tutorial objectives:

To give attendees an overview of the PROWESS tools, through their application in an industrial case study.

Target audience:

Web Services developers and indeed system developers in general.


Simon has been with functional programming through the good and bad times since the 1980s, has written books on Erlang, Haskell and dependent types, and is really pleased to see all the buzz around Erlang and other languages at the moment. One big focus at the moment is working on building tool support to help with code transformations: refactorings, code migration, API upgrade and so on. Another is to build tools that provide strong guarantees that the refactorings that they implement don’t change what does code, but only change how it does it. He also teaches: teaching Erlang to students at Kent is well established, leading to students taking Erlang-based internships and placements in growing numbers; he’s running an Erlang MOOC on FutureLearn for the first time this year, too.

GitHub: simonjohnthompson

Twitter: @thompson_si

Back to conference page