DocumentCode
625515
Title
Generating Unit Tests for Concurrent Classes
Author
Steenbuck, Sebastian ; Fraser, Gordon
Author_Institution
Saarland Univ. - Comput. Sci., Saarbrucken, Germany
fYear
2013
fDate
18-22 March 2013
Firstpage
144
Lastpage
153
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;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Testing, Verification and Validation (ICST), 2013 IEEE Sixth International Conference on
Conference_Location
Luembourg
Print_ISBN
978-1-4673-5961-0
Type
conf
DOI
10.1109/ICST.2013.33
Filename
6569726
Link To Document