DocumentCode
1219597
Title
Tool support for testing concurrent Java components
Author
Long, Brad ; Hoffman, Daniel ; Strooper, Paul
Author_Institution
Sch. of Inf. Technol. & Electr. Eng., Univ. of Queensland, Brisbane, Qld., Australia
Volume
29
Issue
6
fYear
2003
fDate
6/1/2003 12:00:00 AM
Firstpage
555
Lastpage
566
Abstract
Concurrent programs are hard to test due to the inherent nondeterminism. This paper presents a method and tool support for testing concurrent Java components. Tool support is offered through ConAn (Concurrency Analyser), a tool for generating drivers for unit testing Java classes that are used in a multithreaded context. To obtain adequate controllability over the interactions between Java threads, the generated driver contains threads that are synchronized by a clock. The driver automatically executes the calls in the test sequence in the prescribed order and compares the outputs against the expected outputs specified in the test sequence. The method and tool are illustrated in detail on an asymmetric producer-consumer monitor. Their application to testing over 20 concurrent components, a number of which are sourced from industry and were found to contain faults, is presented and discussed.
Keywords
Java; concurrency control; multi-threading; object-oriented programming; program testing; software tools; ConAn tool; Concurrency Analyser; Java classes; asymmetric producer-consumer monitor; clock; concurrent Java component testing; concurrent programs; drivers; faults; multithreaded context; nondeterminism; synchronization; test sequence; tool support; unit testing; Automatic testing; Clocks; Concurrent computing; Java; Monitoring; Sequential analysis; Software testing; Synchronization; System testing; Yarn;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2003.1205182
Filename
1205182
Link To Document