Testing Erlang multi-core applications with PULSE

« back to Presentations Download Presentation Download

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.


  • 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
« back to Presentations

Posted on November 15, 2010