| |
| |
Preface | |
| |
| |
Notes on the book's structure and layout | |
| |
| |
Acknowledgments | |
| |
| |
| |
Fundamentals | |
| |
| |
| |
An example test series | |
| |
| |
The first cycle of testing | |
| |
| |
The second cycle of testing | |
| |
| |
What will happen in later cycles of testing | |
| |
| |
| |
The objectives and limits of testing | |
| |
| |
You can't test a program completely | |
| |
| |
The tester's objective: Program verification? | |
| |
| |
So, why test? | |
| |
| |
| |
Test types and their place in the software development process | |
| |
| |
Overview of the software development stages | |
| |
| |
Planning stages | |
| |
| |
Testing during the planning stages | |
| |
| |
Design stages | |
| |
| |
Testing during the design stages | |
| |
| |
Glass box code testing is part of the coding stage | |
| |
| |
Regression testing | |
| |
| |
Black box testing | |
| |
| |
Maintenance | |
| |
| |
| |
Software errors | |
| |
| |
Quality | |
| |
| |
What is a software error? | |
| |
| |
Categories of software errors | |
| |
| |
| |
Reporting and analyzing bugs | |
| |
| |
Write Problem Reports immediately | |
| |
| |
Content of the Problem Report | |
| |
| |
Characteristics of the Problem Report | |
| |
| |
Analysis of a reproducible bug | |
| |
| |
Tactics for analyzing a reproducible bug | |
| |
| |
Making a bug reproducible | |
| |
| |
| |
The problem tracking system | |
| |
| |
The prime objective of a problem tracking system | |
| |
| |
The tasks of the system | |
| |
| |
Problem tracking overview | |
| |
| |
The users of the tracking system | |
| |
| |
Mechanics of the database | |
| |
| |
Further thoughts on problem reporting | |
| |
| |
Glossary | |
| |
| |
| |
Test case design | |
| |
| |
Characteristics of a good test | |
| |
| |
Equivalence classes and boundary values | |
| |
| |
Visible state transitions | |
| |
| |
Race conditions and other time dependencies | |
| |
| |
Load testing | |
| |
| |
Error guessing | |
| |
| |
Function equivalence testing: automation, sensitivity analysis and random input | |
| |
| |
Regression testing: checking whether a bug fix worked | |
| |
| |
Regression testing: the standard battery of tests | |
| |
| |
Executing the tests | |
| |
| |
| |
Testing printers (and other devices) | |
| |
| |
Some general issues in configuration testing | |
| |
| |
Printer testing | |
| |
| |
| |
Localization testing | |
| |
| |
Was the base code changed? | |
| |
| |
Work with someone fluent in the language | |
| |
| |
Is the text independent from the code? | |
| |
| |
Translated text expands | |
| |
| |
Character sets | |
| |
| |
Keyboards | |
| |
| |
Text filters | |
| |
| |
Loading, saving, importing, and exporting high and low ASCII | |
| |
| |
Operating system language | |
| |
| |
Hot keys | |
| |
| |
Garbled in translation | |
| |
| |
Error message identifiers | |
| |
| |
Hyphenation rules | |
| |
| |
Spelling rules | |
| |
| |
Sorting rules | |
| |
| |
Uppercase and lowercase conversion | |
| |
| |
Underscoring rules | |
| |
| |
Printers | |
| |
| |
Sizes of paper | |
| |
| |
CPU's and video | |
| |
| |
Rodents | |
| |
| |
Data formats and setup options | |
| |
| |
Rulers and measurements | |
| |
| |
Culture-bound graphics | |
| |
| |
Culture-bound output | |
| |
| |
European product compatibility | |
| |
| |
Memory availability | |
| |
| |
Do GUIs solve the problem? | |
| |
| |
Automated testing | |
| |
| |
| |
Testing user manuals | |
| |
| |
Effective documentation | |
| |
| |
The documentation tester's objectives | |
| |
| |
How testing documentation contributes to software reliability | |
| |
| |
Become the technical editor | |
| |
| |
Working with the manual through its development stages | |
| |
| |
Online help | |
| |
| |
| |
Testing tools | |
| |
| |
Fundamental tools | |
| |
| |
Automated acceptance and regression tests | |
| |
| |
Standards | |
| |
| |
Translucent-box testing | |
| |
| |
| |
Test planning and test documentation | |
| |
| |
The overall objective of the test plan: product or tool? | |
| |
| |
Detailed objectives of test planning and documentation | |
| |
| |
What types of tests to cover in test planning documents | |
| |
| |
A strategy for developing components of test planning documents | |
| |
| |
Components of test planning documents | |
| |
| |
Documenting test materials | |
| |
| |
A closing thought | |
| |
| |
| |
Managing Testing Projects and Groups | |
| |
| |
| |
Tying it together | |
| |
| |
Software development tradeoffs | |
| |
| |
Software development models | |
| |
| |
Quality-related costs | |
| |
| |
The development time line | |
| |
| |
Product design | |
| |
| |
Fragments coded: first functionality | |
| |
| |
Almost alpha | |
| |
| |
Alpha | |
| |
| |
Pre-beta | |
| |
| |
Beta | |
| |
| |
User interface (UI) freeze | |
| |
| |
Pre-final | |
| |
| |
Final integrity testing | |
| |
| |
Release | |
| |
| |
Project post-mortems | |
| |
| |
| |
Legal consequences of defective software | |
| |
| |
Breach of contract | |
| |
| |
Torts: lawsuits involving fault | |
| |
| |
Whistle blowing | |
| |
| |
| |
Managing a testing group | |
| |
| |
Managing a testing group | |
| |
| |
The role of the testing group | |
| |
| |
A test group is not an unmixed blessing | |
| |
| |
An alternative? Independent test agencies | |
| |
| |
Scheduling tips | |
| |
| |
Your staff | |
| |
| |
Appendix: common software errors | |
| |
| |
User interface errors | |
| |
| |
Error handling | |
| |
| |
Boundary-related errors | |
| |
| |
Calculation errors | |
| |
| |
Initial and later states | |
| |
| |
Control flow errors | |
| |
| |
Errors in handling or interpreting data | |
| |
| |
Race conditions | |
| |
| |
Load conditions | |
| |
| |
Hardware | |
| |
| |
Source, version, and ID control | |
| |
| |
Testing errors | |
| |
| |
References | |
| |
| |
Index | |
| |
| |
About the Authors | |