Preface
Dedication
Part I-A Mathematical Context
Chapter 1-A Perspective on Testing
1.1 Basic Definitions
1.2 Test Cases
1.3 Insights from a Venn Diagram
1.4 Identifying Test Cases
1.4.1 Functional Testing
1.4.2 Structural Testing
1.4.3 The Functional Versus Structural Debate
1.5 Error and Fault Taxonomies
1.6. Levels of Testing
Chapter 2-Examples
2.1 The Triangle Problem
2.1.1 Problem Statement
2.1.2 Discussion
2.1.3 Traditional Implementation
2.1.4 Structured Implementation
2.2 The NextDate Function
2.2.1 Problem Statement
2.2.2 Discussion
2.2.3 Implementation
2.3 The Commission Problem
2.3.1 Problem Statement
2.3.2 Discussion
2.3.3 Implementation
2.4 The SATM System
2.4.1 Problem Statement
2.4.2 Discussion
2.5 Saturn Windshield Wiper Controller
Chapter 3-Discrete Math for Testers
3.1 Set Theory
3.1.1 Set Membership
3.1.2 Set Definition
3.1.3 The Empty Set
3.1.4 Venn Diagrams
3.1.5 Set Operations
3.1.6 Set Relations
3.1.7 Set Partitions
3.1.8 Set Identities
3.2 Functions
3.2.1 Domain and Range
3.2.2 Function Types
3.2.3 Function Composition
3.3 Relations
3.3.1 Relations Among Sets
3.3.2 Relations on a Single Set
3.4 Propositional Logic
3.4.1 Logical Operators
3.4.2 Logical Expressions
3.4.3 Logical Equivalence
3.5 Probability Theory
Chapter 4-Graph Theory for Testers
4.1 Graphs
4.1.1 Degree of a Node
4.1.2 Incidence Matrices
4.1.3 Adjacency Matrices
4.1.4 Paths
4.1.5 Connectedness
4.1.6 Condensation Graphs
4.1.7 Cyclomatic Number
4.2 Directed Graphs
4.2.1 Indegrees and Outdegrees
4.2.2 Types of Nodes
4.2.3 Adjacency Matrix of a Directed Graph
4.2.4 Paths and Semi-Paths
4.2.5 Reachability Matrix
4.2.6 N-Connectedness
4.2.7 Strong Components
4.3 Graphs for Testing
4.3.1 Program Graphs
4.3.2 Finite State Machines
4.3.3 Petri Nets
Part II-Functional Testing
Chapter 5-Boundary Value Testing
5.1 Boundary Value Analysis
5.1.1 Generalizing Boundary Value Analysis
5.1.2 Limitations of Boundary Value Analysis
5.2 Robustness Testing
5.3 Worst Case Testing
5.4 Special Value Testing
5.5 Examples
5.5.1 Test Cases for the Triangle Problem
5.5.2 Test Cases for the NextDate Problem
5.5.3 Test Cases for the Commission Problem
5.6 Guidelines for Boundary value Testing
Chapter 6-Equivalence Class Testing
6.1 Equivalence Classes
6.1.1 Weak Equivalence Class Testing
6.1.2 Strong Equivalence Class Testing
6.1.3 Traditional Equivalence Class Testing
6.2 Equivalence Class Test Cases for the Triangle Problem
6.3 Equivalence Class Test Cases for the NextDate Function
6.4 Equivalence Class Test Cases for the Commission Problem
6.5 Guidelines and Observations
Chapter 7-Decision Table Based Testing
7.1 Decision Tables
7.1.2 Technique
7.2 Test Cases for the Triangle Problem
7.3 Test Cases for the NextDate Function
7.4 Test Cases for the Commission Problem
7.5 Guidelines and Observations
Chapter 8-Retrospective on Functional Testing
8.1 Selected Test Cases
8.1.1 Triangle Program Test Cases
8.1.2 NextDate Problem Test Cases
8.1.3 Commission Problem Test Cases
8.2 Testing Effort
8.3 Testing Efficiency
8.4 Testing Effectiveness
8.5 Guidelines
Part III-Structural Testing
Chapter 9-Path Testing
9.1 DD-Paths
9.2 Test Coverage Metrics
9.2.1 Metric Based Testing
9.2.2. Test Coverage Analyzers
9.3 Basis Path Testing
9.3.1 McCabe’s Basis Path Method
9.3.2 Observations on McCabe’s Basis Path Method
9.3.3 Essential Complexity
9.4 Guidelines and Observations
Chapter 10-Data Flow Testing
10.1 Define/Use Testing
10.1.1 Example
10.1.2 Du-path Test Coverage Metrics
10.2 Slice-Based Testing
10.2.1 Example
10.2.2 Style and Technique
10.3 Guidelines and Observations
Chapter 11-Retrospective on Structural Testing
11.1 Gaps and Redundancies
11.2 Metrics for Method Comparison
11.2.1 Comparing Functional Testing Methods
11.2.2 Comparing Structural Testing Metrics
11.3 Functional-Structural Hybrid Testing
11.4 Closure
Part IV-Integration and System Testing
Chapter 12-Levels of Testing
12.1 Traditional View of Testing Levels
12.2 Alternative Life Cycle Models
12.2.1 Waterfall Spin-offs
12.2.2 Specification Based Models
12.2.3 An Object-Oriented Life Cycle Model
12.3 Formulations of the SATM System
12.3.1 SATM with Structured Analysis
12.3.3 Object-Oriented Formulation of SATM
12.4 Separating Integration and System Testing
12.4.1 Structural Insights
12.4.2 Behavioral Insights
Chapter 13-Integration Testing
13.1 A Closer Look at the SATM System
13.2 Decomposition Based Integration
13.2.1 Top-Down Integration
13.2.2 Bottom-up Integration
13.2.3 Sandwich Integration
13.2.4 Pros and Cons
13.3 Call Graph Based Integration
13.3.1 Pair-wise Integration
13.3.2 Neighborhood Integration
13.3.3 Pros and Cons
13.4 Path Based Integration
13.4.1 New and Extended Concepts
13.4.2 MM-Paths and ASFS in the SATM System
13.4.3 Pros and Cons
Chapter 14-System Testing
14.1 Threads
14.1.1 Thread Possibilities
14.1.2 Thread Definitions
14.2 Basis Concepts for Requirements Specification
14.2.1 Data
14.2.2 Actions
14.2.3 Ports
14.2.4 Events
14.2.5 Threads
14.2.6 Relationships Among Basis Concepts
14.2.7 Modeling with the Basis Concepts
14.3 Finding Threads
14.4 Structural Strategies for Thread Testing
14.4.1 Bottom-up Threads
14.4.2 Node and Edge Coverage Metrics
14.5 Functional Strategies for Thread Testing
14.5.1 Event-Based Thread Testing
14.5.2 Port-Based Thread Testing
14.5.3 Data-Based Thread Testing
14.6 SATM Test Threads
14.7 System Testing Guidelines
14.7.1 Pseudo-Structural System Testing
14.7.2 Operational Profiles
14.7.3 Progression vs. Regression Testing
Chapter 15-Object-Oriented Testing
15.1 Object Orientation
15.2 Issues Raised by Object Orientation
15.2.1 Levels of Testing
15.2.2 Object Composition
15.2.3 Esoteric Object Features
15.3 Framework for Object-Oriented Testing
15.4 Object-Oriented Testing of the SATM System
15.5 Guidelines for Object-oriented Testing
Chapter 16-Interaction Testing
16.1 Context of Interaction
16.2 A Petri Net Model for Interactions
16.3 A Taxonomy of Interactions
16.3.1 Static Interactions in a Single Processor
16.3.2 Static Interactions in Multiple Processors
16.3.3 Dynamic Interactions in a Single Processor
16.3.4 Dynamic Interactions in Multiple Processors
16.4 Interaction, Composition, and Determinism
16.5 Client-Server Testing
References
댓글 영역