2013 IEEE Sixth International Conference on Software Testing, Verification and Validation (2013)
Luxembourg, Luxembourg Luxembourg
Mar. 18, 2013 to Mar. 22, 2013
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ICST.2013.50
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.
Concurrent computing, Instruments, Testing, Space exploration, Runtime, Systematics, Context
M. Christakis, A. Gotovos and K. Sagonas, "Systematic Testing for Detecting Concurrency Errors in Erlang Programs," 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation(ICST), Luxembourg, Luxembourg Luxembourg, 2013, pp. 154-163.