Book description
This edition ofTable of contents
- Cover
- Title Page
- Contents
- Dedication
- Preface to the Second Edition
- Preface to the First Edition
-
Part I: Preliminaries
-
Chapter 1: Preliminaries: Software Testing
- 1.1. Humans, Errors, and Testing
- 1.2. Software Quality
- 1.3. Requirements, Behavior and Correctness
- 1.4. Correctness Versus Reliability
- 1.5. ΤEsting and Debugging
- 1.6. Test Metrics
- 1.7. Software and Hardware Testing
- 1.8. Testing and Verification
- 1.9. Defect Management
- 1.10. Test Generation Strategies
- 1.11. Static Testing
- 1.12. Model-Based Testing and Model Checking
- 1.13. Types of Testing
- 1.14. The Saturation Effect
- 1.15. Principles of Testing
- 1.16. Tools
- Summary
- Exercises
- Chapter 2: Preliminaries: Mathematical
-
Chapter 1: Preliminaries: Software Testing
-
Part II: Test Generation
- Chapter 3: Domain Partitioning
-
Chapter 4: Predicate Analysis
- 4.1. Introduction
- 4.2. Domain Testing
- 4.3. Cause-Effect Graphing
-
4.4. Tests Using Predicate Syntax
- 4.4.1 A fault model
- 4.4.2 Missing or extra Boolean variable faults
- 4.4.3 Predicate constraints
- 4.4.4 Predicate testing criteria
- 4.4.5 BOR, BRO, and BRE adequate tests
- 4.4.6 BOR constraints for non-singular expressions
- 4.4.7 Cause-effect graphs and predicate testing
- 4.4.8 Fault propagation
- 4.4.9 Predicate testing in practice
- 4.5. Tests Using Basis Paths
- 4.6. Scenarios and Tests
- Summary
- Exercises
- Chapter 5: Test Generation From Finite State Models
-
Chapter 6: Test Generation From Combinatorial Designs
- 6.1. Combinatorial Designs
- 6.2. A Combinatorial Test Design Process
- 6.3. Fault Model
- 6.4. Latin Squares
- 6.5. Mutually Orthogonal Latin Squares
- 6.6. Pairwise Design: Binary Factors
- 6.7. Pairwise Design: Multi-valued Factors
- 6.8. Orthogonal Arrays
- 6.9. Covering and Mixed-level Covering Arrays
- 6.10. Arrays of Strength > 2
- 6.11. Generating Covering Arrays
- 6.12. Tools
- Summary
- Exercises
-
Part III: Test Adequacy Assessment and Enhancement
-
Chapter 7: Test Adequacy Assessment Using Control Flow and Data Flow
- 7.1. Test Adequacy: Basics
-
7.2. Adequacy Criteria Based on Control Flow
- 7.2.1 Statement and block coverage
- 7.2.2 Conditions and decisions
- 7.2.3 Decision coverage
- 7.2.4 Condition coverage
- 7.2.5 Condition/decision coverage
- 7.2.6 Multiple condition coverage
- 7.2.7 Linear code sequence and jump (LCSAJ) coverage
- 7.2.8 Modified condition/decision coverage
- 7.2.9 MC/ DC adequate tests for compound conditions
- 7.2.10 Definition of MC/ DC coverage
- 7.2.11 Minimal MC/ DC tests
- 7.2.12 Error detection and MC/DC adequacy
- 7.2.13 Short-circuit evaluation and infeasibility
- 7.2.14 Basis path coverage
- 7.2.15 Tracing test cases to requirements
- 7.3. Concepts From Data Flow
- 7.4. Adequacy Criteria Based on Data Flow
- 7.5. Control Flow Versus Data Flow
- 7.6. The “Subsumes” Relation
- 7.7. Structural and Functional Testing
- 7.8. Scalability of Coverage Measurement
- 7.9. Tools
- Summary
- Exercises
-
Chapter 8: Test Adequacy Assessment Using Program Mutation
- 8.1. Introduction
- 8.2. Mutation and Mutants
- 8.3. Test Assessment Using Mutation
- 8.4. Mutation Operators
- 8.5. Design of Mutation Operators
- 8.6. Founding Principles of Mutation Testing
- 8.7. Equivalent Mutants
- 8.8. Fault Detection Using Mutation
- 8.9. Types of Mutants
-
8.10. Mutation Operators For C
- 8.10.1 What is not mutated?
- 8.10.2 Linearization
- 8.10.3 Execution sequence
- 8.10.4 Effect of an execution sequence
- 8.10.5 Global and local identifier sets
- 8.10.6 Global and local reference sets
- 8.10.7 Mutating program constants
- 8.10.8 Mutating operators
- 8.10.9 Binary operator mutations
- 8.10.10 Mutating statements
- 8.10.11 Mutating program variables
- 8.10.12 Structure Reference Replacement
- 8.11. Mutation Operators For Java
- 8.12. Comparison of Mutation Operators
- 8.13. Mutation Testing Within Budget
- 8.14. Case and Program Testing
- 8.15. Tools
- Summary
- Exercises
-
Chapter 7: Test Adequacy Assessment Using Control Flow and Data Flow
-
Part IV: Phases of Testing
-
Chapter 9: Test Selection, Minimization, and Prioritization for Regression Testing
- 9.1. What is Regression Testing?
- 9.2. Regression Test Process
- 9.3. Regression Test Selection: The Problem
- 9.4. Selecting Regression Tests
- 9.5. Test Selection Using Execution Trace
- 9.6. Test Selection Using Dynamic Slicing
- 9.7. Scalability of Test Selection Algorithms
- 9.8. Test Minimization
- 9.9. Test Prioritization
- 9.10. Tools
- Summary
- Exercises
- Chapter 10: Unit Testing
- Chapter 11: Integration Testing
-
Chapter 9: Test Selection, Minimization, and Prioritization for Regression Testing
- Acknowledgements
- Copyright
- Back Cover
Product information
- Title: Foundations of Software Testing, 2nd Edition
- Author(s):
- Release date: May 2013
- Publisher(s): Pearson India
- ISBN: 9789332517660
You might also like
book
Effective Software Testing
Go beyond basic testing! Great software testing makes the entire development process more efficient. This book …
book
The Art of Software Testing, 3rd Edition
The classic, landmark work on software testing The hardware and software of computing have changed markedly …
book
Software Testing: Principles and Practices
Software Testing: Principles and Practices is a comprehensive treatise on software testing. It provides a pragmatic …
book
Learning Go, 2nd Edition
Go has rapidly become the preferred language for building web services. Plenty of tutorials are available …