6.6.1 Test Completion/Acceptance Criteria 220
6.6.2 Sample Test Plan 220
7 Test Analysis and Design 223
7.1 Test Requirements Analysis 225
7.1.1 Development-Level Test A nalysis
(Structural Approach) 226
7.1.2 System-Level Test Analysis (Behavioral Approach) 228
7.2 Test Program Design 233
7.2.1 Test Fragra m Design Models 233
7.2.2 White-Box Techniques (Development-Level Tests) 237
7.2.3 Black-Box Techniques (System-Level Tests) 244
7.2.4 Test Design Documentation 255
7.3 Test Procedure Design 256
7.3.1 Test Procedure Definition 257
7.3.2 Automated Versus Manual Test Analysis 262
7.3.3 Automated Test Design Standards 266
Case Study: Naming Conventions 270
7.3 A Manual Test Design Guidelines 272
7.3.5 Detailed Test Design 274
7.3.6 Test Data Requirements 277
8 Test Development 285
8.1 Test Development Architecture 288
8.1.1 Technical Environment 288
8.1.2 Environment Readiness Checks 291
8.1.3 Automation Framework Reuse Analysis 291
8.1.4 Test Procedure Development/Execution Schedule 292
8.1.5 Modularity-Relationship Analysis 295
8.1.6 Explanation of the Sample Modularity-
Relationship Matrix 299
8.1.7 Calibration of the Test Tool 302
8.1.8 Compatibility Work-Around Solutions 302
Case Study: Incompatibility Work-Around Solution 303
8.1.9 Manual Execution of Test Procedures 304
8.1.10 Test Procedure Inspections—Peer Reviews 304
8.1.11 Test Procedure Con figuration Management 305
8.2 Test Development Guidelines « 306
8.2.1 Design-to-Development Transition 308
8.2.2 Reusable Test Procedures 310
Case Study : Navigation Using Tabs or Mouse Clicks 313
Case Study: Testing Bitmaps Using a Capturc/Playback Tool 314
8.2.3 Maintainable Test Procedures 317
Case Study: Automating Documentation 320
Case Study: Automated Random Testing 332
8.2.4 Other Guidelines 334
8,3 Automation Infrastructure 336
8.3.1 Table-Driven Test Automation 337
8.3.2 PC Environment Automated Setup Script 339
8.3.3 Automated Recording Options 340
8.3.4 Login Function 341
8.3.5 Exit Function 341
8.3.6 Navigation 341
8.3.7 Verifying GUI Standards 342
8.3.8 Smoke Test 342
Case Study: Smoke Test Application 343
8.3.9 Error-Logging Routine 343
8.3.10 Help Function Verification Script 343
8.3.11 Timed Message Boxes Function 344
8.3.12 Advanced Math Functions 344
ijA IV
Test Execution and Review
§ Test Execution 349
9.1 Executing and Evaluating Test Phases 351
9.1.1 Unit Test Execution and Evaluation 351
9.1.2 Integration Test Execution and Evaluation 354
9.1.3 System Test Execution and Evaluation 356
9.1.4 Test Results Analysis of Regression Tests 358
9.1.5 User Acceptance Test Execution and Evaluation 359
9.2 Defect Tracking and New Build Process 360
9.2.1 Defect Life-Cycle Model 366
9.3 Test Program Status Tracking 366
9.3.1 Earned Value Management System 367
Case Study: System Test Status Tracking 367
9.3.2 Test Metrics Collection and Analysis 370
1§ Test Program Review and Assessment 379
10.1 Test Program Lessons Learned—Corrective Actions
and Improvement Activity 381
10.2 Test Program Return on Investment 392
Case Study: Test Program Return on Investment 392
Case Study: Quantify Tool Return on Investment 397
"art V Appendixes
A. How to Test Requirements 405
A. 1 Requirements Testing Approach 405
Abstract 405
The Quality Gateway 406
Make the Rcquhemcih Mwi.niauit 406
Qunurifi'ilL Rujttl, тапа 406
II,,uj„.,nCf.„l,d iCi,..» n:: 407
Keeping Track 407
Coherency and Consistency 408
Completeness 409
Relevance 411
Requirement or Solution ? 412
Stakeholder Value 413
Traceability 413
Order in a Disorderly World 414
Conclusions 415
References 416
B Tools That Support the Automated Testing Life Cycle 417
B. 1 Introduction 417
B.2 Business Analysis Phase 421
B.2.1 Business Modeling Tools 421
B.2.2 Configuration Management Tools 424
B.2.3 Defect Tracking Took 426
B.2.4 Technical Review Management 432
B.2.5 Documentation Generators 433
B.3 Requirements Definition Phase 434
B.3.1 Requirements Management Tools 434
B.3.2 Requirements Verifiers u 436
B.3.3 Use Case Generators 436
B.4 Analysis and Design Phase 437
B.4.1 Visual Modeling Tools 437
B.4.2 Structure Charts, Flowcharts, and Sequence Diagrams 440
B.4.3 Test Procedure Generators 441
B.5 Programming Phase 442
B.5.1 Syntax Checkers/Delmggers 442
B.5,2 Memory Leak and Runtime Error Detection Tools 442
B.5.3 Code Checkers 444
B.5.4 Static and Dynamic Analyzers 445
B.5,5 Unit Test Tools 449
B.6 Metrics Tools 450
B.6.1 Code (Test) Coverage Analyzers and
Code Instrumentors 450
B.6.2 Usability Measurement Tools 456
B.7 Testing Support Tools 457
B.7.1 Test Data Gen cm tors 457
B.7.2 File Comparison Tools 458
B.7.3 Simulation Tools 459
B.8 Testing Phase 460
B.8.1 Test Management Tools 460
B.8.2 Network Testing Tools 460
B.8.3 GUI Application Testing Tools 462
B.8.4 Load/Performancc Testing Tools 465
B.8.5 Web Testing Tools 470
B.8.6 Tear 2000 Testing Tools 471
B. 9 Other Test Tool Vendors 472
C Test Engineer Development 475
C. 1 Technical Skills Stage 478
C.2 Test Process Stage 480
C.3 . Team Effort Stage 483
C.4 Technical Stewardship Stage 484
C.5 Test/Project Management Stage 485
C. 6 Business/Product Management Stage 487
D Sample Test Plan 489
D. 1 Introduction 493
D.1.1 Purpose 493
D.1.2 Background 493
D.1,3 System Overview 494
D.1,4 Applicable Documents 496
D.1,5 Master Schedule 498
D.2 Roles and Responsibilities 499
D.2.1 Project Organization 499
D.2.2 Project Roles and Responsibilities 500
D.2.3 Test Task Structure 503
D.2.4 Test Team Resources 509
D.3 Test Program 509
D.3.1 Scope 509
D.3.2 Test Approach 512
D.3,3 Test Strategics 515
D.3.4 Automated Tools 51.8
D.3.5 Qualification Methods 519
D.3.6 Test Requirements 519
D.3.7 Test Design o20
D.3.8 Test Development 524
D.4 Test Environment 526
D.4.1 Test Environment Configuration 526
D.4.2 Test Data 527
D.5 Test Execution 529
D.5.1 Test Program Reporting 529
D.5.2 Test Program Metrics 529
D.5.3 Defect Tracking 530
D.5.4 Configuration Management 532
D. 6 Detailed Test Schedule 532
APPENDIXES 534
D.A Test Procedure Development Guidelines 534
D.B Test Verification Summary and Matrix 536
D.C Test Procedures and Test Scripts 538
Best Practices 539
E. 1 Documented Process 539
E.2 Managing Expectations 541
E.3 Pilot Project 541
E.4 Test Tool Compatibility Checks 541
E.5 Test Tool Upgrades sj 542
E.6 Baselined System Setup and Configuration 543
E.7 Software Installations in the Test Environment Baseline 543
Е.8 Overall Test Program Objectives 543
E.9 Keep Automation Simple 544
E.10 Test Procedure Design and Development Standards 544
Е.11 Automated Versus Manual Test Analysis 545
Е.12 Reuse Analysis 545
Е.13 Test Team Communication with Other Teams 545
Е.14 Schedule Compatibility' 546
Е.15 Customer Involvement 546
Е.16 Defect Documentation and Reporting 547
Е,17 Automated Test Advocates and Experts 547
Е,18 Test Team Assignments 547
Е.19 User Group Participation 548
Е.20 Test Tool Improvement Suggestions 548
Е.21 Become a Beta Testing Site 548
Е.22 Specialty' Topic Experts 548
Index 551