第1章 软件测试基础 1
1.1 软件开发过程 1
1.1.1 线性顺序模型 2
1.1.2 原型实现模型 3
1.1.3 螺旋模型 4
1.2 软件测试概述 6
1.2.1 软件测试发展 6
1.2.2 软件测试定义 7
1.2.3 软件缺陷的定义 7
1.2.4 软件测试分类 9
1.3 软件测试过程模型 11
1.3.1 V模型 11
1.3.2 W模型 11
1.3.3 H模型 12
1.4 软件测试原则与误区 13
1.4.1 软件测试原则 13
1.4.2 软件测试的误区 14
本章小结 16
第2章 黑盒测试用例设计方法 17
2.1 测试用例设计概述 17
2.1.1 测试用例的表示 18
2.1.2 测试用例与需求 18
2.1.3 设计测试用例的步骤 19
2.2 等价类划分法 19
2.2.1 确定等价类的原则 20
2.2.2 设计用例的步骤 20
2.2.3 等价类划分法应用 21
2.2.4 实践体会 22
2.3 边界值分析法 22
2.3.1 边界值法的原则 23
2.3.2 内部边界 23
2.3.3 外部边界 24
2.4 决策表法 25
2.4.1 决策表的结构 25
2.4.2 决策表的化简 26
2.5 场景法 28
2.5.1 用例规约 28
2.5.2 场景法 30
2.6 正交实验法 31
2.6.1 正交实验表 31
2.6.2 设计用例的步骤 32
本章小结 33
第3章 白盒测试用例设计方法 34
3.1 逻辑覆盖测试 34
3.1.1 语句覆盖 34
3.1.2 判定覆盖 36
3.1.3 条件覆盖 36
3.1.4 判定/条件覆盖 37
3.1.5 组合条件覆盖 38
3.1.6 路径覆盖 40
3.2 基本路径测试 40
3.2.1 控制流图 40
3.2.2 环形复杂度 42
3.2.3 独立路径 44
3.2.4 基本路径法的应用 44
3.3 循环测试 45
3.4 代码检查 46
3.4.1 代码审查 47
3.4.2 代码走查 48
3.4.3 桌面检查 48
3.5 Rational Purify应用 48
3.5.1 Purfity概述 49
3.5.2 Purify运用实践 49
本章小结 52
第4章 灰盒测试用例设计方法 55
4.1 灰盒测试概述 55
4.2 SQL语句 56
4.2.1 SELECT语句 57
4.2.2 INSERT语句 60
4.2.3 UPDATE语句 60
4.2.4 DELETE语句 60
4.3 Oracle存储过程 61
4.3.1 基本语法 62
4.3.2 已命名异常 63
4.3.3 对存储过程的调用 64
4.4 Eclipse基本调试技巧 65
4.4.1 设置断点 66
4.4.2 条件断点 66
4.4.3 变量断点 67
4.4.4 方法断点 67
4.4.5 改变变量值 68
4.4.6 重新调试 68
4.4.7 异常断点 69
4.5 问题定位 69
本章小结 71
第5章 接口测试 72
5.1 接口测试概述 72
5.2 接口测试的流程 72
5.2.1 需求分析和设计评审 73
5.2.2 测试框架和技术选型 73
5.2.3 测试计划制定 73
5.2.4 测试环境搭建 73
5.2.5 测试用例设计和评审 74
5.2.6 测试实现和执行 74
5.2.7 持续集成 74
5.3 JUnit 75
5.3.1 JUnit框架的组成 75
5.3.2 JUnit应用示例 76
5.3.3 SetUp和TearDown方法 78
5.4 HtmlUnit 80
5.5 HttpUnit 81
5.5.1 工作原理 81
5.5.2 特征 82
5.5.3 HttpUnit实践 82
本章小结 85
第6章 功能测试 86
6.1 功能测试概述 86
6.2 功能测试的策略 87
6.3 功能测试的内容 88
6.4 功能测试的方法 90
6.5 HP QuickTest Professional 91
6.5.1 QTP工作流程 92
6.5.2 测试脚本的录制与执行 92
6.5.3 测试脚本分析 94
6.5.4 测试结果的分析 95
6.5.5 检查点技术 96
6.5.6 参数化技术 102
6.5.7 输出值 103
6.5.8 动作切分 104
6.5.9 测试对象库的创建和使用 106
6.6 IBM Rational Robot 108
6.6.1 使用Robot录制GUI脚本 109
6.6.2 回放脚本 110
6.6.3 验证点的使用 110
6.6.4 数据池Datapools的使用 118
6.7 IBM Rational Functional Tester 121
6.7.1 录制脚本 121
6.7.2 脚本的回放 123
6.7.3 验证点 125
6.7.4 测试对象映射 126
6.7.5 RFT数据池 128
本章小结 131
第7章 性能测试 132
7.1 性能测试基础 132
7.1.1 性能测试的分类 133
7.1.2 性能计数器 133
7.2 性能测试流程 137
7.2.1 性能测试的计划 137
7.2.2 性能测试的设计 137
7.2.3 性能测试的执行 138
7.2.4 测试结果的分析 138
7.3 LoadRunner应用 138
7.3.1 脚本录制与开发 139
7.3.2 场景设计与运行 154
7.3.3 结果分析 159
7.4 Rational Performance Tester应用 170
7.4.1 工具的基本使用 170
7.4.2 测试验证点的设置 173
7.4.3 数据池的应用 174
7.5 性能测试结果分析 176
7.5.1 性能分析原则 176
7.5.2 常见瓶颈症状 177
本章小结 178
第8章 本地化测试 179
8.1 本地化测试概述 179
8.1.1 本地化测试的定义 179
8.1.2 本地化测试与其他测试的区别 180
8.1.3 本地化测试的类型 180
8.1.4 本地化软件缺陷的分类 183
8.1.5 本地化测试流程 185
8.2 简体中文本地化翻译语言文字规范 186
8.2.1 本地化语言翻译技巧 186
8.2.2 一般翻译规则 190
8.3 本地化测试工程师 191
8.3.1 基础技能 191
8.3.2 专业基础知识 192
8.3.3 职业素质 192
本章小结 193
第9章 网络互联与测试 194
9.1 网络基础知识 194
9.1.1 OSI的七层模型 194
9.1.2 TCP/IP协议簇 196
9.1.3 IP地址分类 197
9.2 常用网络测试命令 198
9.2.1 ping命令 198
9.2.2 tracert命令 201
9.2.3 ipconfig命令 203
9.2.4 arp命令 205
9.2.5 ftp命令 206
9.3 常见网络故障分析与处理 206
9.3.1 物理层故障分析 207
9.3.2 数据链路层故障分析 208
9.3.3 网络层故障分析 209
9.3.4 传输层及高层故障分析 209
9.3.5 用Ping命令检测网络故障 210
本章小结 210
第10章 测试环境搭建 211
10.1 测试环境概述 211
10.1.1 什么是测试环境 211
10.1.2 测试环境的组成 211
10.1.3 测试环境的管理 212
10.1.4 测试环境的备份与恢复 212
10.2 Windows环境下Web测试环境搭建 213
10.2.1 操作系统的配置与安装 213
10.2.2 JDK+Tomcat+MySQL环境的搭建 213
10.2.3 JUnit单元测试环境的搭建 217
10.2.4 常见问题分析及对策 217
10.3 Linux环境下的测试环境搭建 218
10.3.1 Linux下JDK的安装配置 218
10.3.2 Linux下Tomcat的安装配置 221
10.3.3 Linux下MySql的安装与配置 222
10.3.4 Linux下的其他测试工具 225
10.3.5 常见问题分析及对策 226
10.4 自动化测试环境的搭建 228
10.4.1 Rational自动化测试软件的安装 228
10.4.2 LoadRunner的安装 228
10.4.3 QuickTest Professional的安装 229
10.4.4 常见问题分析 229
本章小结 229
第11章 软件测试管理 230
11.1 缺陷管理 230
11.1.1 缺陷生命周期 230
11.1.2 缺陷报告的写作 232
11.2 团队管理 232
11.2.1 组织结构 232
11.2.2 素质要求 234
11.2.3 激励方法 235
11.3 风险管理 235
11.4 过程管理 237
11.4.1 测试需求分析 237
11.4.2 测试计划 239
11.4.3 测试设计 240
11.4.4 测试开发 241
11.4.5 测试执行 243
11.5 Rational TestManager应用 243
本章小结 244
附录A 代码检查 245
附录B 测试用例模板 247
附录C 自动化测试工具简表 249
附录D HTTP状态码 255
附录E 软件测试英语词汇 259
附录F FTP内部命令 261
参考文献 264