第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 软件测试过程的人员组织 3
1.3 测试计划的制订 4
1.3.1 测试计划的整体目标 4
1.3.2 定义软件测试项目的标准 4
1.3.3 测试实施策略的制定 4
1.3.4 测试计划活动的细分 5
1.3.5 测试计划的要点 5
1.3.6 编制测试计划的技巧 5
1.4 测试方案的确定 6
1.4.1 软件测试设计和开发主要内容 6
1.4.2 软件测试设计要点 6
1.4.3 测试用例的设计方法 6
1.4.4 测试用例的管理 6
1.4.5 测试开发 7
1.5 测试环境管理 7
1.5.1 测试环境的定义 7
1.5.2 测试环境是测试的基础 8
1.5.3 测试环境的各要素 8
1.6 测试执行的管理 9
1.6.1 测试用例执行的跟踪 9
1.6.2 缺陷的跟踪和管理 9
1.6.3 与项目组外部人员的沟通 9
1.6.4 测试执行结束 10
1.7 测试质量分析 10
1.7.1 评估系统测试的覆盖程度 10
1.7.2 软件缺陷分析方法 11
1.8 测试文档管理 11
1.8.1 测试文档的分类管理 11
1.8.2 测试文档的存储和共享 11
1.8.3 文档模板 11
1.9 测试的复用与维护 12
1.9.1 测试过程的复用与维护 12
1.9.2 测试用例和软件缺陷报告的复用 12
1.10 本章小结 12
第2章 软件测试的标准和文档 13
2.1 软件测试规范 13
2.2 软件测试文档编制规范 14
2.3 本章小结 15
第3章 Web应用软件测试 16
3.1 Web应用软件 16
3.1.1 Web应用软件的概念 16
3.1.2 Web应用软件的特点 16
3.1.3 Web应用软件的基本结构 16
3.1.4 Web应用软件的常用开发技术 16
3.2 应用服务器的分类和特征 17
3.2.1 三层和多层体系结构 17
3.2.2 应用服务器的分类 17
3.2.3 应用服务器对Web应用软件测试的影响 17
3.3 Web应用软件的测试策略 18
3.3.1 表示层的测试 18
3.3.2 业务层的测试 18
3.3.3 数据层的测试 18
3.3.4 层间的集成测试 19
3.4 Web应用软件的系统测试技术 19
3.4.1 功能测试 19
3.4.2 性能测试 19
3.4.3 易用性测试 20
3.4.4 内容测试 20
3.4.5 安全性测试 20
3.4.6 接口测试 20
3.5 Web应用软件的系统安全检测与防护 21
3.5.1 入侵检测 21
3.5.2 漏洞扫描 21
3.5.3 安全策略 21
3.6 本章小结 22
第4章 测试自动化设计基础 23
4.1 测试与自动化测试 23
4.1.1 测试 23
4.1.2 自动化测试 24
4.2 测试自动化的承诺 24
4.3 测试自动化的限制 25
4.3.1 测试自动化无法智能化 26
4.3.2 自动化测试无法完全代替手工测试 26
4.3.3 测试自动化无法提升测试的有效性 26
4.3.4 测试自动化将制约开发的效率 26
4.4 测试自动化过程 26
4.4.1 自动化测试前期过程 27
4.4.2 输入 27
4.4.3 执行 28
4.4.4 输出 28
4.4.5 比较 28
4.4.6 缺陷发布与影像回放 28
4.5 本章小结 30
第5章 自动化测试的原理与方法 31
5.1 代码分析 32
5.2 对象识别 32
5.3 捕获和回放 33
5.4 脚本技术 33
5.5 自动比较技术 35
5.6 本章小结 36
第6章 自动化测试类型 37
6.1 按照开发阶段划分 37
6.1.1 自动化单元测试 37
6.1.2 自动化集成测试 38
6.1.3 自动化系统测试 39
6.2 按照主要用途划分 41
6.2.1 自动化功能测试 41
6.2.2 自动化负载压力测试 42
6.3 本章小结 44
第7章 自动化测试流程 45
7.1 自动化测试过程 45
7.2 自动化测试生命周期 46
7.3 本章小结 48
第8章 自动化测试工具 49
8.1 工具类型 49
8.2 选择标准 49
8.3 工具原理 50
8.4 本章小结 51
第9章 自动化测试失败的原因以及需要避免的陷阱 52
9.1 通常R&D不重视自动化测试或手动测试的工作 52
9.2 自动化测试神话与实现 53
9.2.1 自动测试计划的生成 54
9.2.2 测试工具适合所有场景 54
9.2.3 测试工作立即减少 54
9.2.4 计划立即缩减 55
9.2.5 工具的易用性 55
9.2.6 任何应用都可以使用AST 56
9.2.7 100%测试覆盖率 57
9.2.8 捕获/回放等同AST 57
9.2.9 AST是手动测试活动 58
9.2.10 忘记了测试的目的是找出缺陷 58
9.2.11 侧重于系统测试自动化而非自动化单元测试 59
9.3 软件开发时缺乏针对AST的考虑 59
9.3.1 在应用中构建可测试性 59
9.3.2 遵循开放架构标准 61
9.3.3 遵循标准文档格式 62
9.3.4 标准化的测试文档用例 62
9.3.5 遵循编码标准 63
9.3.6 使用OMG的IDL 63
9.3.7 GUI测试建议 63
9.3.8 GUI对象命名标准 64
9.3.9 代码重用的库概念 64
9.4 不知如何选择工具 64
9.5 缺乏企业案例 66
9.6 本章小结 66
第10章 管理自动化测试 67
10.1 编写有效的测试脚本和测试数据 67
10.2 管理手工和自动化测试脚本 68
10.3 测试套件维护 68
10.4 本章小结 69
第11章 测试数据自动化管理的设计 71
11.1 测试数据自动化管理设计要素 71
11.2 测试数据的维度 72
11.3 测试数据的分类 73
11.3.1 业务数据 73
11.3.2 待测的对象 74
11.4 测试数据之间的关系 75
11.4.1 数据的权重 75
11.4.2 数据的内在约束 76
11.4.3 数据的唯一性 76
11.5 测试字段之间的关联与组合 77
11.5.1 字段之间的关联 77
11.5.2 字段之间的约束 79
11.5.3 字段之间的组合 80
11.6 测试数据设计要素 80
11.7 数据运行控制 81
11.7.1 手工测试数据运行控制模式 81
11.7.2 测试数据关系提炼角度 81
11.7.3 测试数据运行控制思维导图 83
11.7.4 数据运行控制设计所涉及的问题 84
11.8 测试数据自动化设计 85
11.8.1 测试数据保存约定 86
11.8.2 数据字典 86
11.8.3 数据运行控制模型 86
11.8.4 数据关系运算模式 88
11.8.5 数据关系运算 90
11.9 数据处理模型的实现 93
11.9.1 数据存储层实现 93
11.9.2 数据关系处理实现 100
11.9.3 数据格式定义与实例调用 106
11.9.4 QTP调用实例 107
11.10 C#实现数据管理程序实例 109
11.10.1 设计结构简介 109
11.10.2 案例管理控制过程 109
11.10.3 数据关系设计 110
11.10.4 数据组合生成过程 112
11.10.5 自动生成用例 115
11.10.6 修改用例 116
11.10.7 COM数据调用接口简介 117
11.10.8 QTP即插即用接口与VBS调用方法 119
11.11 本章小结 120
第12章 案例解析过程设计 122
12.1 初识案例解析技术 123
12.1.1 案例解析技术产生的原因 123
12.1.2 案例解析技术的优势 126
12.1.3 案例解析技术的缺点 127
12.2 案例解析技术脚本形成要素 128
12.2.1 测试脚本结构分析 129
12.2.2 操作三种类型的数据分析 129
12.3 案例解析技术设计蓝图 130
12.3.1 案例解析技术所涵盖的模块 131
12.3.2 案例解析技术设计结构图 132
12.4 自动化测试案例编写规则设计 132
12.4.1 自动化测试案例规则提炼 132
12.4.2 自动化测试案例的规则映射 133
12.4.3 自动化测试案例编写设计 134
12.4.4 自动化案例管理媒介 136
12.4.5 自动化测试案例编写的基本模式 136
12.4.6 待测对象与案例关系的映射 137
12.5 自动化测试对象管理 138
12.5.1 获取待测对象属性以及对象之间的模式 138
12.5.2 对象采集的两种策略 142
12.5.3 对象的保存模式和读取 155
12.6 错误处理与缺陷发送 159
12.6.1 传统的错误处理模式 159
12.6.2 错误处理模式的三种测试设计技术 160
12.6.3 错误处理程序实例讲解 163
12.6.4 缺陷发送处理技术 166
12.7 自动化测试运行调度 172
12.7.1 作业的调度 173
12.7.2 调度的前置任务 174
12.7.3 运行控制 176
12.7.4 调度的后置任务 181
12.8 本章小结 182
第13章 QTP基本使用方法 183
13.1 QTP简介 183
13.1.1 自动化测试的好处 183
13.1.2 QuickTest工作流程 183
13.1.3 QTP程序界面 184
13.1.4 Mercury Tours示范网站 186
13.2 录制/执行测试脚本 187
13.2.1 录制前的准备 187
13.2.2 录制测试脚本 187
13.2.3 执行测试脚本 190
13.2.4 分析测试结果 191
13.3 建立检查点 193
13.3.1 QuickTest检查点种类 193
13.3.2 创建检查点 193
13.3.3 执行并分析使用检查点的测试脚本 198
13.4 参数化 201
13.4.1 参数化步骤和检查点中的值 202
13.4.2 参数种类 204
13.4.3 参数化脚本测试 207
13.5 输出值 210
13.5.1 创建输出值 210
13.5.2 输出属性值 212
13.5.3 在脚本中建立输出值 215
13.6 本章小结 217
参考文献 218