第1章 软件测试概述 1
1.1 软件危机 1
1.1.1 什么是软件危机 1
1.1.2 软件危机的内在原因 1
1.1.3 软件工程和软件危机的解决 2
1.2 软件测试的基本知识 2
1.2.1 软件测试的背景和意义 2
1.2.2 软件测试的定义 4
1.2.3 软件测试的分类 5
1.2.4 软件测试的过程 13
1.2.5 软件测试与软件开发过程的关系 13
1.3 正确认识软件测试 15
1.4 软件测试职业 17
1.4.1 软件测试职业和职位 17
1.4.2 软件测试职业素质 17
1.4.3 软件测试人才现状 17
1.5 习题 18
第2章 白盒测试 19
2.1 白盒测试概述 19
2.2 白盒测试的测试用例设计方法 20
2.3 白盒测试的典型案例 20
2.3.1 逻辑覆盖法典型案例 20
2.3.2 路径覆盖法典型案例 27
2.4 白盒测试的工具 32
2.4.1 白盒测试工具的分类 32
2.4.2 开放源码的Junit的使用 33
2.5 习题 34
第3章 黑盒测试 35
3.1 黑盒测试概述 35
3.2 黑盒测试的主要测试用例设计方法 35
3.2.1 等价类划分 35
3.2.2 边界值分析 36
3.2.3 因果图 37
3.2.4 判定表驱动测试 38
3.2.5 正交实验设计法 39
3.2.6 用例场景法 40
3.3 黑盒测试的典型案例 41
3.3.1 使用等价类划分法设计测试用例 41
3.3.2 使用边界值分析法设计测试用例 48
3.3.3 使用因果图法设计测试用例 50
3.3.4 使用判定表法设计测试用例 53
3.3.5 使用正交表法设计测试用例 55
3.3.6 使用用例场景法设计测试用例 56
3.4 习题 58
第4章 蜕变测试 59
4.1 蜕变测试概述 59
4.2 蜕变测试的典型案例 60
4.2.1 数学应用案例 60
4.2.2 图论应用案例 61
4.2.3 搜索程序应用案例 62
4.2.4 编译器应用案例 62
4.2.5 图形图像应用案例 63
4.2.6 其他应用案例 64
4.3 习题 64
第5章 测试流程和测试文档 65
5.1 测试流程 65
5.2 测试文档概述 66
5.3 编写测试文档 67
5.3.1 测试计划的内容和实例 67
5.3.2 测试说明的内容和实例 83
5.3.3 测试报告的内容和实例 94
5.4 习题 108
第6章 WinRunner功能测试工具的运用 109
6.1 WinRunner介绍 109
6.1.1 WinRunner的测试模式 109
6.1.2 WinRunner的测试过程 109
6.1.3 WinRunner的样本软件 110
6.2 WinRunner使用概述 110
6.2.1 WinRunner主窗口 110
6.2.2 WinRunner测试窗口 112
6.2.3 加载WinRunner插件窗口 112
6.3 WinRunner如何识别GUI对象 113
6.3.1 识别GUI对象 113
6.3.2 使用GUI Spy查看GUI对象的属性 114
6.4 WinRunner如何学习被测软件的GUI对象 116
6.4.1 两种GUI map的工作模式 116
6.4.2 WinRunner学习GUI对象的方式 117
6.5 录制测试脚本 120
6.5.1 两种录制模式 120
6.5.2 如何录制测试脚本 121
6.5.3 如何阅读测试脚本 123
6.5.4 执行测试脚本并分析结果 124
6.6 同步点 126
6.6.1 何时使用同步点 126
6.6.2 如何建立同步点 126
6.6.3 执行测试并分析结果 129
6.7 GUI对象检查点 130
6.7.1 检查GUI对象 130
6.7.2 插入GUI对象检查点 130
6.7.3 执行测试并分析结果 132
6.8 图像检查点 135
6.8.1 检查应用程序的图像 135
6.8.2 建立图像检查点 135
6.8.3 检视结果 137
6.9 使用TSL修改脚本 138
6.9.1 录制基本脚本 138
6.9.2 使用函数生成器在测试脚本中加入函数 139
6.9.3 在测试脚本中加入判断式 140
6.9.4 执行测试脚本 140
6.10 建立数据驱动脚本 141
6.10.1 数据驱动脚本概述 141
6.10.2 将测试脚本转换为数据驱动测试脚本 142
6.10.3 使用regular expression调整测试脚本 145
6.10.4 执行脚本并分析结果 145
6.11 文字检查点 146
6.11.1 文字检查点概述 146
6.11.2 建立文字检查点 147
6.11.3 检查文字 150
6.11.4 执行测试脚本 151
6.12 建立批测试 151
6.12.1 批测试概述 151
6.12.2 建立批测试 152
6.12.3 执行批测试 152
6.12.4 分析测试结果 153
6.13 维护测试脚本 154
6.13.1 在GUI Map中改变GUI对象 154
6.13.2 新增GUI对象到GUI Map 156
6.13.3 使用Run Wizard自动更新GUI Map 157
6.14 习题 157
第7章 LoadRunner负载测试工具的运用 158
7.1 LoadRunner负载测试工具概述 158
7.1.1 LoadRunner的重要组件 158
7.1.2 LoadRunner的例子应用程序 159
7.2 LoadRunner的测试过程 160
7.3 制订负载测试计划 160
7.3.1 分析应用程序 160
7.3.2 确定测试目标 161
7.3.3 计划怎样执行LoadRunner 161
7.4 开发测试脚本 161
7.4.1 录制基本的用户脚本 161
7.4.2 完善测试脚本 163
7.4.3 运行参数设定 170
7.4.4 单机运行测试脚本 171
7.5 创建运行场景 172
7.5.1 选择场景类型Manual Scenario 173
7.5.2 选择场景类型Manual Scenario with Percentage Mode 177
7.5.3 选择场景类型Goal-Oriented Scenario 177
7.6 分析以及监视场景 179
7.7 分析实时监视图表 181
7.8 利用Analysis分析结果 182
7.8.1 分析事务的响应时间 182
7.8.2 分解页面 183
7.8.3 确定WebServer的问题 184
7.9 习题 184
第8章 TestDirector测试管理工具的运用 185
8.1 TestDirector概述 185
8.1.1 TestDirector简介 185
8.1.2 TestDirector的窗口 185
8.1.3 TestDirector的测试管理过程 186
8.2 需求定义 187
8.2.1 定义测试范围 188
8.2.2 创建测试需求大纲 188
8.2.3 定义需求 189
8.2.4 分析需求定义 189
8.2.5 TestDirector需求模块 190
8.3 计划测试 198
8.3.1 定义测试策略 198
8.3.2 定义测试主题 198
8.3.3 定义测试 199
8.3.4 建立测试覆盖 201
8.3.5 设计测试步骤 201
8.3.6 自动测试 202
8.3.7 分析测试计划 202
8.4 执行测试 203
8.4.1 建立测试集合 203
8.4.2 测试执行表 204
8.4.3 执行测试 205
8.4.4 分析测试结果 207
8.5 跟踪缺陷 209
8.5.1 添加缺陷 209
8.5.2 检查新缺陷 211
8.5.3 修改开放缺陷 212
8.5.4 验证缺陷 212
8.5.5 分析缺陷数据 212
8.6 习题 212
参考文献 213