Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Michal Palka
Chalmers University of Technology

Michał is a PhD student at Chalmers University of Technology in
Gothenburg where he works with functional programming and property-based testing. His work the EU project ProTest involves better support for testing concurrent Erlang programs.

Michal Palka is Giving the Following Talks
Testing Erlang multi-core applications with PULSE

PULSE is an addition to QuickCheck that enables you to find concurrency errors like race conditions and deadlocks in Erlang programs. Even if those errors may not show on a single processor system, they may be sitting there waiting to be revealed when you switch to multi-core. With PULSE you explore random schedulings that are possible on a multi-core but not on a single core, therewith increasing the possibility to reveal weird errors. Of course, the test case is minimized when finding a concurrency error, which results in a repeatable test case that helps to analyze the cause of the error quickly.

In this tutorial little knowledge of QuickCheck is required; it suffices if you participated in a QuickCheck talk or tutorial before. We will look at a few examples in which QuickCheck and PULSE are used to find concurrency errors.