第一部分 理念篇 2
第1章 软件测试概论 2
1.1 软件测试概论 2
1.1.1 软件测试概述 2
1.1.2 国内外现状 3
1.1.3 软件测试与开发的关系 5
1.1.4 软件测试基础 7
1.2 软件自动化测试 17
1.2.1 软件自动化测试概述 18
1.2.2 软件自动化测试的优势 18
1.2.3 软件自动化测试的局限 19
1.2.4 自动化测试的分类 20
1.3 自动化测试的发展趋势与境界 23
第2章 数据驱动测试技术 25
2.1 数据驱动测试技术概述 25
2.1.1 数据驱动测试的概念 25
2.1.2 数据驱动测试技术的来源 25
2.1.3 数据驱动测试技术的特点 26
2.1.4 数据驱动测试技术的适用测试阶段 26
2.1.5 数据驱动测试工具支持情况 27
2.2 数据驱动测试的关键内涵 28
2.2.1 数据驱动的自动化测试框架 28
2.2.2 数据驱动测试的流程 30
2.2.3 数据驱动测试中的驱动脚本 30
2.2.4 数据驱动测试中数据的选择 30
2.2.5 数据驱动测试中的参数化技术 32
2.2.6 数据驱动测试中的数据源 34
2.3 数据驱动测试的应用 35
2.3.1 同步数据驱动测试(CSDDT) 35
2.3.2 数据驱动引擎 36
2.4 数据驱动的优点和不足 36
第3章 关键字测试技术 38
3.1 关键字驱动测试概述 38
3.1.1 概念 38
3.1.2 关键字驱动测试来源 38
3.1.3 关键字驱动测试特点 39
3.1.4 适用的测试阶段 40
3.1.5 主要工具支持情况 40
3.2 关键内涵 41
3.2.1 关键字设计 41
3.2.2 关键字驱动的自动化测试系统实现 43
3.2.3 方法 46
3.3 技术优点和不足 46
第二部分 GUI测试篇 49
第4章 Unified Functional Testing介绍 49
4.1 简介 49
4.2 测试的基本过程 49
4.2.1 分析应用程序 49
4.2.2 准备测试框架 50
4.2.3 构建测试和添加每个测试步骤 50
4.2.4 强化测试过程 50
4.2.5 调试、运行和分析测试 50
4.2.6 报告缺陷 51
4.3 开始使用GUI测试 51
4.3.1 启动 51
4.3.2 插件加载设置与管理 51
4.3.3 创建一个测试项目 52
4.3.4 录制和测试运行设置 53
4.3.5 指定需要录制的应用程序 54
4.3.6 编写第一个自动化测试脚本 56
第5章 GUI的自动化测试方法 58
5.1 GUI的使用 59
5.1.1 自动化测试的基本过程 59
5.1.2 在关键字视图中编辑测试脚本 59
5.1.3 在关键字视图中为测试步骤添加注释 60
5.1.4 在关键字视图中添加测试信息的输出 60
5.1.5 插入检查点(Checkpoint) 61
5.1.6 在关键字视图中插入新的测试步骤 62
5.1.7 在专家视图中编辑测试脚本 65
5.1.8 脚本编辑器的使用 65
5.2 编辑测试脚本 66
5.2.1 识别对象 66
5.2.2 Object Spy的使用 67
5.2.3 对象库管理 69
5.2.4 把测试对象添加到对象库中 69
5.2.5 导出对象库文件 71
5.2.6 在测试脚本中访问对象库的测试对象 71
5.2.7 新的Action 73
5.2.8 关联Action的对象库 74
5.3 运行和调试测试脚本 75
5.3.1 语法检查 75
5.3.2 使用断点 76
5.3.3 单步调试 77
5.3.4 运行整个测试 77
5.4 分析测试结果 78
5.4.1 选择测试运行结果的存储位置 78
5.4.2 查看概要测试运行结果 79
5.4.3 查看检查点的结果 79
5.4.4 查看测试过程的截屏 80
5.5 利用活动屏幕来编辑测试脚本 81
5.5.1 查看活动屏幕 81
5.5.2 活动屏幕的设置 81
5.5.3 在活动屏幕中选择并添加对象到对象库 82
5.5.4 选择活动屏幕中的对象并输出其对象属性 84
5.5.5 在活动屏幕中插入检查点 86
5.5.6 在活动屏幕中选择对象并添加测试步骤 89
第6章 数据驱动测试 91
6.1 什么时候使用数据驱动测试方法 91
6.2 数据驱动测试的一般步骤 91
6.3 参数化测试 92
6.3.1 通过参数化测试来提高测试的灵活性 92
6.3.2 参数化测试步骤 93
6.3.3 使用随机数来进行参数化 95
6.3.4 参数化检查点 97
6.3.5 设置数据表格迭代方式 98
6.4 Action测试输入的参数化 99
6.4.1 编辑Action的属性 99
6.4.2 添加Action的输入参数 101
6.4.3 调用Action 103
6.5 使用环境变量的参数化 105
6.5.1 定义和设置环境变量 105
6.5.2 在测试步骤中绑定环境变量值 106
6.5.3 导出环境变量到XML文件 108
6.5.4 导入外部环境变量文件 109
6.6 使用数据驱动器来参数化测试 110
6.6.1 数据驱动器的使用方法 110
6.6.2 数据驱动向导 111
6.7 文件数据源的数据驱测试 113
6.7.1 文本文件作为数据源 113
6.7.2 Excel作为数据源 117
第7章 关键字驱动测试 121
7.1 关键字驱动测试概述 121
7.2 关键字驱动测试方法 121
7.2.1 关键字测试驱动框架 122
7.2.2 关键字驱动测试的阶段划分 122
7.2.3 适用的测试阶段 122
7.3 关键字驱动测试步骤 123
7.3.1 编辑对象库 123
7.3.2 选择测试对象 123
7.3.3 选择测试对象相应的操作 124
7.3.4 设置测试逻辑 125
7.3.5 运行分析测试脚本 126
7.4 检查点的使用 127
7.4.1 为测试添加检查点 127
7.4.2 UFT支持的检查点类型 127
7.4.3 添加标准检查点 128
7.4.4 添加图像检测点 130
7.4.5 添加图像检查点 131
7.4.6 选择对象 132
7.5 添加表格检查点 133
7.5.1 添加文本检查点 134
7.5.2 添加文本区域检查点 136
7.5.3 添加可访问性检查点 138
7.5.4 添加页面检查点 139
7.5.5 添加数据库检查点 142
第三部分 API与服务测试篇 146
第8章 API/接口测试 146
8.1 API/接口测试的目的与意义 146
8.1.1 接口测试的目的 146
8.1.2 接口测试的意义 147
8.2 UFT中的API测试 148
8.2.1 SOA测试的重要性 148
8.2.2 SOA概述 149
8.2.3 服务测试术语 149
8.3 API测试通用流程 150
8.3.1 启动API服务 151
8.3.2 创建API测试 151
8.3.3 服务测试窗口 152
8.3.4 创建API测试步骤 153
8.3.5 连接测试步骤 157
8.3.6 多个数据源的数据映射 159
8.3.7 数据驱动 161
8.4 Web Service测试 165
8.4.1 基于WSDL的Web服务测试 165
8.4.2 基于REST的Web服务测试 176
第四部分 非主流测试工具篇 186
第9章 Linux系统交互应用功能测试框架工具Expect 186
9.1 概述 186
9.1.1 TCL 187
9.1.2 Expect 188
9.2 适用场景 188
9.3 原理 189
9.4 使用介绍 190
9.4.1 Expect的安装 190
9.4.2 简单例子 191
9.4.3 Expect语法介绍 192
9.5 实战案例 192
9.5.1 自动输入密码 192
9.5.2 自动登录 193
9.5.3 sh脚本中嵌入Expect 194
9.5.4 自动登录Ssh,Ftp 195
9.6 命令介绍 198
9.6.1 启动一个进程——spawn 198
9.6.2 expect 198
9.6.3 exp命令 201
9.6.4 其他命令 203
第10章 网络协议自动化测试工具Sulley 208
10.1 概述 208
10.2 适用场景 209
10.3 原理介绍 209
10.3.1 生成协议描述框架 209
10.3.2 模糊器处理 210
10.3.3 会话 210
10.4 使用介绍 210
10.4.1 安装Sulley 210
10.4.2 Sulley目录结构 211
10.4.3 Sulley中的数据表示 213
10.4.4 Sulley中的会话 220
10.4.5 Sulley中的代理 221
10.5 实例分析 222
10.5.1 创建FTP协议描述框架 222
10.5.2 Sulley会话 223
10.5.3 网络和进程监控 224
10.5.4 开始Fuzzing测试 225
第11章 无界面应用功能自动化测试工具Peach 227
11.1 Peach工具的概述 227
11.2 工具适用场景 228
11.3 工具原理 228
11.4 使用介绍 230
11.4.1 Peach pit基本格式 230
11.4.2 数据间的依存关系的描述 233
11.5 实用案例 234
11.5.1 Zip文件格式 235
11.5.2 Zip.xml文件 237
11.6 命令附录 246