
【内容简介】
本书采用创新方法来讲述软件测试,定义测试为将几个通用的测试准则应用于软件结构或软件模型的过程。书中融入了最新的测试技术,包括现代软件方法(如面向对象),Web应用程序和嵌入式软件。另外,本书包含了大量的实例。
【目次】
Part 1 Overview
1 Introduction
1.1 Activities of a Test Engineer
1.1.1 Testing Levels Based on Software Activity
1.1.2 Beizer's Testing Levels Based on Test Process Maturity
1.1.3 Automation of Test Activities
1.2 Software Testing Limitations and Terminology
1.3 Coverage Criteria for Testing
1.3.1 Infeasibility and Subsumption
1.3.2 Characteristics of a Good Coverage Criterion
1.4 Older Software Testing Terminology
1.5 Bibliographic Notes
Part 2 Coverage Criteria
2 Graph Coverage
2.1 Overview
2.2 Graph Coverage Criteria
2.2.1 Structural Coverage Criteria
2.2.2 Data Flow Criteria
2.2.3 Subsumption Relationships among Graph Coverage Criteria
2.3 Graph Coverage for Source Code
2.3.1 Structural Graph Coverage for Source Code
2.3.2 Data Flow Graph Coverage for Source Code
2.4 Graph Coverage for Design Elements
2.4.1 Structural Graph Coverage for Design Elements
2.4.2 Data Flow Graph Coverage for Design Elements
2.5 Graph Coverage for Specifications
2.5.1 Testing Sequencing Constraints
2.5.2 Testing State Behavior of Software
2.6 Graph Coverage for Use Cases
2.6.1 Use Case Scenarios
2.7 Representing Graphs Algebraically
2.7.1 Reducing Graphs to Path Expressions
2.7.2 Applications of Path Expressions
2.7.3 Deriving Test Inputs
2.7.4 Counting Paths in a Flow Graph and Determining Max Path Length
2.7.5 Minimum Number of Paths to Reach All Edges
2.7.6 Complementary Operations Analysis
2.8 Bibliographic Notes
3 Logic Coverage
3.1 Overview: Logic Predicates and Clauses
3.2 Logic Expression Coverage Criteria
3.2.1 Active Clause Coverage
3.2.2 Inactive Clause Coverage
3.2.3 Infeasibility and Subsumption
3.2.4 Making a Clause Determine a Predicate
3.2.5 Finding Satisfying Values
3.3 Structural Logic Coverage of Programs
3.3.1 Predicate Transformation Issues
3.4 Specification-Based Logic Coverage
3.5 Logic Coverage of Finite State Machines
3.6 Disjunctive Normal Form Criteria
3.7 Bibliographic Notes
4 Input Space Partitioning
4.1 Input Domain Modeling
4.1.1 Interface-Based Input Domain Modeling
4.1.2 Functionality-Based Input Domain Modeling
4.1.3 Identifying Characteristics
4.1.4 Choosing Blocks and Values
4.1.5 Using More than One Input Domain Model
4.1.6 Checking the Input Domain Model
4.2 Combination Strategies Criteria
4.3 Constraints among Partitions
4.4 Bibliographic Notes
5 Syntax-Based Testing
Part 3 Applying Criteria in Practice
6 Practical Considerations
7 Engineering Criteria for Technologies
8 Building Testing Tools
9 Challenges In Testing Software
List of Criteria
Bibliography
Index