第一部分 软件测试认知篇第1章 软件测试概述 1
1.1 什么是软件 1
1.2 软件的分类 2
1.2.1 按照功能划分 2
1.2.2 按照技术架构划分 2
1.2.3 按照用户划分 2
1.2.4 按照开发的规模划分 3
1.3 什么是Bug 3
1.4 什么是软件测试 5
1.4.1 早期定义 5
1.4.2 标准定义 5
1.5 为什么要进行软件测试 6
1.6 软件测试的分类 8
1.6.1 根据测试特性分类 8
1.6.2 根据开发过程分类 8
1.6.3 根据不同要求分类 9
1.6.4 根据软件特性分类 10
1.7 软件测试的基本步骤 13
1.8 公司里测试部分的组织结构 15
1.8.1 小公司 15
1.8.2 大公司 16
1.8.3 专业的外包公司 16
1.9 软件测试工程师所需具备的素质 16
1.10 软件测试和软件质量的关系 17
1.11 软件测试的基本原则 18
本章小结 19
思考题 19
第2章 软件测试阶段 20
2.1 软件测试过程概述 20
2.2 单元测试 21
2.2.1 单元测试的准备工作 21
2.2.2 单元的界定及常用的测试技术 22
2.3 集成测试 23
2.3.1 集成测试的准备工作 23
2.3.2 模块的界定及常用的测试技术 24
2.4 确认测试 24
2.4.1 确认测试的准则 24
2.4.2 配置审查的内容 25
2.5 系统测试 25
2.5.1 系统测试的准备工作 25
2.5.2 系统测试常用的测试技术 26
2.6 验收测试 26
2.6.1 用户验收测试的准备工作 26
2.6.2 用户验收测试常用的测试技术 26
2.7 回归测试 27
2.7.1 回归测试的准备工作 27
2.7.2 回归测试常用的测试技术 28
本章小结 28
思考题 28
第二部分 软件测试基本技能篇第3章 白盒测试 29
3.1 什么是白盒测试 29
3.1.1 流图 29
3.1.2 环形复杂度 31
3.1.3 图矩阵 31
3.2 白盒测试的常用方法 31
3.2.1 语句覆盖 32
3.2.2 判定覆盖 32
3.2.3 条件覆盖 33
3.2.4 判定/条件覆盖 34
3.2.5 组合覆盖 34
3.2.6 路径覆盖 35
3.2.7 路径测试 36
3.2.8 路径表达式 36
3.2.9 基本路径测试方法 36
3.3 白盒测试案例运用 38
本章小结 40
思考题 41
第4章 黑盒测试 42
4.1 什么是黑盒测试 42
4.2 黑盒测试的常用方法 44
4.2.1 等价类划分法 44
4.2.2 边界值分析法 48
4.2.3 因果图法 52
4.2.4 决策表法 55
4.2.5 测试方法的选择 60
4.3 黑盒测试案例运用 60
4.3.1 用等价类划分法测试保险公司计算保费费率的程序 61
4.3.2 决策表测试应用案例 62
4.4 白盒测试和黑盒测试的比较 63
本章小结 64
思考题 64
第5章 软件缺陷报告 65
5.1 正确面对软件缺陷 65
5.2 软件缺陷的描述 66
5.3 软件缺陷生命周期 67
5.4 软件缺陷的严重性和优先级 68
5.5 分离和再现软件缺陷 69
5.6 软件缺陷的跟踪 71
本章小结 72
思考题 72
第6章 其他专项测试技术 73
6.1 面向对象测试 73
6.1.1 面向对象测试模型 73
6.1.2 面向对象分析的测试 74
6.1.3 面向对象设计的测试 74
6.1.4 面向对象编程的测试 75
6.1.5 面向对象的单元测试 75
6.1.6 面向对象的集成测试 75
6.1.7 面向对象的系统测试 76
6.1.8 面向对象的测试技术 76
6.2 Web测试 77
6.2.1 基于Web的功能测试 77
6.2.2 基于Web的性能测试 78
6.2.3 基于Web的可用性测试 79
6.2.4 基于Web的客户端兼容性测试 80
6.2.5 基于Web的安全性测试 80
6.3 嵌入式软件测试技术 81
本章小结 82
思考题 82
第7章 软件测试流程 83
7.1 制定测试计划 83
7.1.1 软件测试项目的标准 83
7.1.2 测试实施策略的制定 84
7.1.3 测试项目计划阶段的细分 85
7.1.4 测试项目计划的要点 85
7.2 测试设计 87
7.2.1 测试用例设计的方法和管理 87
7.2.2 测试用例设计的特点 88
7.3 执行测试 88
7.3.1 测试阶段目标的检查 88
7.3.2 测试用例执行的跟踪 89
7.3.3 Bug的跟踪和管理 89
7.4 软件质量分析报告及测试总结报告 89
7.4.1 测试的覆盖率 89
7.4.2 Bug分析 90
7.4.3 产品总体质量分析 90
本章小结 91
思考题 91
第8章 软件测试项目管理 92
8.1 软件测试项目管理的概述 92
8.1.1 测试项目 92
8.1.2 测试项目管理 93
8.2 软件测试项目的资源管理 93
8.2.1 人力资源管理 94
8.2.2 测试环境资源 94
8.2.3 工作量的估计 94
8.3 测试项目的进度管理 95
8.3.1 测试项目的里程碑和关键路径 95
8.3.2 进度的数量和质量的双重特性 96
8.3.3 测试项目进度的管理方法 96
8.4 测试项目的风险管理 96
8.4.1 风险的分类 96
8.4.2 风险管理的内容 97
8.4.3 风险评估 97
8.4.4 风险的控制 97
8.5 测试项目的质量和配置管理 98
8.5.1 质量管理的基本原则 98
8.5.2 软件评审 98
8.5.3 配置管理 99
8.6 软件测试文档的管理 100
8.6.1 测试文档的分类管理 101
8.6.2 测试文档的存储和共享 101
8.6.3 文档模板 102
本章小结 102
思考题 102
第9章 自动化测试理论 103
9.1 什么是软件自动化测试 103
9.1.1 软件自动化测试的产生 103
9.1.2 软件自动化测试的定义 104
9.2 自动化测试的作用和优势 104
9.2.1 自动化测试的作用 104
9.2.2 自动化测试的优势 104
9.2.3 应用自动化测试的优点 105
9.3 软件自动化测试工具简述 109
9.4 常用软件自动化测试工具概要 111
本章小结 115
思考题 115
第三部分 软件测试实践篇第10章 测试用例设计 116
10.1 测试用例的基本概念 116
10.1.1 测试用例概念 116
10.1.2 测试用例的特点 117
10.1.3 测试用例的分类 117
10.2 测试用例的设计步骤 118
10.2.1 测试需求分析 118
10.2.2 业务流程分析 119
10.2.3 测试用例设计 119
10.2.4 测试用例评审 119
10.2.5 测试用例更新完善 120
10.3 测试用例的编写 120
10.3.1 测试种类、阶段和用例的关系 120
10.3.2 测试用例一 121
10.3.3 测试用例二 122
10.3.4 测试用例三 125
10.4 其他测试用例实例 129
10.5 测试用例的管理 132
本章小结 133
思考题 133
第11章 Rational Robot测试工具应用 134
11.1 Rational Robot的功能 134
11.2 Robot项目的建立和初始化 135
11.3 产生用于功能测试的GUI脚本 138
11.3.1 设置以及预定义 138
11.3.2 记录GUI脚本 140
11.3.3 在GUI Script中加入特写 144
11.3.4 使用验证点 147
11.3.5 使用Datapools 150
11.3.6 编辑GUI脚本 154
11.3.7 编译GUI脚本 155
11.3.8 调试GUI脚本 156
11.3.9 回放GUI脚本 157
11.3.10 工具栏操作 158
11.4 产生用于性能测试的VU脚本 160
本章小结 165
思考题 165
第12章 TestDirector测试管理工具 166
12.1 TestDirector的安装和配置 166
12.1.1 TestDirector的安装过程 166
12.1.2 TestDirector的环境配置 170
12.2 TestDirector的使用 171
12.2.1 项目库的建立和初始化 171
12.2.2 工程配置 172
12.2.3 测试需求管理 175
12.2.4 测试计划管理 177
12.2.5 执行测试管理 180
12.2.6 缺陷管理 182
12.2.7 数据分析及导出 185
本章小结 185
思考题 185
第13章 专柜通系统测试案例 186
13.1 被测项目介绍 186
13.2 制定测试计划 187
13.2.1 引言 188
13.2.2 测试需求 188
13.2.3 测试策略 189
13.2.4 项目任务 197
13.2.5 实施计划 198
13.3 专柜通软件测试用例 200
13.3.1 TSM_product Tests 200
13.3.2 中杰零售终端管理系统 204
13.3.3 基本资料管理 208
13.4 专柜通管理系统测试Bug记录 209
13.5 短信服务平台测试报告 215
13.5.1 测试项目描述 215
13.5.2 测试结论 215
13.5.3 缺陷数据统计分析 216
13.5.4 测试环境及工具 216
13.5.5 测试详细结论说明表 216
本章小结 218
思考题 218
参考文献 219