前言
第1章 软件测试概述 1
1.1 什么是软件测试 1
1.2 软件测试的目的 1
1.3 对软件测试的理解 2
1.4 软件测试的原则 4
1.5 测试人员的职责 5
1.6 测试人员的素质要求 7
1.7 软件测试职业岗位分析 8
习题 9
第2章 软件测试基础 10
2.1 软件测试模型 10
2.1.1 V模型 10
2.1.2 h模型 11
2.1.3 模型小结 12
2.2 确认和验证 13
2.3 软件测试分类 13
2.4 软件测试流程概述 15
习题 20
第3章 软件质量与测试 22
3.1 软件质量的重要性 22
3.2 软件质量问题的原因 24
3.3 对软件质量特性的理解 25
3.3.1 软件质量特性的定义 25
3.3.2 软件质量特性对于测试人员的意义 27
3.4 基于软件质量特性的测试 27
3.4.1 功能性测试 27
3.4.2 可靠性测试 28
3.4.3 易用性测试 29
3.4.4 兼容性测试 31
3.5 ISO 9000标准 33
3.6 软件能力成熟度模型(CMM) 34
习题 35
第4章 软件测试技术和方法 37
4.1 静态测试和动态测试 37
4.1.1 静态测试 37
4.1.2 动态测试 38
4.2 黑盒和白盒测试概述 38
4.3 黑盒测试技术 39
4.3.1 等价类划分 40
4.3.2 边值分析 43
4.3.3 因果图法 46
4.3.4 ALAC测试 49
4.3.5 正交实验设计法 50
4.3.6 决策表驱动测试 52
4.3.7 错误推测法 53
4.4 白盒测试技术 54
4.4.1 白盒测试简介 54
4.4.2 程序结构分析测试 54
4.4.3 逻辑覆盖测试 56
4.4.4 路径分析测试 60
4.4.5 程序插装测试 61
4.4.6 程序变异测试 62
4.5 实例设计 62
4.6 测试技术和方法的应用原则与技巧 67
4.6.1 应用原则 67
4.6.2 应用技巧 67
4.6.3 对黑盒、白盒测试方法的总结 68
习题 69
第5章 软件测试类型 71
5.1 单元测试 71
5.1.1 单元测试的步骤 71
5.1.2 单元测试的内容 72
5.1.3 单元测试用例的设计 74
5.1.4 单元测试的规则 75
5.2 集成测试 75
5.2.1 集成测试概述 75
5.2.2 集成测试的策略和方法 76
5.2.3 集成测试案例 80
5.2.4 Counter软件集成测试实例 83
5.3 确认测试 89
5.3.1 确认测试概述 89
5.3.2 确认测试策略 91
5.3.3 确认测试的设计方法 91
5.3.4 确认测试实践 94
5.3.5 确认测试的其他有关内容 95
5.3.6 确认测试实例 96
5.4 系统测试 100
5.4.1 系统测试概述 100
5.4.2 系统测试内容 100
5.4.3 系统测试的技术与工具 102
5.4.4 系统测试实例 103
习题 110
第6章 软件测试管理 111
6.1 测试流程管理 111
6.1.1 测试准备 112
6.1.2 测试实施 115
6.1.3 测试结束 120
6.2 测试资源管理 122
6.3 测试技术管理 124
6.4 测试风险管理 125
习题 126
第7章 软件测试自动化和工具 128
7.1 测试自动化和工具概述 128
7.2 测试脚本技术 130
7.3 测试比较 132
7.4 使用测试自动化和工具要考虑的因素 132
7.5 常用测试工具介绍 133
7.5.1 LoadRunner 135
7.5.2 ClearQuest 143
7.5.3 单元测试工具JUnit 154
习题 162
第8章 单机版五子棋游戏测试实例 164
8.1 五子棋游戏简介 164
8.2 单机版五子棋游戏系统介绍 165
8.2.1 系统概述 165
8.2.2 系统运行环境 165
8.2.3 功能需求描述 165
8.3 单机版五子棋游戏的测试要求 167
8.3.1 测试范围 167
8.3.2 测试任务 167
8.3.3 测试清单 168
8.4 单元测试案例 169
8.4.1 单元测试计划 170
8.4.2 单元测试的设计与执行 171
8.4.3 单元测试报告 182
8.5 集成测试案例 182
8.5.1 FiveStone类中各方法的调用关系 183
8.5.2 集成测试计划 183
8.5.3 集成测试设计 184
8.5.4 集成测试报告 187
8.6 系统测试案例 187
8.6.1 系统测试计划 187
8.6.2 系统测试的设计与执行 188
8.6.3 系统测试报告 194
附录 软件测试术语及定义 195
参考文献 198