第1章 软件测试概述 1
1.1 软件测试的背景 1
1.1.1 软件的缺陷及其影响 1
1.1.2 软件测试的产生与发展 2
1.2 软件测试的基本概念 4
1.2.1 软件测试的定义 4
1.2.2 软件测试用例 4
1.2.3 软件测试环境 7
1.2.4 软件测试人员的要求 8
小结 8
习题 8
第2章 软件开发过程与软件测试 9
2.1 软件开发过程概述 9
2.1.1 软件开发的阶段、活动及角色 9
2.1.2 软件开发的过程模型 10
2.1.3 软件测试与软件开发的关系 13
2.2 软件测试的基本原则 13
2.3 软件测试方法的分类 15
2.3.1 静态测试与动态测试 15
2.3.2 黑盒测试与白盒测试 16
2.3.3 人工测试与自动化测试 17
2.3.4 其他测试分类 17
2.4 软件测试方法在软件开发过程的运用 18
2.5 软件测试的过程模型 18
2.5.1 V-model 18
2.5.2 W-model 19
2.5.3 H-model 20
2.5.4 X-model 21
2.5.5 Pretest-model 22
2.5.6 测试模型的使用 23
小结 24
习题 24
第3章 白盒测试 25
3.1 白盒测试基本概念 25
3.2 静态白盒测试方法 25
3.2.1 检查设计和代码 26
3.2.2 正式审查 26
3.2.3 编码标准和规范 27
3.2.4 通用代码审查清单 28
3.3 程序复杂度及度量方法 30
3.3.1 流图的概念 30
3.3.2 环形复杂度 32
3.3.3 图矩阵 33
3.4 动态白盒测试方法 33
3.4.1 逻辑覆盖法 34
3.4.2 基本路径法 41
3.4.3 循环测试 43
3.4.4 数据流测试 45
3.5 白盒测试的流程与要求 49
3.5.1 白盒测试流程 49
3.5.2 白盒测试要求 50
3.6 白盒测试运用实例 63
小结 67
习题 67
第4章 黑盒测试 68
4.1 黑盒测试的基本概念 68
4.2 黑盒测试方法 68
4.2.1 等价类划分法 69
4.2.2 边界值分析法 75
4.2.3 决策表法 78
4.2.4 因果图法 80
4.2.5 其他黑盒测试方法 83
4.3 黑盒测试的依据和流程 85
4.3.1 黑盒测试的依据 85
4.3.2 黑盒测试的流程 86
4.4 黑盒测试运用实例 86
4.5 黑盒测试与白盒测试的比较 89
4.5.1 白盒测试的优缺点 89
4.5.2 黑盒测试的优缺点 89
4.5.3 黑盒测试与白盒测试的比较 89
小结 90
习题 90
第5章 单元测试、集成测试和系统测试 91
5.1 单元测试基本概念 91
5.1.1 单元测试的任务 91
5.1.2 单元测试的环境 93
5.1.3 单元测试的过程 94
5.2 单元测试的策略与方法 95
5.2.1 静态测试与动态测试相结合 95
5.2.2 白盒测试与黑盒测试相结合 95
5.2.3 人工测试与自动化测试相结合 95
5.3 集成测试的概述 96
5.3.1 集成测试的定义 96
5.3.2 集成测试的目标 96
5.4 集成测试的方法 96
5.4.1 大爆炸集成测试 96
5.4.2 自顶向下集成测试 97
5.4.3 自底向上集成测试 98
5.4.4 三明治集成测试 99
5.4.5 其他集成测试策略 99
5.5 集成测试阶段的测试过程 101
5.5.1 集成测试计划阶段 101
5.5.2 集成测试设计阶段 102
5.5.3 集成测试实施阶段 102
5.5.4 集成测试执行阶段 103
5.5.5 集成测试评估阶段 104
5.6 集成测试与单元测试的比较 104
5.6.1 测试的单元不同 104
5.6.2 测试的依据不同 104
5.6.3 测试的空间不同 104
5.6.4 测试使用的方法不同 104
5.7 系统测试的概述 104
5.7.1 系统测试定义和技术要求 104
5.7.2 系统测试的内容 105
5.8 系统测试的方法与过程 108
5.8.1 系统测试方法 108
5.8.2 系统测试过程 109
小结 112
习题 112
第6章 面向对象的测试 113
6.1 面向对象测试的基本概念 113
6.1.1 面向对象技术的特点及其对软件测试的影响 113
6.1.2 面向对象的测试模型 117
6.2 面向对象的测试方法概述 117
6.2.1 面向对象的测试方法 117
6.2.2 面向对象测试的相关概念 118
6.3 面向对象的单元测试(类测试) 119
6.3.1 基于服务的测试 120
6.3.2 基于状态的测试 123
6.3.3 测试驱动的实现与代码的组织 130
6.4 面向对象的集成测试和系统测试 137
6.4.1 面向对象的集成测试 137
6.4.2 面向对象的系统测试 139
小结 141
习题 141
第7章 软件测试自动化 142
7.1 软件测试自动化的基本概念 142
7.1.1 测试自动化的定义 142
7.1.2 自动化测试使用的术语和技能 143
7.1.3 自动化测试的设计和体系结构 144
7.1.4 自动化测试的过程模型 145
7.1.5 自动化测试的脚本编写与测试运行 147
7.2 自动化测试的方案与选择 147
7.2.1 自动化测试的前提条件 147
7.2.2 自动化测试适合的场合 147
7.2.3 自动化测试选择原则 148
7.3 自动化测试的工具与选择 149
7.3.1 自动化测试工具分类 149
7.3.2 自动化测试工具的选择 150
小结 151
习题 152
第8章 QTP测试工具 153
8.1 QTP简介 153
8.1.1 QTP的启动 153
8.1.2 QTP的操作 153
8.2 QTP的基本功能 155
8.2.1 录制与编辑测试脚本 156
8.2.2 调试与运行测试脚本 161
8.2.3 分析测试结果 162
8.3 QTP的测试使用 164
8.3.1 录制测试脚本与执行 164
8.3.2 基本测试 168
8.3.3 数据驱动测试 175
小结 179
习题 179
第9章 LoadRunner测试工具 180
9.1 LoadRunner简介 180
9.1.1 性能测试的基本概念 180
9.1.2 LoadRunner概述 181
9.2 LoadRunner的基本功能 182
9.2.1 创建虚拟用户 182
9.2.2 创建负载 182
9.2.3 实时监测 183
9.2.4 分析测试结果 183
9.2.5 重复测试保证系统发布的高性能 183
9.2.6 其他特性 183
9.3 使用LoadRunner负载/压力测试 184
9.3.1 制定负载测试计划 184
9.3.2 开发测试脚本 186
9.3.3 创建运行场景 189
9.3.4 运行测试场景 195
9.3.5 监视与分析结果 196
9.4 LoadRunner测试实例 200
9.4.1 录制与回放 200
9.4.2 单机运行测试脚本 205
9.4.3 创建场景并进行配置 205
9.4.4 执行测试场景 210
9.4.5 结果分析 212
9.4.6 实例总结 215
小结 216
习题 216
第10章 软件测试管理 217
10.1 测试计划 217
10.1.1 测试计划的目标 217
10.1.2 测试计划的作用 219
10.1.3 测试策略的制订 219
10.1.4 测试计划的制订 220
10.1.5 测试计划模板 221
10.2 测试范围分析与工作量估算 223
10.2.1 测试范围分析 223
10.2.2 测试工作量估算 224
10.3 资源安排和进度管理 225
10.3.1 确定测试资源 225
10.3.2 测试进度管理 226
10.4 测试风险的控制 227
10.4.1 风险管理的要素与方法 228
10.4.2 常见的风险与特性 229
10.5 测试报告与测试评估 230
10.5.1 测试报告 230
10.5.2 测试评估 232
10.6 测试管理工具 235
10.6.1 测试管理系统的基本构成 235
10.6.2 测试管理工具简介 236
小结 238
习题 239
第11章 软件质量保证 240
11.1 软件质量标准 240
11.1.1 软件质量标准 240
11.1.2 衡量软件质量常用的指标 241
11.2 工作现场测试和软件质量保证 242
11.2.1 现场测试 242
11.2.2 软件质量保证 242
11.3 能力成熟度模型 243
11.3.1 CMM的引入和定义 243
11.3.2 CMM的基本内容 244
11.4 ISO 9001 246
11.4.1 ISO 9000系列标准的引入 246
11.4.2 ISO 9001简介 247
11.5 IEEE简介 249
11.5.1 IEEE概述 249
11.5.2 IEEE 829测试文档国际标准 250
小结 251
习题 251
第12章 手机软件测试案例 252
12.1 手机基本知识 252
12.1.1 手机的主要功能 252
12.1.2 手机的基本结构 254
12.1.3 手机软件测试时间 254
12.2 手机软件测试流程和方法 255
12.2.1 手机测试的流程 255
12.2.2 手机测试的方法 255
12.2.3 手机测试常用的技术 256
12.2.4 测试相关文档说明 257
12.3 中国移动智能终端系统软件测试 259
12.3.1 中国移动智能终端系统简介 259
12.3.2 系统架构 261
12.3.3 测试需求分析 264
12.3.4 测试用例的设计与实现 266
12.3.5 撰写测试报告 278
12.3.6 测试结果分析 288
12.4 手机软件测试工程师的素质要求 289
12.4.1 项目领导的任务和能力 289
12.4.2 管理员的工作内容及技能 289
12.4.3 测试工程师的职责和素质 289
小结 290
习题 290
参考文献 291