Component-Based Software Testing with UML

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.



 

Hans-Gerhard Groß received his PhD in Software Engineering from the University of Glamorgan, UK, where he worked on timing aspects of real-time systems development and their dynamic verification.

Currently, he is employed as project manager, and responsible for building up software testing competence at the Fraunhofer Institute for Experimental Software Engineering, Kaiserslautern, Germany. His current research focus is on model-driven and component-based software development approaches, particularly in the embedded and real-time domain, and on verification and validation techniques for such systems.