Professional Documents
Culture Documents
Chapter 1INTRODUCTION
1. THE PURPOSE OF TESTING
1.1. What We Do
1.2. Productivity and Quality in Software
1.3. Goals for Testing
1.4. Phases in a Testers Mental Life
1.5. Test Design
1.6. Testing Isnt Everything
1.7. The Pesticide Paradox and the Complexity Barrier
2. SOME DICHOTOMIES
1
Help content
2.4. The Nightmare List and When to Stop Testing
3. A TAXONOMY FOR BUGS*
3.1. General
3.2. Requirements, Features, and Functionality Bugs
3.3. Structural Bugs
3.4. Data Bugs
3.5. Coding Bugs
3.6. Interface, Integration, and System Bugs
3.7. Test and Test Design Bugs
3.8. Testing and Design Style
4. SOME BUG STATISTICS
5. SUMMARY
2
Help content
1. SYNOPSIS
2. GENERALIZATIONS
3. TRANSACTION FLOWS
3.1. Definitions
3.2. Example
3.3. Usage
3.4. Implementation
3.5. Perspective
3.6. Complications
3.7. Transaction-Flow Structure
4. TRANSACTION-FLOW TESTING TECHNIQUES
4.1. Get the Transaction Flows
4.2. Inspections, Reviews, Walkthroughs
4.3. Path Selection
4.4. Sensitization
4.5. Instrumentation
4.6. Test Databases
4.7. Execution
5. IMPLEMENTATION COMMENTS
5.1. Transaction Based Systems
5.2. Hidden Languages.
6. TESTABILITY TIPS
7. SUMMARY
3
Help content
3.1. Where Do Domains Come From?
3.2. Specified Versus Implemented Domains
3.3. Nice Domains
3.4. Ugly Domains and How Programmers and Testers Treat Them
4. DOMAIN TESTING (WHIT78A, WHIT80A, WHIT85B, WHIT87)
4.1. Overview
4.2. Domain Bugs and How to Test for Them
4.3. Procedure
4.4. Variations, Tools, Effectiveness
5. DOMAINS AND INTERFACE TESTING
5.1. General
5.2. Domains and Range
5.3. Closure Compatibility
5.4. Span Compatibility
5.5. Interface Range/Domain Compatibility Testing
5.6. Finding the Values
6. DOMAINS AND TESTABILITY
6.1. General
6.2. Linearizing Transformations
6.3. Coordinate Transformations
6.4. A Canonical Program Form
6.5. Great Insights?
7. SUMMARY
4
Help content
3. PATH PRODUCTS AND PATH EXPRESSIONS
3.1. Overview
3.2. Basic Concepts
3.3. Path Products
3.4. Path Sums
3.5 Distributive Laws
3.6. Absorption Rule
3.7. Loops
3.8. Identity Elements
4. A REDUCTION PROCEDURE
4.1. Overview
4.2. Cross-Term Step (Step 4)
4.3. Parallel Term (Step 6)
4.4. Loop Term (Step 7)
4.5. Comments, Identities, and Node-Removal Order
5. APPLICATIONS
5.1. General
5.2. How Many Paths in a Flowgraph?
5.3. Approximate Minimum Number of Paths
5.4. The Probability of Getting There
5.5. The Mean Processing Time of a Routine
5.6. Push/Pop, Get/Return
5.7. Limitations and Solutions
6. REGULAR EXPRESSIONS AND FLOW-ANOMALY DETECTION
6.1. The Problem
6.2. The Method
6.3. A Data-Flow Testing Example (HUAN79)
6.4. Generalizations, Limitations, and Comments
7. SUMMARY
5
Help content
5. IMPLEMENTATION AND APPLICATION
5.1. Execution Automation
5.2. Design Automation
5.3. Productivity, Training, and Effectiveness
5.4. Ad-Lib Tests
6. TESTABILITY TIPS
6.1. The Tip
6.2. Compiler Overview
6.3. Typical Software
6.4. Separation of Phases
6.5. Prerequisites
7. SUMMARY
6
Help content
2. MOTIVATIONAL OVERVIEW
3. STATE GRAPHS
3.1. States
3.2. Inputs and Transitions
3.3. Outputs
3.4. State Tables
3.5. Time Versus Sequence
3.6. Software Implementation
4. GOOD STATE GRAPHS AND BAD
4.1. General
4.2. State Bugs
4.3. Transition Bugs
4.4. Output Errors
4.5. Encoding Bugs
5. STATE TESTING
5.1. Impact of Bugs
5.2. Principles
5.3. Limitations and Extensions
5.4. What to Model
5.5. Getting the Data
5.6. Tools
6. TESTABILITY TIPS
6.1. A Balm for Programmers
6.2. How Big, How Small?
6.3. Switches, Flags, and Unachievable Paths
6.4. Essential and Inessential Finite-State Behavior
6.5. Design Guidelines
7. SUMMARY
7
Help content
Chapter 13IMPLEMENTATION
1. SYNOPSIS
2. OVERVIEW
2.1. General
2.2. Who Does What Kind of Tests
2.3. Adversarial Roles
3. STRATEGIES FOR PROGRAMMERS
3.1. Whos Responsible?
3.2. Programming in Perspective
3.3. Self-Inspection
3.4. Test Case Design
3.5. Test Type Priority
3.6. Learn to Cheat
4. STRATEGIES FOR INDEPENDENT TESTERS
4.1. General
4.2. Database Gold
4.3. Reading Code and Other Design Documents
4.4. Requirements
4.5. Tests and the Threat of Tests
5. TESTS AS SOFTWARE PRODUCTS
5.1. Throwaway Tests?
5.2. Tests, Subtests, Scripts, and Suites
5.3. Test Configuration Control
6. TOOLS
6.1. General
6.2. Fundamental Tools
6.3. Test Execution Automation
6.4. Test Design Automation
6.5. Tool Usago and Training
Cited References/Bibliography
Appendix A
Glossary/Index
Copyright © The Coriolis Group, Inc.