Component-Based Software Testing with UML

Front Cover
Springer Science & Business Media, 2005 - Computers - 316 pages

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.

 

What people are saying - Write a review

User Review - Flag as inappropriate

asdasd

Contents

Introduction
1
11 ComponentBased Software Development
2
112 Core Principles of ComponentBased Development Component Composition
4
113 Component Metamodel
7
114 Component Engineering vs Application Engineering
9
12 ComponentBased Software Testing
11
121 Challenges in ComponentBased Software Testing
12
122 The ARIANE 5 Failure
14
422 Component Contracts
129
43 Model and Architecture of Builtin Contract Testing
130
431 Explicit vs Implicit Servers
133
432 The Testing Interface
134
433 Optimal Design of the Testing Interface
140
434 Tester Components
146
435 Optimal Design of a Tester Component
148
436 Component Associations in Builtin Contract Testing
152

123 The Lessons Learned
15
13 ModelBased Development and Testing
16
132 ModelBased Testing
18
ComponentBased and ModelDriven Development with UML
21
21 Principles of the KobrA Method
22
211 Decomposition
24
212 Embodiment
26
213 Composition
27
22 Context Realization
29
221 Usage Model
30
222 Enterprise or Business Process Model
33
224 Activity and Interaction Model
35
23 Component Specification
38
231 Structural Specification
39
232 Functional Specification
41
233 Behavioral Specification
42
24 Component Realization
44
241 Realization Structural Specification
46
242 Realization Algorithmic Specification
48
25 Component Embodiment
50
251 Refinement and Translation
53
252 The Normal Object Form
55
253 Component Reuse
56
254 COTS Component Integration
58
255 System Construction and Deployment
60
26 Product Family Concepts
61
261 Decision Models
62
262 Framework Engineering
64
263 Application Engineering
68
27 Documentation and Quality Assurance Plan
69
28 Summary
70
ModelBased Testing with UML
73
31 ModelBased vs Traditional Software Testing
74
311 White Box Testing Criteria
75
312 Black Box Testing Criteria
77
32 ModelBased Testing
80
322 Use Case DiagramBased Testing
81
323 Use Case and Operation SpecificationBased Testing
84
324 Structural Modeling
88
325 Structural DiagramBased Testing
95
326 Behavioral Modeling with Statecharts
98
327 Statechart DiagramBased Testing
99
328 Behavioral Modeling with Activity Diagrams
102
329 Activity DiagramBased Testing
104
3210 Interaction Modeling
106
3211 Interaction DiagramBased Testing
109
33 Test Modeling
112
332 Behavioral Aspects of Testing
113
333 UML Testing Profile Mapping
115
334 Extension of the Testing Profile
118
34 Summary
119
Builtin Contract Testing
121
41 Concepts of Builtin Testing
123
412 Builtin Testing
124
42 Motivation for Builtin Contract Testing
127
44 Development Process for Builtin Contract Testing
157
441 Identification of Tested Interactions
163
442 Definition and Modeling of the Testing Architecture
164
443 Specification and Realization of the Testing Interfaces
167
444 Specification and Realization of the Tester Components
169
445 Integration of the Components
174
45 Summary
177
Builtin Contract Testing and Implementation Technologies
179
51 Instantiation and Embodiment of Builtin Contract Testing
183
52 Builtin Contract Testing with Programming Languages
187
521 Procedural Embodiment Under C
188
522 ObjectOriented Embodiment Under C++ and Java
191
53 Component Technologies
200
531 JavaBeans and Enterprise JavaBeans
201
532 COM DCOM ActiveX COM+ and NET
203
533 CORBA OMA and CCM
204
534 Component Technologies and Builtin Contract Testing
206
54 Builtin Contract Testing and Web Services
209
541 Checking Web Services Through Contract Testing
210
542 Testing of Readily Initialized Server Components
212
55 Implementation Technologies for Builtin Contract Testing
214
551 The XUnit Testing Framework
215
552 JUnit and Builtin Contract Testing
216
553 The Testing and Test Control Notation TTCN3
219
554 TTCN3 and Builtin Contract Testing
223
56 Summary
226
Reuse and Related Technologies
229
61 Use and Reuse of Contract Testing Artifacts
231
611 DevelopmentTime Reuse
232
612 Runtime Reuse
235
62 Component Certification and Procurement
238
621 The CLARiFi Component Broker Platform
239
622 Customer Selfcertification
240
63 Product Families and Testing
242
631 Testing of Product Families
244
632 Testing as a Product Family Development
253
64 Summary
254
Assessing QualityofService Contracts
255
71 QualityofService Contracts in ComponentBased Development
256
72 Timing Analysis and Assessment with Components
260
721 Typical Timing Problems
261
722 Timing Analysis Approaches
263
73 Extended Model of Builtin Contract Testing
265
731 Testing Interface for the Extended Model
267
732 Tester Component for the Extended Model
268
733 OptimizationBased Timing Analysis
272
734 Application to the RIN System
274
74 QoS Contract Testing for Dynamic Updates
279
75 Builtin QualityofService Runtime Monitoring
280
76 Summary
283
Glossary
285
References
297
Index
307
Copyright

Other editions - View all

Common terms and phrases

About the author (2005)

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.

Bibliographic information