Instructors
Paul Strooper, School of IT&EE, The University of Queensland
Luke Wildman, School of IT&EE, The University of Queensland
Abstract
Testing concurrent software is notoriously difficult due to problems with non-determinism and synchronisation. While tools and techniques for the testing of sequential components are well-understood and widely used, similar tools and techniques for concurrent components are not commonly available. This tutorial will look at the problems associated with testing concurrent components and propose techniques for dealing with these problems. The ConAn (Concurrency Analyser) testing tool supports these techniques for the testing of concurrent Java components and will be discussed and demonstrated in the tutorial. The limitations of the techniques and ConAn, as well as additional verification and validation tools and techniques to address these limitations will be presented.
The goal of this tutorial is to present practical tools and techniques for the testing of concurrent Java components. The tools and techniques are extensions of the standard tools and techniques that are currently in widespread use for the unit testing of sequential software components. Although the Java programming language is used to illustrate the problems and the techniques, most of the ideas (but clearly not the tool support) apply to other programming languages with support for concurrency.
Biographies
Dr Paul Strooper is an Associate Professor in the School of Information Technology and Electrical Engineering at The University of Queensland. He received the BMath and MMath degrees in Computer Science from the University of Waterloo, and the PhD degree in Computer Science from the University of Victoria. His main research interest is software engineering, especially software specification, verification, and testing. He has had substantial interaction with industry through collaborative research projects, training and consultation in the area of software verification and validation. He was one the program co-chairs for the 2002 Asia-Pacific Software Engineering Conference and the program chair for the 2004 and 2005 Australian Software Engineering Conferences.
Luke Wildman is a Senior Research Officer on the project "Practical tools and techniques for the testing of concurrent software components", funded by an Australian Research Council Discovery grant, in the School of Information Technology and Electrical Engineering at The University of Queensland. The outcomes of this project include practical techniques for the effective testing of concurrent software components in general and tools for the testing of Java components in particular. He was previously employed at the Software Verification Research Centre, performing consultancy and training for the high integrity systems community for 7 years.