Component-based software development regards software construction in terms of conventional engineering disciplines where the assembly of systems from readily-available prefabricated parts is the norm. Because both component-based systems themselves and the stakeholders in component-based development projects are different from traditional software systems, component-based testing also needs to deviate from traditional software testing approaches.
Gross first describes the specific challenges related to component-based testing like the lack of internal knowledge of a component or the usage of a component in diverse contexts. He argues that only built-in contract testing, a test organization for component-based applications founded on building test artifacts directly into components, can prevent catastrophic failures like the one that caused the now famous ARIANE 5 crash in 1996. Since building testing into components has implications for component development, built-in contract testing is integrated with and made to complement a model-driven development method. Here UML models are used to derive the testing architecture for an application, the testing interfaces and the component testers. The method also provides a process and guidelines for modeling and developing these artifacts.
This book is the first comprehensive treatment of the intricacies of testing component-based software systems. With its strong modeling background, it appeals to researchers and graduate students specializing in component-based software engineering. Professionals architecting and developing component-based systems will profit from the UML-based methodology and the implementation hints based on the XUnit and JUnit frameworks.
From the reviews:
"The book contains the outcome of the author's thorough involvement in a series of three major research projects ... dealing with embedded real-time software systems development and validation methodologies. ... The book clearly explains what component-based software testing is, why it is important ... . As a research source, it gives a revealing snapshot of the key developments in this area. The book also serves as an excellent textbook for software engineering courses at the advanced undergraduate level or graduate level." (Tudor Balanescu, Zentralblatt MATH, Vol. 1080, 2006)
"Of all the books that I have read on software testing, this is certainly one of the better ones. Component testing is a pretty vast topic in itself and equally complex. ... The book is beautifully structured, crisp and methodical. The author's vast experience in real-time systems is reflected throughout the book. ... To sum it up, this book is a good real for professionals working in the software testing field, needless to say, in component testing." (QThreads Online, December, 2005)