Component-Based Software Testing with UMLSpringer Science & Business Media, 2005 - 316 síður 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. |
Efni
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 |
297 | |
307 | |