Title :
Systematic Testing for Detecting Concurrency Errors in Erlang Programs
Author :
Christakis, Maria ; Gotovos, Alkis ; Sagonas, Konstantinos
Author_Institution :
Dept. of Comput. Sci., ETH Zurich, Zurich, Switzerland
Abstract :
We present the techniques used in Concuerror, a systematic testing tool able to find and reproduce a wide class of concurrency errors in Erlang programs. We describe how we take advantage of the characteristics of Erlang´s actor model of concurrency to selectively instrument the program under test and how we subsequently employ a stateless search strategy to systematically explore the state space of process interleaving sequences triggered by unit tests. To ameliorate the problem of combinatorial explosion, we propose a novel technique for avoiding process blocks and describe how we can effectively combine it with preemption bounding, a heuristic algorithm for reducing the number of explored interleaving sequences. We also briefly discuss issues related to soundness, completeness and effectiveness of techniques used by Concuerror.
Keywords :
concurrency control; concurrent engineering; program testing; search problems; software tools; Erlang actor model characteristics; Erlang programs; combinatorial explosion; concurrency error detection; heuristic algorithm; process interleaving sequence state space; stateless search strategy; systematic testing tool; unit tests; Concurrent computing; Context; Instruments; Runtime; Space exploration; Systematics; Testing;
Conference_Titel :
Software Testing, Verification and Validation (ICST), 2013 IEEE Sixth International Conference on
Conference_Location :
Luembourg
Print_ISBN :
978-1-4673-5961-0
DOI :
10.1109/ICST.2013.50