第1部分 软件测试基础 1
第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 软件可靠性 3
1.2.3 软件错误 4
1.3 软件测试的基本知识 4
1.3.1 软件测试的背景和意义 4
1.3.2 软件测试的定义 6
1.3.3 软件测试的分类 7
1.3.4 软件测试的过程 14
1.3.5 软件测试与软件开发过程的关系 15
1.3.6 正确认识软件测试 15
1.4 软件测试职业 18
1.4.1 软件测试职业和职位 18
1.4.2 软件测试职业素质 18
1.4.3 软件测试人才现状 18
1.5 习题 19
第2章 白盒测试 20
2.1 静态白盒测试和动态白盒测试 20
2.2 白盒测试的重点及其对策 21
2.3 白盒测试的测试用例设计方法 22
2.3.1 逻辑覆盖 22
2.3.2 路径测试 24
2.3.3 数据流测试 26
2.4 白盒测试的覆盖准则 28
2.5 白盒测试的工具 29
2.6 代码的持续集成及其对测试的影响 31
2.7 习题 34
第3章 黑盒测试 35
3.1 静态黑盒测试和动态黑盒测试 35
3.2 黑盒测试的基本测试用例设计方法 35
3.2.1 等价类划分 35
3.2.2 边界值分析 39
3.2.3 因果图 42
3.2.4 判定表驱动测试 43
3.2.5 正交实验设计法 46
3.3 根据需求文档定义测试需求 51
3.3.1 测试人员及早介入 51
3.3.2 验证需求 51
3.3.3 明确需求和功能路径之间的关系,设计有效测试 52
3.3.4 明确需求用例场景(使用情况、可选路径、异常路径等),设计有效测试 54
3.3.5 以ATM系统为例,设计和组织系统测试用例 54
3.4 习题 58
第4章 软件自动化测试 60
4.1 软件自动化测试基础 60
4.1.1 软件自动化测试的意义 60
4.1.2 软件自动化测试的定义 62
4.1.3 软件自动化回归测试 62
4.1.4 软件自动化测试的原理和方法 63
4.1.5 软件自动化测试的引入和评价 64
4.1.6 软件自动化测试的限制 65
4.2 软件自动化测试工具 66
4.2.1 软件自动化测试工具的特征 66
4.2.2 软件自动化测试工具的分类 67
4.2.3 软件自动化测试工具的选择 69
4.3 软件自动化测试脚本开发技术 70
4.3.1 软件自动化测试脚本分类 70
4.3.2 软件自动化测试脚本开发技术 72
4.4 WinRunner7.6测试工具的运用 72
4.4.1 WinRunner7.6介绍 72
4.4.2 使用WinRunner 73
4.4.3 设定GUI Map 75
4.4.4 编辑GUI Map 76
4.4.5 学习虚拟对象 77
4.4.6 创建测试 77
4.4.7 同步点 77
4.4.8 GUI检查点 78
4.4.9 图像检查点 79
4.4.10 文字检查点 79
4.4.11 使用TSL修改脚本 79
4.4.12 建立数据驱动脚本 79
4.4.13 建立批测试 79
4.5 习题 79
第5章 性能测试 80
5.1 性能测试的概念 80
5.2 客户端性能测试 80
5.2.1 并发性能测试 80
5.2.2 疲劳强度测试 83
5.2.3 大数据量测试和速度测试 84
5.3 网络性能测试 84
5.3.1 网络应用性能分析 84
5.3.2 网络应用性能监控 84
5.3.3 网络预测 84
5.4 服务器端性能测试 85
5.5 用产品级数据库进行性能测试 85
5.6 性能测试工具LoadRunner 87
5.6.1 创建虚拟用户 87
5.6.2 创建真实的负载 90
5.6.3 实时检测 90
5.6.4 分析结果以及精确定位问题所在 90
5.6.5 重复测试保证系统发布的高性能 91
5.7 习题 91
第6章 兼容性测试 92
6.1 兼容性测试的概念 92
6.2 软件兼容的平台和应用程序版本 93
6.3 软件兼容的标准和规范 94
6.3.1 高级标准和规范 94
6.3.2 低级标准和规范 94
6.4 数据共享兼容性 95
6.5 为兼容性测试确定恰当的测试用例和测试数据 95
6.6 兼容性测试环境的管理 96
6.7 习题 96
第7章 可用性测试 97
7.1 可用性测试的概念 97
7.2 可用性好的用户界面 97
7.3 可用性测试时确定目标受众需求的方法 100
7.4 为预期受众定制可使用性测试 101
7.5 习题 101
第8章 安全性测试 103
8.1 安全性测试的基本概念和内容 103
8.2 特定需求和整个系统的安全性测试考虑 104
8.3 软件安全性测试的方法 105
8.4 外购安全性测试 105
8.5 软件安全性分析 105
8.6 习题 108
第9章 特定环境及应用测试 109
9.1 客户端/服务器体系结构测试 109
9.1.1 客户端/服务器体系结构测试方法 109
9.1.2 Web应用的测试 113
9.2 图形用户界面(GUI)测试 141
9.2.1 GUI测试概述 141
9.2.2 GUI测试类型 142
9.3 实时系统测试 143
9.4 习题 143
第2部分 面向对象的软件测试 145
第10章 面向对象的软件测试基础 145
10.1 从测试视角看待面向对象 145
10.1.1 测试面向对象软件的不同 145
10.1.2 测试视角 146
10.1.3 从测试视角的角度看待面向对象的概念 147
10.2 面向对象测试的层次 150
10.2.1 面向对象的单元测试——类测试 150
10.2.2 面向对象的集成测试 152
10.2.3 面向对象的系统测试 152
10.3 面向对象测试模型 152
10.3.1 面向对象分析的测试(OOA Test) 153
10.3.2 面向对象设计的测试(OOD Test) 155
10.3.3 面向对象编程的测试(OOP Test) 155
10.4 面向对象测试部分的例子 155
10.5 习题 157
第11章 测试分析与设计模型 158
11.1 指导性审查测试分析和设计模型 158
11.1.1 UML分析和设计模型 158
11.1.2 指导性审查 164
11.2 测试指定类型的模型 167
11.2.1 指导性审查分析模型 167
11.2.2 指导性审查设计模型 169
11.3 习题 172
第12章 类测试 173
12.1 类测试基础 173
12.1.1 类测试的方法 173
12.1.2 类测试的层次 173
12.1.3 类的功能性测试和结构性测试 174
12.1.4 类测试的考虑 175
12.2 构建类测试用例 176
12.2.1 根据OCL规范构建测试用例 176
12.2.2 根据状态转换图构建测试用例 179
12.2.3 类测试系列的充分性标准 184
12.3 构建测试驱动程序 184
12.3.1 测试驱动程序的需求 185
12.3.2 Tester类的设计 187
12.3.3 测试驱动程序代码示例 188
12.4 测试类的层次结构 202
12.4.1 继承 202
12.4.2 子类测试需求 202
12.4.3 组织测试软件 207
12.4.4 测试抽象类 208
12.5 习题 208
第13章 面向对象交互测试 210
13.1 对象交互测试基础 210
13.1.1 对象交互的概念 210
13.1.2 对象交互的类型 211
13.1.3 对象交互测试的考虑 213
13.2 对象交互的测试 214
13.2.1 汇集类的测试 214
13.2.2 协作类的测试 214
13.2.3 测试用例抽样 217
13.3 现成组件的测试 223
13.4 习题 224
第14章 面向对象系统测试 225
14.1 面向对象系统测试基础 225
14.2 系统测试的主要内容 226
14.2.1 功能测试 226
14.2.2 性能测试 226
14.2.3 强度测试 227
14.2.4 安全测试 228
14.2.5 健壮性测试/恢复测试 228
14.2.6 安装/卸载测试 228
14.3 系统测试覆盖率的衡量 229
14.4 习题 229
第3部分 软件测试管理 230
第15章 测试文档和测试计划 230
15.1 测试文档与测试计划的目标 230
15.2 测试计划 231
15.2.1 测试计划的内容 231
15.2.2 编写有效的测试计划 235
15.2.3 确定测试需求 246
15.3 测试说明文档 248
15.4 测试报告文档 252
15.5 测试总结报告 254
15.6 习题 254
第16章 测试管理 256
16.1 测试管理基础 256
16.2 测试执行周期的开始和结束 259
16.3 隔离测试环境和开发环境 260
16.4 测试用例的有效管理 260
16.5 缺陷追踪管理 261
16.5.1 软件缺陷的生命周期和处理流程 262
16.5.2 软件缺陷的严重性和优先级 264
16.5.3 软件缺陷的报告、分离和再现 266
16.5.4 软件缺陷的度量 267
16.5.5 缺陷管理系统——开源工具JIRA介绍 271
16.6 测试的评测 273
16.6.1 覆盖评测 273
16.6.2 质量评测 274
16.7 习题 275
第17章 管理一个测试小组 276
17.1 企业的测试策略和企业的测试人员的组织 276
17.1.1 企业的测试策略 276
17.1.2 测试人员组织 277
17.2 测试小组的职责 277
17.3 测试小组的测试评估 278
17.3.1 评估测试人员的有效性 279
17.3.2 评估测试组的有效性 280
17.3.3 评估测试组测试活动质量 282
17.4 测试小组的管理 283
17.4.1 人才培养 283
17.4.2 成功管理的几大原则 285
17.5 习题 287
参考文献 288