前言 1
第1部分 软件测试基础 3
第1章 软件测试概述 3
1.1 软件测试的意义 3
1.1.1 软件缺陷的典型例子 3
1.1.2 软件缺陷的产生原因 4
1.1.3 软件测试的目标 5
1.2 软件测试的发展史及现状 6
1.2.1 软件测试的发展史 6
1.2.2 软件测试的国内外现状 7
1.2.3 软件测试的发展趋势 8
1.3 软件测试的特点和原则 9
1.3.1 软件测试的特点 9
1.3.2 软件测试的基本原则 9
1.4 软件测试的基本方法 11
1.5 软件测试中的认识误区 11
1.6 软件测试的心理学问题 12
1.7 测试人员的能力要求和职业前景 13
1.7.1 测试人员的能力要求 13
1.7.2 测试人员的职业前景 15
1.8 小结 15
第2章 软件测试的数学基础 16
2.1 集合论 16
2.1.1 集合成员关系 16
2.1.2 集合定义 16
2.1.3 空集 17
2.1.4 维恩图 17
2.1.5 集合操作 17
2.1.6 集合关系 17
2.1.7 子集划分 18
2.2 函数 18
2.2.1 函数的定义 18
2.2.2 几种特殊的函数 19
2.2.3 复合函数 19
2.2.4 逆函数 20
2.3 图论 20
2.3.1 图的定义及相关特性 20
2.3.2 图的连通性 23
2.3.3 图的矩阵表示 24
2.3.4 树 25
2.4 用于测试的图 26
2.4.1 程序图 26
2.4.2 有限状态机 27
2.4.3 状态图 28
第3章 软件测试过程 29
3.1 概述 29
3.2 制订测试计划 30
3.2.1 软件测试的需求分析 32
3.2.2 软件测试的环境分析 35
3.2.3 测试管理 36
3.2.4 软件测试计划的编写 37
3.2.5 软件测试计划的审核 38
3.3 测试计划实施 38
3.3.1 软件测试的基本步骤 38
3.3.2 软件测试用例设计 39
3.3.3 程序的静态测试 42
3.3.4 调试 44
3.4 测试效果分析 45
第2部分 软件测试方法 51
第4章 白盒测试 51
4.1 白盒测试概述 51
4.2 典型的白盒测试方法 51
4.2.1 逻辑覆盖法 51
4.2.2 控制结构测试 54
4.3 白盒测试的典型案例 59
4.4 白盒测试的工具 68
4.4.1 工具的分类 68
4.4.2 JUnit简介 68
第5章 黑盒测试 71
5.1 黑盒测试概述 71
5.2 黑盒测试的测试用例设计方法 72
5.2.1 等价类划分法 72
5.2.2 边界值分析法 78
5.2.3 因果图法 80
5.2.4 错误推测法 83
5.2.5 功能图分析法 83
5.2.6 场景法 84
第3部分 软件测试的实用技术 91
第6章 单元测试 91
6.1 单元测试概述 91
6.2 单元测试方法 92
6.3 单元测试过程 92
6.4 单元测试活动 93
6.4.1 角色和职责 93
6.4.2 单元测试计划 94
6.4.3 测试方法 94
6.4.4 测试范围 94
6.5 测试过程准则 95
6.6 单元测试用例设计 96
6.7 单元测试执行 96
6.7.1 搭建单元测试环境 96
6.7.2 单元测试用例设计 97
6.7.3 单元测试策略 98
6.7.4 执行单元测试 99
6.7.5 单元测试常用工具简介 100
6.8 单元测试报告 100
6.9 小结 100
第7章 集成测试 101
7.1 集成测试概述 101
7.2 集成测试的执行时间和部门 101
7.3 集成测试的原则 101
7.4 集成测试的内容 102
7.4.1 集成功能测试 102
7.4.2 接口测试 102
7.4.3 全局数据结构测试 102
7.4.4 资源测试 103
7.4.5 性能和稳定性测试 103
7.5 集成测试的方法 103
7.6 集成测试的过程 104
7.7 集成测试举例 105
7.8 集成测试的经验 106
第8章 性能测试 107
8.1 性能测试概述 107
8.1.1 性能测试的概念 107
8.1.2 性能测试的目的 107
8.1.3 性能测试的常用术语 108
8.1.4 性能测试的准备工作 108
8.2 性能测试的内容 109
8.2.1 在客户端的性能测试 110
8.2.2 在网络上的性能测试 111
8.2.3 在服务器上的性能测试 111
8.3 性能测试的测试用例 111
8.3.1 客户端性能测试用例 111
8.3.2 网络性能测试用例 113
8.3.3 服务器性能测试用例 113
8.4 性能测试的自动化工具和操作方法 114
8.4.1 性能测试工具介绍 114
8.4.2 自动化性能测试工具LoadRunner 115
8.5 性能测试案例 121
8.6 小结 123
第9章 确认测试、系统测试和验收测试 124
9.1 确认测试的概念和活动 124
9.2 系统测试的概念和类型 125
9.2.1 系统测试的概念 125
9.2.2 系统测试的主要类型 125
9.2.3 系统测试与集成测试的区别 126
9.2.4 系统测试的过程 126
9.3 回归测试 127
9.3.1 回归测试的概念 127
9.3.2 回归测试的策略 127
9.3.3 回归测试的过程 128
9.4 验收测试 129
9.4.1 验收测试的概念 129
9.4.2 验收测试的策略 129
9.5 小结 130
第10章 软件测试的其他技术 131
10.1 可用性测试 131
10.2 容错性测试 131
10.3 易用性测试 132
10.4 安全性测试 133
10.5 可靠性测试 133
10.6 需求测试 135
10.7 小结 136
第4部分 软件测试自动化 139
第11章 软件自动化测试概述 139
11.1 软件自动化测试的含义和好处 139
11.2 软件自动化测试的引入和实施 140
11.2.1 对自动化测试的认识误区 140
11.2.2 自动化测试的实施流程 141
11.3 软件自动化测试的原理、方法和级别 143
11.3.1 软件自动化测试的原理和方法 143
11.3.2 软件自动化测试的级别 144
11.4 软件自动化测试工具 145
11.4.1 软件自动化测试工具的特征 145
11.4.2 软件自动化测试工具的分类 146
11.4.3 软件自动化测试工具的选择 149
11.4.4 软件自动化测试工具使用应注意的问题 149
11.5 小结 150
第12章 JUnit测试框架 151
12.1 初识JUnit测试框架 151
12.2 JUnit框架分析 155
12.3 用TestCase来工作 156
12.4 创建单元测试方法 159
12.5 TestSuite 160
12.6 Fail和Error 162
12.7 创建TestCalculator全过程 165
12.7.1 创建TestSuite 166
12.7.2 创建TestResult 167
12.7.3 执行测试方法 169
12.8 深入JUnit 4 169
12.8.1 JUnit 4初体验 169
12.8.2 Fixture 175
12.8.3 异常以及时间测试 176
12.8.4 忽略测试方法 177
12.8.5 测试运行器 177
12.8.6 测试套件 177
12.8.7 参数化测试 178
第13章 JUnit和类测试 181
13.1 类测试概念 181
13.1.1 类测试的组成 181
13.1.2 类测试和传统的单元测试 182
13.1.3 类的测试价值 183
13.2 确定类测试用例 184
13.2.1 根据前置和后置状态确定测试用例 185
13.2.2 根据代码确定测试用例 187
13.3 类测试代码实例 189
13.4 JUnit测试的延伸 192
13.4.1 继承类测试 192
13.4.2 接口类测试 194
13.4.3 抽象类测试(一) 197
13.4.4 抽象类测试(二) 202
13.4.5 私有方法测试 204
第14章 自动化测试工具QuickTest Professional 208
14.1 QTP的安装 208
14.2 测试流程 211
14.2.1 QTP 9.2窗口 211
14.2.2 Mercury Tours示例网站 214
14.2.3 QTP测试的流程 214
14.3 录制测试 215
14.3.1 准备录制测试 215
14.3.2 录制测试 215
14.4 运行并分析测试 218
14.5 创建检查点 220
14.5.1 检查点类型 220
14.5.2 检查对象 220
14.5.3 检查网页 221
14.5.4 检查文本 222
14.5.5 检查表格 223
14.5.6 使用检查点运行并分析测试 224
14.6 参数化测试 225
14.6.1 参数化测试的概念 225
14.6.2 参数化测试的步骤 225
14.7 创建输出值 227
14.7.1 输出值的创建 227
14.7.2 使用输出值运行并分析测试 228
14.8 使用正则表达式 230
14.8.1 正则表达式语法 230
14.8.2 使用正则表达式运行并分析测试 230
14.9 将测试拆分为多操作 232
14.10 小结 233
第5部分 软件测试的相关文档 237
第15章 软件测试文档模板 237
15.1 测试大纲写作模板 237
15.2 测试计划写作模板 238
15.3 测试用例写作模板 242
15.4 功能测试报告写作模板 246
15.5 性能测试报告写作模板 248
15.6 集成测试报告写作模板 249
15.7 系统测试报告写作模板 250
15.8 验收测试写作模板 251
15.9 测试分析报告模板 253
参考文献 256