Finding Race Conditions in Erlang with Quick Check and PULSE
Paper i proceeding, 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 (Quick Check, 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.

Race Conditions

Quick Check

Erlang

Författare

Koen Lindström Claessen

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

Michal Palka

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

Nicholas Smallbone

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

John Hughes

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

Hans Svensson

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

Thomas Arts

Chalmers, Data- och informationsteknik, Programvaruteknik (Chalmers)

U. Wiger

Erlang Training and Consulting

ICFP'09: Proceedings of the ACM SIGPLAN International Conference on Functional Programming

149-160

Ämneskategorier

Data- och informationsvetenskap

DOI

10.1145/1596550.1596574

ISBN

978-1-60558-332-7

Mer information

Skapat

2017-10-06