Finding race conditions in erlang with quickcheck and PULSE
Journal article, 2009

We address the problem of testing and debugging concurrent, distributed,Erlang applications. In concurrent programs, race conditions,are a common class of bugs and are very hard to find in practice.,Traditional unit testing is normally unable to help finding all,race conditions, because their occurrence depends so much on timing.,Therefore, race conditions are often found during system testing,where due to the vast amount of code under test, it is often hard,to diagnose the error resulting from race conditions. We present,three tools (QuickCheck, PULSE, and a visualizer) that in combination,can be used to test and debug concurrent programs in unit,testing with a much better possibility of detecting race conditions.,We evaluate our method on an industrial concurrent case study and,illustrate how we find and analyze the race conditions.

Erlang

Race conditions

Quickcheck

Author

Koen Lindström Claessen

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Michal Palka

Chalmers

Nicholas Smallbone

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

John Hughes

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Hans Svensson

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Thomas Arts

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Ulf Wiger

ACM SIGPLAN Notices

1523-2867 (ISSN)

Vol. 44 9 149-160

Subject Categories

Computer and Information Science

More information

Latest update

9/10/2018