Preface. Chapter 1 Concepts, Notations, and Principles. 1.0 Introduction. 1.1 Concepts, Terminologies, and Notations. 1.2 Two Principles of Test-Case Selection. 1.3 Classification of Faults. 1.4 Classification of Test-Case Selection Methods. 1.5 The Cost of Program Testing. Chapter 2 Code-Based Test-Case Selection Methods. 2.0 Introduction. 2.1 Path Testing. 2.2 Statement Testing. 2.3 Branch Testing. 2.4 Howden's and McCabe's Methods. 2.5 Data-Flow Testing. 2.6 Domain-Strategy Testing. 2.7 Program Mutation and Error Seeding. 2.8 Discussion. Exercises. Chapter 3 Specification-Based Test-Case Selection Methods. 3.0 Introduction. 3.1 Subfunction Testing. 3.2 Predicate Testing. 3.3 Boundary-Value Analysis. 3.4 Error Guessing. 3.5 Discussion. Exercises. Chapter 4 Software Testing Roundup. 4.0 Introduction. 4.1 Ideal Test Sets. 4.2 Operational Testing. 4.3 Integration Testing. 4.4 Testing of Object-Oriented Programs. 4.5 Regression Testing. 4.6 Criteria for Stopping the Test. 4.7 Choosing a Test-Case Selection Criterion. Exercises. Chapter 5 Analysis of Symbolic Trace. 5.0 Introduction. 5.1 The Concept of a State Constraint. 5.2 Subprogram Simplification. 5.3 Program Sets. 5.4 Pathwise Decomposition. 5.5 Concluding Remarks. Exercises. Chapter 6 Static Analysis. 6.0 Introduction. 6.1 Data-Flow Anomaly Detection. 6.2 Symbolic Evaluation (Execution). 6.3 Program Slicing. 6.4 Code Inspection. 6.5 Proving ProgramsCorrect. Exercises. Chapter 7 Program Instrumentation. 7.0 Introduction. 7.1 Test-Coverage Measurement. 7.2 Test-Case Effectiveness Assessment. 7.3 Instrumenting Programs for Assertion Checking. 7.4 Instrumenting Programs for Data-Flow Anomaly Detection. 7.5 Instrumenting Programs for Trace-Subprogram Generation. Exercises. Appendix A Logico-Mathematical Background. Appendix B Glossary. Appendix C Questions for Self-Assessment. Bibliography. Index.
|