Title :
Generating Unit Tests for Concurrent Classes
Author :
Steenbuck, Sebastian ; Fraser, Gordon
Author_Institution :
Saarland Univ. - Comput. Sci., Saarbrucken, Germany
Abstract :
As computers become more and more powerful, programs are increasingly split up into multiple threads to leverage the power of multi-core CPUs. However, writing correct multi-threaded code is a hard problem, as the programmer has to ensure that all access to shared data is coordinated. Existing automated testing tools for multi-threaded code mainly focus on re-executing existing test cases with different schedules. In this paper, we introduce a novel coverage criterion that enforces concurrent execution of combinations of shared memory access points with different schedules, and present an approach that automatically generates test cases for this coverage criterion. Our CONSUITE prototype demonstrates that this approach can reliably reproduce known concurrency errors, and evaluation on nine complex open source classes revealed three previously unknown data-races.
Keywords :
concurrency control; multi-threading; program testing; Consuite prototype; automated testing tools; concurrent classes; multicore CPU; multithreaded code; novel coverage criterion; shared memory access points; unit test generation; Computer bugs; Concurrent computing; Instruction sets; Java; Schedules; Synchronization; Testing; concurrency coverage; search based software engineering; unit 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.33