Testing and Quality Assurance for Component-Based Software (Artech House Computer Library.)

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Presenting the state of the art in component-based software testing, this cutting-edge resource offers you an in-depth understanding of the current issues, challenges, needs and solutions in this critical area. The book discusses the very latest advances in component-based testing and quality assurance in an accessible tutorial format, making the material easy to comprehend and benefit from no matter what your professional level. The book clearly explains what component-based software testing is, why it is important, and how it differs from traditional software testing. From an introduction to software components, testing component-based software and validation methods for software components, to performance testing and measurement, standards and certification and verification of quality for component-based systems, you get a revealing snapshot of the key developments in this area, including important research findings. This volume also serves as a textbook for related courses at the advanced undergraduate or graduate level.

Author(s): Jerry Zeyu Gao H.-S. Jacob Tsao Ye Wu
Publisher: Artech House Publishers
Year: 2003

Language: English
Pages: 466

Testing and Quality Assurance for
Component-Based Software......Page 2
Copyright......Page 5
Contents......Page 8
What is this book about?......Page 18
Why is testing software components and component- based software important?......Page 19
Book organization......Page 20
Is this book for you?......Page 21
Acknowledgments......Page 22


PART I Introduction......Page 24
1.1 The evolution of software components......Page 26
1.2 Why is software component reuse important?......Page 28
1.3 What is a software component?......Page 29
1.4 Properties of software components in CBSE......Page 31
1.5 Basic elements of software components......Page 34
1.6 Software modules versus software components in CBSE......Page 36
1.7 An engineering process for software components......Page 40
1.8 Questions, concerns, and needs in component validation and quality control......Page 42
1.9 Summary......Page 44
References......Page 45
2 Software component testing......Page 48
2.1 Component testing background......Page 49
2.2 Component testing in CBSE......Page 51
2.2.1 Vendor- oriented component testing......Page 52
2.2.2 User- oriented component testing......Page 53
2.3 Issues and challenges of component testing in CBSE......Page 57
2.3.1 Issues and challenges in user- oriented component validation......Page 58
2.3.2 Issues and challenges in vendor- oriented component testing......Page 61
2.4 Component testing myths and other needs......Page 64
References......Page 67
3.1 Introduction......Page 70
3.2.1 Properties of component- based software......Page 72
3.2.2 Component- based software versus traditional programs......Page 76
3.3 Component- based software infrastructure:component model......Page 78
3.4.1 Process models for traditional software......Page 81
3.4.2 A process model for component- based software......Page 83
References......Page 88
4 Testing component-based software......Page 90
4.1 Introduction......Page 91
4.2.1 Why is adequate testing for component- based software necessary?......Page 92
4.2.2 Difficulties in adequate testing and maintenance for component- based software......Page 94
4.3.1 Interaction model......Page 98
4.3.2 Behavior model......Page 100
4.4 Testing and maintenance methodologies......Page 102
4.5 Enterprise- based test process for component- based software......Page 103
4.6 Summary......Page 104
References......Page 105
5 Testability of software components......Page 108
5.1 Basic concepts of software testability......Page 109
5.2 Understanding component testability......Page 113
5.2.2 Component observability......Page 114
5.2.3 Component traceability......Page 115
5.2.4 Component controllability......Page 118
5.2.5 Test support capability......Page 119
5.3.1 Understanding of testable software components......Page 121
5.3.2 Methods to increase component testability......Page 123
5.3.3 Current research efforts on building testable components......Page 125
5.4 Verification and evaluation of component testability......Page 128
5.4.2 Statistic verification approach......Page 130
5.5.1 What is software testability measurement?......Page 132
5.5.2 How to measure software testability......Page 133
5.6 Summary......Page 136
References......Page 137
PART II Validation methods for software components......Page 140
6.1 Introduction......Page 142
6.2.1 Component specification......Page 145
6.2.2 Component verification history......Page 146
6.2.3 Component customization......Page 148
6.3.1 Random testing......Page 149
6.3.2 Partition testing......Page 150
6.3.3 Boundary value testing......Page 153
6.3.4 Decision tables ¨C based testing......Page 156
6.3.5 Mutation testing......Page 157
6.4 Summary......Page 160
References......Page 161
7 White-box testing methods for software components......Page 164
7.2 Path testing......Page 165
7.2.1 Statement coverage......Page 166
7.2.3 Multiple- condition coverage......Page 167
7.2.4 Path coverage......Page 168
7.2.5 Loop coverage......Page 169
7.3 Data- flow testing......Page 170
7.4.1 Inheritance......Page 172
7.4.2 Polymorphism......Page 173
7.4.4 Binding coverage......Page 174
7.4.5 State- based testing......Page 175
7.5 Issues in testing software components......Page 176
References......Page 177
8 Test automation and tools for software components......Page 180
8.1 Software test automation......Page 181
8.1.1 Basics of software test automation......Page 183
8.1.2 Software test automation process......Page 187
8.1.3 Different types of test automation tools......Page 189
8.2.1 ADLscope: a specification- based test tool for components......Page 193
8.2.2 The Java Compatibility Test Tools and technology compatibility kit......Page 194
8.3.1 Systematic management of component testing information......Page 197
8.3.2 Automatic test execution for software components......Page 199
8.3.3 Automatic test generation for components......Page 202
8.3.4 Systematic performance testing for components......Page 204
8.3.5 Systematic regression testing for software components......Page 206
8.4 Summary......Page 208
References......Page 209
PART III Validation methods for component-based software......Page 212
9.1 Introduction......Page 214
9.1.2 Type II: Interoperability faults......Page 215
9.2.1 Function decomposition ¨C based integration testing......Page 216
9.2.2 Call graph ¨C based integration testing......Page 218
9.3 A test model for integration testing of component- based software......Page 219
9.3.1 Test elements......Page 220
9.3.2 Component interaction graph......Page 221
9.3.3 Test- adequacy criteria......Page 222
9.4 Black box ¨C based integration- testing approaches......Page 223
9.4.2 Event nodes......Page 224
9.5 UML- based integration- testing approaches......Page 225
9.5.1 Context- dependence relationships......Page 226
9.5.2 Content- dependence relationships......Page 230
9.6 Summary......Page 231
References......Page 232
10 Regression testing for component-based software......Page 234
10.1 Introduction......Page 235
10.2 Regression testing for corrective- maintenance activities......Page 238
10.2.1 Representing modifications with UML diagrams......Page 239
10.2.2 Regression testing for corrective maintenance......Page 241
10.3.1 Control similarity evaluation......Page 244
10.3.2 Data dependence similarity evaluation......Page 247
10.4 Summary......Page 248
11 Performance testing and measurement......Page 252
11.1 Basics of software performance testing and measurement......Page 253
11.1.1 Major focuses in software performance testing and evaluation......Page 254
11.1.2 Performance test process......Page 257
11.1.3 Performance testing and evaluation challenges and needs in CBSE......Page 259
11.2.1 Utilization metrics......Page 261
11.2.2 Speed- related metrics......Page 262
11.2.3 Availability metrics......Page 263
11.2.4 Reliability metrics......Page 266
11.2.5 Throughput metrics......Page 268
11.2.6 Scalability metrics......Page 269
11.3.1 Classification of performance evalution approaches......Page 271
11.3.2 Component- based performance evaluation models......Page 274
11.4 Performance testing and evaluation tools and techniques......Page 277
11.4.1 Performance tracking and monitoring techniques......Page 279
References......Page 280
12 Frameworks for testing component-based software......Page 284
12.1.1 BIT components......Page 285
12.1.2 BIT component wrappers......Page 286
12.2.1 Testable component structure......Page 289
12.2.2 Component test framework......Page 291
12.2.4 A distributed component testing environment......Page 292
12.3 A framework for tracking component behaviors......Page 295
12.3.1 Systematic event- based component tracking model......Page 296
12.3.2 Java component tracking package......Page 297
12.3.3 Distributed tracking environment for component software......Page 298
12.4 A framework for component performance measurement......Page 300
12.4.1 A distributed performance measurement environment for components......Page 301
12.4.3 Performance tracking techniques......Page 303
12.5.1 The STCL architecture requirements......Page 305
12.5.2 The STCL architecture......Page 307
12.6 Summary......Page 309
References......Page 311
PART IV Quality assurance for software components
and component-based software......Page 312
13 Quality assurance for software components......Page 316
13.1.1 Modern methodology for assuring quality of hardware......Page 318
13.1.2 Major differences between hardware and software quality assurance......Page 321
13.2.1 The essence of software quality assurance: process and discipline......Page 323
13.2.2 Major software quality assurance tasks......Page 324
13.3 Main issues involved in QA for software components......Page 326
13.4 Integrated development and QA process for software components......Page 327
13.4.1 Prerequirements ( study) phase......Page 330
13.4.2 External- requirements phase ( including user and certifier requirements)......Page 332
13.4.3 Internal- requirements phase......Page 336
13.4.4 Design phase......Page 338
13.4.5 Implementation phase ( or coding phase)......Page 340
13.4.6 Test, evaluation, and validation phase......Page 341
13.4.8 Postdeployment phase......Page 342
13.5 Summary......Page 343
References......Page 344
14 Quality assurance for component-based
software systems......Page 346
14.1.1 Salient features of the development of component- based software systems......Page 347
14.1.2 The main differences between SQA for conventional software
systems and SQA for component-based software systems......Page 349
14.2.2 Multicriteria selection......Page 350
14.2.3 A specific process and technique for evaluating software components......Page 351
14.2.4 A general process for evaluating software components......Page 352
14.3 Ensuring a quality adaptation and integration process......Page 353
14.4 Validation of the quality of software components......Page 354
14.5 Several major limitations of the conventional SQA process......Page 355
14.6 A complementary bottom- up approach for software quality assurance......Page 356
14.6.1 Dromey¡¯s method of quality- carrying properties......Page 358
14.7 Building quality into software: the case of object- oriented design......Page 363
14.8.1 ITSEP......Page 366
14.8.2 Rational unified process......Page 367
14.8.3 RUP/ ITSEP with SQA......Page 368
References......Page 369
15 Standards and certification for components and
component-based software......Page 372
15.1 Standards for software processes and products......Page 374
15.1.1 Standards for software processes......Page 375
15.1.2 Standards for software products......Page 378
15.2 On standards for software testing......Page 379
15.3 Standards for software components and component- based software systems......Page 380
15.4.1 ISO/ IEC 12207 or IEEE/ EIA 12207......Page 385
15.4.2 IEEE SESC Vision 2000 Architecture......Page 386
15.5 Certification of software processes, products, and developers......Page 387
15.6.1 The benefits of certification of software components......Page 388
15.6.2 Research into certification of software components......Page 389
15.7 Liability aspects of producing software components and their certification......Page 390
15.7.1 A ¡° big picture¡±......Page 391
15.7.3 Liability lawsuits against product defects: contract, tort,and product (“ no- fault”) liability......Page 392
15.7.4 Disclaimer as a liability defense......Page 393
15.7.5 The roles of standards and certification in liability defense......Page 394
15.8 Summary......Page 395
References......Page 396
16 Component quality verification and measurement......Page 398
16.1 The classical approach to verification, validation, and testing......Page 399
16.1.1 Terminology and tasks......Page 400
16.1.2 Standards for specification of requirements, design,implementation, and testing......Page 401
16.1.3 Reviews, audits, walk- throughs, and inspections for verification of adherence to standards......Page 402
16.1.4 Testing standards for software components......Page 403
16.2.1 Technical approaches......Page 405
16.2.2 Organizational approaches......Page 406
16.2.3 Integration of the classical and recent approaches......Page 407
16.3 A framework for software quality measurement......Page 409
16.4 Practical quality measures for software components......Page 413
16.4.1 Practical measures for software quality......Page 414
16.4.2 Practical measures for software components......Page 416
16.5.1 Prerelease defect number as a predictor for postrelease defect number: a need for caution......Page 418
16.5.2 Quality guidelines for software design and implementation......Page 420
16.5.3 Some problems with predictive models for defects......Page 425
16.6 Other practical software measures and metrics......Page 426
16.7 Summary......Page 427
References......Page 428
17 Verification of quality for component-based software......Page 432
17.1 Some skepticisms and the companion constructive suggestions......Page 434
17.2.1 Overview of IEEE 1517......Page 438
17.2.2 IEEE 1517 processes, activities, and tasks......Page 439
17.3 Areas for component standardization......Page 441
17.4 Success and failure factors for reuse of in- house developed components......Page 443
17.5 Failure modes and failure causes......Page 447
17.6 Summary......Page 450
References......Page 452
About the authors......Page 454
Index......Page 456