GalileoSoftwareTesting TOC
GalileoSoftwareTesting TOC
A Global Foreword 11
2 Testing: an Overview 25
2.1 What is Software Quality? 25
2.1.1 Possible Definitions 25
2.1.2 New Approaches to Quality 28
2.2 The Overall Course of a Test 29
2.2.1 Planning 30
2.2.2 Execution 32
2.2.3 Evaluation 33
2.3 What is to be done with the test results? 35
2.3.1 Checking 36
2.3.2 List of known errors 38
2.4 Testing Strategies 38
2.4.1 Exploratory Testing 38
2.4.2 Testing and Improving (Testing and Tuning) 39
2.4.3 Automated Testing 40
2.4.4 Testing by Using 43
2.4.5 Testing by Documenting 45
2.4.6 Regression Testing 45
2.4.7 Smoke Tests 46
2.4.8 Embedded Testing 47
2.4.9 Live Testing 48
Contents 3
2.5 Testing Methods 49
2.5.1 Black Box Testing 49
2.5.2 White Box Testing 50
2.5.3 Gray Box tests 50
2.6 Types of Functional and Structural Tests 51
2.6.1 Requirements-Based Testing 51
2.6.2 Design-Based Testing 53
2.6.3 Code-Based Testing 53
2.6.4 Performance Testing 54
2.6.5 Stress Testing 54
2.6.6 Robustness Testing 54
2.6.7 Long-term Testing 55
2.6.8 Installation Testing 55
2.6.9 Security Testing 55
2.7 Testing Types with Various Input Data 56
2.7.1 Random Data Testing 56
2.7.2 Spot Check Testing 56
2.7.3 Boundary Value Testing 57
2.8 Phases of Testing 58
2.8.1 The Classic Test Planning Model 59
2.8.2 Integration of Phases in Rapid Application Testing 64
2.9 Other Quality Assurance Methods 68
2.9.1 Design and Code Reviews 68
2.9.2 Static Code Analysis 69
2.9.3 Model Validation 70
4 Contents
3.5 Integration Testing 108
3.5.1 Transactions 108
3.5.2 Linking to the Interface 111
3.5.3 Synchronization 111
3.6 System Testing 113
3.6.1 Functional completeness 113
3.6.2 Run-time Behavior 115
3.6.3 Installation 117
3.6.4 Capacity Limitations 119
3.6.5 System problems 120
3.6.6 System Security 121
3.7 Performance Testing 123
3.7.1 System Parameters 123
3.7.2 The Quadratic Effect 125
3.7.3 Stress Testing for Middleware 127
3.7.4 Database Access 129
3.8 Test Coverage 130
3.8.1 Classic Coverage Indices 130
3.8.2 What Information Do Code Coverage Indices Contain? 132
3.8.3 Function Coverage 134
3.8.4 Generating Test Cases on the Basis of Use Cases 135
3.8.5 Test Coverage and Object-Oriented Languages 138
3.8.6 Coverage of System Scenarios 141
Contents 5
4.3.5 Test Code 204
4.3.6 Code Instrumentation 205
4.3.7 Audit Trail 206
4.4 Tools 207
4.4.1 File comparison tools, Diff, XML Diff 207
4.4.2 Data Access and Evaluation 208
4.4.3 COM Interactive 210
4.4.4 Code Coverage, Logging, Tracing and Profiling 211
4.4.5 Design by Contract 212
4.4.6 Load and Performance Tests 213
4.4.7 GUI Test Automation 214
4.4.8 Testing Distributed Systems 216
6 Contents
6.3 International Development Issues 247
6.3.1 Problems Working With Strings 247
6.3.2 Problems Working With Dialogs – String Expansion 257
6.3.3 Builds and Installers 261
6.3.4 Achieving Success through Proper Planning and Architecting 267
6.4 Internationalization Testing 271
6.4.1 Start Testing from Day One 271
6.4.2 Testing Your Program’s Installation 273
6.4.3 Testing for Localizable Strings 274
6.4.4 Testing With Foreign Characters 276
6.4.5 Double-Byte Overlapping Characters 280
6.4.6 Keyboards 283
6.4.7 Printing and Paper Sizes 284
6.4.8 Sorting 284
6.4.9 Filtering and Searching functionality 290
6.4.10 Shortcut Keys and Mnemonics 290
6.4.11 Date and Time 292
6.4.12 Currency 294
6.4.13 Numbers 295
6.4.14 Addresses, Postal Codes and Phone Numbers 295
6.4.15 Spelling, Grammar and Other Language Considerations 296
6.4.16 Brand Names and Terminology 298
6.4.17 Asian Text in Programs 299
6.4.18 Databases 300
6.4.19 Seasons 301
6.4.20 Measurements 302
6.4.21 Signs, Symbols and Colors 302
6.5 Conclusion 304
Bibliography 307
Index 315
Contents 7