Title
Taming the Concurrency: Controlling Concurrent Behavior while Testing Multithreaded Software.
Abstract
Developing multithreaded software is an extremely challenging task, even for experienced programmers. The challenge does not end after the code is written. There are other tasks associated with a development process that become exceptionally hard in a multithreaded environment. A good example of this is creating unit tests for concurrent data structures. In addition to the desired test logic, such a test contains plenty of synchronization code that makes it hard to understand and maintain. In our work we propose a novel approach for specifying and executing schedules for multithreaded tests. It allows explicit specification of desired thread scheduling for some unit test and enforces it during the test execution, giving the developer an ability to construct deterministic and repeatable unit tests. This goal is achieved by combining a few basic tools available in every modern runtime/IDE and does not require dedicated runtime environment, new specification language or code under test modifications.
Year
Venue
Field
2014
CoRR
Specification language,Synchronization,Programming language,Computer science,Concurrency,Unit testing,Software,Schedule,Seven Basic Tools of Quality,Concurrent data structure
DocType
Volume
Citations 
Journal
abs/1409.0982
1
PageRank 
References 
Authors
0.37
18
2
Name
Order
Citations
PageRank
Evgeny Vainer110.37
Amiram Yehudai219633.13