第1章 测试自动化概念 1
1.1 引言 2
1.2 测试与测试自动化概念不同 2
1.2.1 测试 2
1.2.2 测试自动化 3
1.3 V模型 4
1.4 支持生命周期测试的工具 5
1.5 测试自动化的承诺 6
1.6 测试自动化普遍存在的问题 7
1.7 测试活动 9
1.7.2 设计测试事例 10
1.7.1 标识测试条件 10
1.7.3 建立测试事例 12
1.7.4 执行测试事例 12
1.7.5 将测试结果与期望输出比较 12
1.8 自动测试设计 13
1.8.1 适合自动化的活动 13
1.8.2 自动测试事例设计 14
1.9 软件测试自动化的限制 17
1.9.1 不能取代手工测试 17
1.9.6 工具本身并不具有想象力 18
1.9.4 测试自动化不能提高有效性 18
1.9.5 测试自动化可能会制约软件开发 18
1.9.3 对测试质量的依赖性极大 18
1.9.2 手工测试比自动测试发现的缺陷更多 18
小结 19
第2章 捕获回放并非测试自动化 21
2.1 应用举例:Scribble 22
2.1.1 测试事例举例:在Scribble中编辑一个列表 22
2.1.2 测试Scribble列表 22
2.1.3 测试输入 23
2.2 如何将手工测试过程自动化? 29
2.2.1 Ad hoc测试:非脚本化 30
2.2.2 模糊的手工脚本 31
2.2.3 详细的手工脚本 32
2.3 测试执行自动化:输入 34
2.3.1 测试输入自动化 35
2.3.2 回放录制脚本 35
2.3.3 自动脚本有别于手工脚本 35
2.3.4 使用自动化测试输入的益处 37
2.3.5 录制手工测试的缺点 38
2.3.6 建议:不要仅采用录制的方式进行自动化测试 39
2.3.7 需要手工验证的自动执行 39
2.4 自动测试结果比较 40
2.4.1 确定何时比较测试事例的输出 40
2.4.2 比较多大范围? 40
2.4.4 执行后比较 43
2.4.3 动态比较 43
2.4.5 自动比较信息必须手工检查 45
2.4.6 自动化测试比较十分重要 46
2.5 测试自动化的下一个步骤 46
2.5.1 为什么第二次测试失败 47
2.5.2 其他验证需求 50
2.5.3 验证修改文件或数据库的方法 51
2.5.4 所有的文件哪里去了? 51
2.6 不可自动实现自动化测试过程 52
小结 52
第3章 脚本技术 55
3.1.2 脚本的共性问题 56
3.1 引言 56
3.1.1 与编程的相同点 56
3.1.3 测试事例的设计和实现 60
3.1.4 有关脚本文档的建议 61
3.2 脚本技术 63
3.2.1 线性脚本 63
3.2.2 结构化脚本 65
3.2.3 共享脚本 66
3.2.4 数据驱动脚本 70
3.2.5 关键字驱动脚本 74
3.3.1 脚本预处理功能 77
3.3 脚本预处理 77
小结 81
第4章 自动比较 85
4.1 验证、比较及自动化 86
4.1.1 比较验证 86
4.1.2 计划比较和随意比较 86
4.1.3 预测输出及验证实际输出 87
4.1.4 自动比较的原因 87
4.1.5 比较的内容 88
4.1.6 自动比较的局限性 88
4.2.2 比较器告诉用户的内容 89
4.2.1 可比较的内容 89
4.2 比较器的用途 89
4.2.3 比较器不能告诉用户的内容 90
4.3 动态比较 90
4.3.1 定义 90
4.3.2 支持和实现工具 90
4.3.3 测试事例智能 91
4.3.4 复杂性与维护费用成正比 91
4.4 执行后比较 91
4.4.1 定义 91
4.4.2 支持工具 92
4.4.3 比较顺序和结构 92
4.4.4 主动与被动的执行后比较 93
4.4.5 实现执行后比较 94
4.5 简单比较 97
4.6 复杂比较 97
4.6.1 需要复杂比较的原因 97
4.6.2 简单屏蔽 98
4.6.3 屏蔽的搜索技术 99
4.6.4 使用正则表达式的搜索技术 100
4.6.5 实现复杂比较 100
4.7.1 敏感与健壮的测试 101
4.7.2 敏感测试与健壮测试之间的权衡 101
4.7 测试敏感性 101
4.7.3 冗余性 102
4.7.4 测试敏感性的策略 103
4.8 比较不同类型的输出 104
4.8.1 基于磁盘的输出 104
4.8.2 基于屏幕的输出 107
4.8.3 其他输出类型 110
4.9 比较过滤器 110
4.9.1建立执行后比较工具的实用方法:比较处理过程 110
4.9.2 过滤器的定义 111
4.9.3 实现比较处理过程 112
4.9.4 过滤器的优缺点 112
4.9.5 过滤器事例 114
4.9.6 连续用多个过滤器 115
4.9.7 标准化比较 119
4.9.8 产生预期输出 119
4.10 比较准则 120
4.10.1 保持简单 120
4.10.2 编制比较的文档 120
4.10.3 尽可能标准化 120
4.10.4 分割和驾御 120
4.10.5 记住效率 120
4.10.7 敏感和健壮测试间平衡的目标 121
小结 121
4.10.6 避免比较位图 121
第5章 测试件结构 123
5.1 测试件结构的定义 124
5.1.1 术语 124
5.2 要解决的关键问题 125
5.2.1 规模 125
5.2.2 重用 126
5.2.3 多版本 127
5.2.4 独立于平台和环境 128
5.3 方法 128
5.3.1 介绍 128
5.3.2 基本概念 129
5.3.3 测试件组 131
5.3.4 测试集 136
5.3.5 测试件库 137
5.3.6 测试结果 140
5.3.7 物理实现 141
5.3.8 测试工具的接口 150
5.4 是否过度 150
小结 151
第6章 自动化前后的处理 153
6.1.3 为什么使用这些术语? 154
6.1.2 后处理 154
6.1.1 前处理 154
6.1 什么是前处理和后处理? 154
6.1.4 为什么要自动化前处理和后处理? 155
6.1.5 每次存储和恢复时都要设置吗? 156
6.2 前处理和后处理 156
6.2.1 前处理任务 156
6.2.2 后处理任务 157
6.2.3 不同阶段的前处理和后处理 158
6.3 测试事例执行后应该发生什么? 160
6.3.1 正常结束之后 160
6.3.2 非正常终止之后 160
6.4.1 例子测试事例 161
6.4.2 脚本 161
6.4 执行中的问题 161
6.4.3 使用命令行文件 164
6.4.4 数据驱动的方法 164
6.4.5 关键字驱动的方法 164
6.4.6 怎样使用测试事例定义文件 165
小结 166
第7章 建立可维护的测试 167
7.1 维护过程中存在的问题 168
7.2 测试维护的属性 168
7.2.1 测试事例的数量 169
6.2.3 测试数据的格式 170
7.2.2 测试数据的数量 170
7.2.4 运行测试事例的时间 171
7.2.5 测试事例的调试能力 172
7.2.6 测试之间相互依赖的关系 172
7.2.7 命名习惯 173
7.2.8 测试复杂度 173
7.2.9 测试文档(管理) 173
7.2.10 其他属性 174
7.3 陷阱 174
7.3.1 工具容易令你出错 174
7.3.2 方法越简单就越容易造成维护的高成本 174
7.4.2 措施 175
7.4 策略和措施 175
7.4.1 策略 175
7.3.3 一时的心血来潮 175
7.3.4 投入所得的回报 175
小结 176
第8章 度量 179
8.1 为什么测量测试过程和测试自动化? 180
8.1.1 投入回报 180
8.1.2 评估选择、对比选择、监控改进 182
8.2 可测量什么? 183
8.2.1 Gilb的法律 183
8.1.4 基准与标准的对立或竞争 183
8.1.3 对问题的预警和预测 183
8.2.2 举例说明什么可以度量 184
8.2.3 有用的度量 184
8.3 测试和测试自动化的目的 185
8.3.1 测试的目的 185
8.3.2 测试自动化的目的 185
8.3.3 可达到的目的 187
8.4 软件测试的属性 187
8.4.1 测量测试效果 187
8.4.2 全面测量测试过程 193
8.5 测试自动化的属性 194
8.5.2 效率 195
8.5.1 可维护性 195
8.5.3 可靠性 197
8.5.4 兼容性 198
8.5.5 可用性 198
8.5.6 健壮性 198
8.5.7 可移植性 199
8.6 最好的测试自动化体制 199
8.7 应该度量所有这些否? 201
小结 202
第9章 其他问题 203
9.1.2 要执行测试的类型 204
9.1.1 它值得自动化否? 204
9.1 应首先被自动化的测试 204
9.1.3 应该首先自动化的测试 205
9.1.4 不要一口气自动化太多测试 206
9.2 选择何时运行的测试 206
9.2.1 怎样选择测试子集 206
9.2.2 实现一个“测试选择器” 207
9.3 测试执行的顺序 208
9.3.1 测试分析负担 208
9.3.2 建立逻辑层次使分析时间最短 209
9.4 测试状态 210
9.4.1 成功或失败 210
9.3.4 分布测试 210
9.3.3 运行测试的其他必要条件 210
9.4.2 工具不能判断成功或失败 211
9.4.3 已知的未修复错误 211
9.4.4 可能的解决方法 212
9.4.5 测试状态:预料之中的失败 213
9.4.6 测试状态:未知 213
9.4.7 测试状态小结 216
9.4.8 更详细的失败状态 216
9.5 为可(自动化)测试性设计软件 217
9.7 监视自动化测试的进展 218
9.6 同步 218
9.8 裁剪自己体制中的工具 220
小结 221
第10章 选择实现自动化测试的工具 223
10.1 第10章和第11章介绍 224
10.1.1 工具选择和执行过程 224
10.1.2 这是可适用于选择任何类型工具的方法否? 224
10.2 选择工具 225
10.3 工具选择工程 225
10.3.1 重要性和优先权 225
10.4 工具选择小组 226
10.4.1 工具选择小组的领导 226
10.5.1 要解决什么问题? 227
10.5 确定自己的需求 227
10.4.2 工具选择小组中的其他成员 227
10.5.2 研究不同的解决方案 228
10.5.3 选择工具的时间安排 231
10.5.4 工具应该有多大的帮助? 231
10.5.5 这种帮助有多大价值 232
10.6 明确限制 234
10.6.1 环境的限制(硬件和软件) 235
10.6.2 工具应该与被测试的软件存在于同一环境否? 235
10.6.3 商业厂商限制 235
10.6.4 成本限制 236
10.6.6 质量限制 237
10.6.5 行政上的限制 237
10.7 创建还是购买? 239
10.8 从市场中可得到的 240
10.8.1 特性评估 240
10.8.2 生成最初的长列表 242
10.8.3 构造较短的列表 242
10.9 评估最后的候选工具 243
10.9.1特性比较 243
10.9.2 内部演示 246
10.9.3 脚本维护的测试 248
10.9.4 竞争试验 249
10.10 做出决定 249
10.10.1 根据经济利益进行评价 249
10.10.2 何时停止评估 250
小结 251
10.10.3 完成评估和选择过程 251
第11章 在公司或机构中使用工具 253
11.1 可能的差错 254
11.2 管理贯彻使用过程的重要性 254
11.2.1 工具很容易被束之高阁 255
11.2.2 工具贯彻使用的过程 255
11.2.3 对变化的管理 256
11.3 贯彻使用/改变过程中的角色 256
11.3.1 工具“斗士” 256
11.3.4 工具管理员 257
11.3.2 变动代理人 257
11.3.5贯彻使用小组 258
11.4 管理承诺 258
11.4.1 成功的关键 258
11.4.2 现实的期望 259
11.5 准备 259
11.5.1 宣传 259
11.5.2 提高最初的兴趣 260
11.5.3 继续进行宣传 260
11.5.4 测试你的演示 260
11.6.1 为什么要进行初步实验 261
11.6 初步实验计划 261
11.5.5 用一个试用许可证号确定工具是否合适 261
11.5.6 内部市场调查 261
11.6.2 评估你的测试过程的变化 262
11.6.3 设置并实验你的自动化体制 263
11.6.4 评估初步实验的结果 263
11.7 计划阶段安装或大面积铺开 263
11.7.1 计划的重要性 263
11.7.2 提供工具使用方面的培训 264
11.7.3 监控测试自动化的效率 264
11.8.1 同其他工具和系统的接口 265
11.8.2 学习所需要的时间 265
11.8 贯彻使用中的特殊问题 265
11.8.3 在维护环境中 266
11.9 人为因素 266
11.9.1 对人们提出的问题不进行管理的危险 266
11.9.2 变化方程式 267
11.9.3 怎样说服人们改变他们工作的方式 267
11.9.4 成功的改变孕育着更进一步的变化 267
11.9.5 可变化性的分类 268
11.10 总结 269
11.10.1 贯彻使用过程的“冰山图” 269
11.10.2 评价工具的贯彻使用 269
11.10.3 何时结束? 269
小结 270
第12章 Racal-Redac事例 275
12.2 背景 276
12.2.1 公司及产品 276
12.2.2 初期测试活动 276
12.2.3 人工测试带来的问题 276
12.1 介绍 276
12.3 解决方案 277
12.3.1 多方案策略 277
12.3.2 自动测试工具 277
12.3.3 外界咨询 278
12.3.4 培训测试技术 278
12.3.5 优化配置测试人员 278
12.4.2 开发工作 279
12.4 综合测试自动化 279
12.4.1 工具性能 279
12.4.3 首次使用Autotest 280
12.5 系统测试自动化 280
12.5.1 新的目标 280
12.5.2 开发工作 280
12.5.3 技术问题 281
12.5.4 非技术问题 282
12.6 得到的结果 283
12.6.1 产品每一版本的测试工作 283
12.6.2 获得的教训 284
12.6.4 回报 286
12.6.3 获得的利益 286
12.7 1991年以来的历史 287
12.8 今后会发生什么 288
12.8.1 1991年以来的历史 288
12.8.2 自动测试的先进技术 288
12.8.3 技术问题 289
12.8.4 变化与利益 289
12.8.5 现时文化 290
第13章 一个软件自动测试系统的评估 293
13.3.1 特性 294
13.3 Grimlin 1 294
13.2 背景 294
13.1 介绍 294
13.3.2 Grimlin 1的优点 295
13.3.3 Grimlin 1的上升与跌落 295
13.3.4 Grimlin 1使用下降的原因 295
13.4 Grimlin 2.0:没有重新运行功能的产品 297
13.4.1 Grimlin 2.0的特性 297
13.4.2 提供新的培训 298
13.4.3 Grimlin 2.0 beta版测试结果 299
13.4.4 新的系统对使用者的吸引力不大 299
13.5 发现真正的问题所在 299
13.5.2 自动测试需要时间 301
13.5.1 错误的设想 301
13.5.3 人员变化带来的问题 302
13.5.4 测试工具不支持标准的方法和步骤 303
13.5.5 Gramlin 2.3:方法和工具相结合的产物 303
13.6 得到的教训 303
13.6.1 测试方法和步骤非常重要 303
13.6.2 测试工具的支持 304
13.6.3 组织上的问题 305
小结 307
第14章 自动测试的经历 309
14.1.2 测试的软件 310
14.1.3 选择工具和初次失败 310
14.1.1 公司 310
14.1 背景 310
14.2 计划、准备和最后的成功 311
14.2.1 新任务 311
14.2.2 重新使用测试工具 311
14.2.3 计划和准备工作的重要性 311
14.2.4 组织和动机 311
14.2.5 回报 312
14.2.6 从经济上衡量自动测试 312
14.2.7 平台支持 312
14.3.5 准确预测 313
14.3.4 精华部分 313
14.3.6 补充新的人员和士气 313
14.3.1 减少冒险 313
14.3.2 更快 313
14.3 自动测试的优点 313
14.3.3 覆盖更多的平台 313
14.4 得到的教训 314
14.4.2 脚本 314
14.4.1 培训和咨询 314
14.4.3 数据 314
14.3.9 2000年问题测试 314
14.3.8 强度测试 314
14.3.7 银行其他的部门颇感兴趣 314
14.4.4 万事开头难 315
14.4.5 曲折前进 315
14.4.6 合理性 315
14.4.7 持续性 315
14.4.8 处理各种变化 315
14.5 下一步的工作 315
小结 316
第15章 VMS环境下的自动测试 317
15.1.4 自动测试目标 318
15.1.2 测试实践 318
15.1.3 测试的软件 318
15.1.1 公司 318
15.1 背景 318
15.2 自动测试的第一次尝试 319
15.2.1 DTM工具 319
15.2.2 交互执行程序带来的问题 319
15.2.3 批量程序带来的问题 319
15.2.4 放弃使用测试工具 319
15.3 新测试工具的选择及其评价 320
15.3.1 在市场上找到V-Test 320
15.3.2 评估V-Test 320
15.4.1 相关问题 322
15.4 使用V-Test 322
15.4.2 计划的利益和V-Test的交易 323
15.4.3 自动执行了什么,如何执行的 323
15.4.4 技术问题 324
15.4.5 非技术问题 326
15.4.6 取得的好处 326
15.4.7 放弃自动测试 328
15.4.8 复兴计划 329
15.5 结论 329
15.5.1 得到的教训 329
15.5.2 得到的好处 331
第16章 一个电子股票交易系统的自动测试 333
16.1.3 有关的市场调节器 334
16.1.2 新技术带来的影响 334
16.1 背景 334
16.1.1 伦敦股票市场 334
16.2 系统及测试 335
16.2.1 早期系统开发及测试 335
16.2.2 正在进行的开发和测试需求 336
16.3 自动测试需求 336
16.3.1 目标 336
16.3.2 测试小组的组织:摒弃独立的组织形式 336
16.4 测试工具的选择 337
16.4.1 限制因素 337
16.4.2 忽略的事情 337
16.4.3 选择测试工具的步骤 338
16.5 执行测试 339
16.5.1 从哪里开始? 339
16.5.2 选择执行数据驱动的方法 339
16.5.3 脚本结构发展 340
16.6 成熟和维护 340
16.6.1 脚本维护 340
16.6.2 人工测试和自动测试的关系 341
16.7 结果 341
16.7.1 测试的规模 341
16.7.2 达到目标 341
16.7.3 自动测试的回报 342
第17章 每月自动测试保险报价系统 343
17.1 背景:UK保险业 344
17.2 摘要,如何身陷其中的? 345
17.3 为什么进行自动测试? 345
17.4 测试的策略 346
17.5 选择一个自动测试工具 347
17.6 有关自动测试计划的决策 348
17.6.1 测试者的工作 348
17.6.2 自动测试技师的工作 348
17.7 测试计划 349
17.8 遇到的一些其他问题 350
17.9 人工与自动测试者对比 351
小结 352
第18章 第三代ISS自动化测试系统 353
18.1 介绍 354
18.2 测试的软件 354
18.3 第一代 354
18.3.1 采用自动化测试的最初目标 354
18.3.2 辅助工具的选择 355
18.3.3 脚本的捕获重放 355
18.3.4 第一代系统的成本和优点。 356
18.3.5 第一代产品所遇到的问题 356
18.4.2 我们所做的工作 357
18.4.1 我们继续研究自动化测试的目的 357
18.4 第二代测试工具 357
18.3.6 第一代系统得到的教训 357
18.4.3 命名规定 358
18.4.4 新体制 359
18.4.5 第二代产品的成本和优点 360
18.4.6 第二代测试系统存在的缺陷 360
18.4.7 第二代系统得到的教训 361
18.5 第三代自动测试工具 361
18.5.1 设计一种新的基础构造 361
18.5.2 评价付出的努力 363
18.5.3 设计基础结构 363
18.5.4 第三代测试工具的价格与优点 364
18.5.5 第三代测试工具遇到的问题 365
18.5.6 第三代测试系统得到的教训 366
18.6 三代测试系统概要 366
18.6.1 三代测试工具的特性 366
18.6.2 长期策略 367
18.6.3 建议 368
18.6.4 成功的因素 368
第19章 自动化测试故障:吸取的教训 371
19.1 介绍 372
19.2 工程 372
19.2.1 工程A 372
19.3.1 测试工具问题 373
19.2.2 工程B 373
19.3 问题 373
19.3.2 测试者和他们遇到的问题 374
19.3.3 测试环境问题 374
19.3.4 自动测试的时间和工作量 375
19.4 建议 376
19.4.1 测试工具的建议 376
19.4.2 对测试者的建议 376
19.4.3 测试环境的建议 377
19.4.4 时间和工作量建议 377
19.5 Pilot工程 377
19.6 结束语 378
第20章 一个预料之外的自动测试事例 379
20.1 背景介绍 380
20.1.1 用户和顾问 380
20.1.2 工程 380
20.1.3 理解银行的目标 380
20.1.4 工程背景 381
20.2 帮助银行选择产品 382
20.2.1 第一阶段:ITT 382
20.2.2 对投标商的更多问题 382
20.2.3 第二阶段 通过测试对产品作出选择 383
20.2.4 制定测试策略 383
20.2.5 等待阶段 384
20.3.1 供应商的新做法 385
20.3.2 综合各节的内容 385
20.3 进行测试 385
20.4 自动测试 386
20.4.1 测试系统的发展 386
20.4.2 测试系统的使用 387
20.5 结果 388
20.5.1 测试阶段:情况总结 388
20.5.2 优点 389
第21章 在独立测试单元下执行自动测试 391
21.2 评估过程 392
21.2.1 我们的要求 392
21.1.1 公司 392
21.1.2 事例研究和测试工具 392
21.1 背景介绍 392
21.2.2 与工具销售商的关系 393
21.2.3 商业范例 394
21.2.4 评估过程中的关键点 394
21.3 执行阶段 394
21.3.1 第一步:三份副体 394
21.3.2 训练 394
21.4.1 标准和命名规定 395
21.4 工具的配置 395
21.3.4 在执行阶段的关键点 395
21.3.3 使用多种工具 395
21.4.2 工具专家和支持 396
21.4.3 效应扩展 396
21.4.4 工人配置过程中的关键点 397
21.5 QARun的运行情况 397
21.5.1 宽度测试 397
21.5.2 深度测试 398
21.5.3 其他的测试 399
21.5.4 工具使用的关键点论述 399
21.6.1 脚本的运行 400
21.6 遇到的问题 400
21.6.2 脚本和数据的维护 401
21.6.3 工具的维护 401
21.6.4 工具的缺陷 401
21.6.5 对测试脚本和数据的配置管理 401
21.6.6 不要急于进行自动化测试 402
21.6.7 我们遇到问题的关键点论述 402
21.7 两年中取得的成绩 402
21.7.1 节约了时间 402
21.7.8 小组中更高昂的士气 403
21.7.7 测试人员应是熟练的 403
21.7.5 性能测试 403
21.7.6 客户影响 403
21.7.4 我们的产品缺少回归 403
21.7.3 机器的使用方法 403
21.7.2 改善了测试 403
21.8 结论 404
第22章 用功能语句测试 405
22.1 介绍 406
22.1.1 产生该方法的原因 406
22.1.2 测试 406
22.1.3 功能语句方法 407
22.1.4 使用本方法的原因 408
22.2.1 应用举例:迷你银行 409
22.2 测试组件 409
22.2.2 测试迷你银行的数据表格 410
22.2.3 不可预知的关键数据:保持和参考 412
22.2.4 数据表格执行报表 413
22.3 导航器 414
22.3.1 导航器的实现 415
22.4 测试开发生命周期 415
22.4.1 测试计划 416
22.4.2 测试设计 417
22.5 其他测试类型的适用性 418
22.5.1 批量测试系统 418
22.5.2 性能和加载测试 418
22.6.2 举例:订单 419
22.6 模板:表格单元 419
22.6.1 利用功能语句生成功能语句 419
小结 421
第23章 在ABN AMRO Bank Development International的回归测试 423
23.1 背景 424
23.1.1 介绍 424
23.1.2 ABN AMRO Bank组织及其主要产品 424
23.1.3 ABN AMRO Bank测试周期 425
23.2.2 技术基础结构 426
23.2.4 可能的解决办法 426
23.2.3 大范围项目 426
23.2.1 新版本 426
23.2 常规测试的问题 426
23.3 使用TestFrame的自动方案 427
23.4 回归测试项目 428
23.4.1 项目小组 428
23.4.2 测试小组 428
23.5 副产品 429
23.6 前景 430
小结 430
第24章 事务对象方案:自动测试的第五代方法 431
24.2 开发测试软件的五代经历 432
24.2.1 第一代 432
24.1 简介 432
24.2.2 第二代 433
24.2.3 第三代 433
24.2.4 第四代 433
24.2.5 第五代 433
24.3 RadSTAR 433
24.4 窗口中央化方案库 434
24.5 事务对象方案 435
24.6 事务对象方案与现有系统综合 436
24.7 重用与可重复性 436
24.7.1 重用 436
24.8 结论 437
24.7.2 可重复性 437
第25章 一个自动测试过程 439
25.1 介绍 440
25.2 第一步 440
25.2.1 早期尝试自动测试的经验 440
25.2.2 下一个尝试:新工具和来自工具专家的支持 440
25.2.3 AD HOC自动测试过程的经历(“坏的”) 441
25.2.4 我们真正需要什么 441
25.2.5 这样能行吗? 441
25.4.1 RadSTAR作为自动测试基础结构的核心 443
25.4 利用RadSTAR完成自动测试 443
25.3.2 它能满足我们的需要吗? 443
25.3.1 这个方法提供些什么? 443
25.3 受欢迎的自动测试基石:RadSTAR 443
25.4.2 报告举例(数据来自2000年项目) 444
25.5 回顾 447
25.5.1 小组成员 447
25.5.2 我们成功了吗? 448
第26章 自动测试手册摘要 449
26.1 本章简介 450
26.2 手册简介 450
26.2.1 测试为什么要自动化 450
26.2.2 什么时候不做自动测试 451
26.2.3 如何不能实现自动化 452
26.2.4 设定现实的期望值 452
26.2.5 获得和遵守领导的承诺 454
26.3 测试自动化的基本概念 455
26.3.1 前后关系 456
26.3.2 同步 457
26.3.3 文档 458
26.4 测试过程和人员 459
26.4.1 测试自动化过程 459
26.4.2 测试队伍 459
26.5.1 不准确的结果 461
26.5 测试执行:分析结果 461
26.5.2 缺陷跟踪 462
26.6 测试量度 462
26.6.1 向领导汇报 466
26.6.2 历史趋势 467
26.7 关于手册更多的信息 467
第27章 建立可维护的GUI测试 469
27.1 背景介绍 470
27.1.1 定义 470
27.1.2 为什么需要方法学 471
27.2 费用驱动 471
27.2.1 简述录制/回放 472
27.2.2 自动化的GUI测试要求 473
27.3 测试计划和设计 473
27.3.1 测试文档的双重用途 474
27.3.2 在测试设计过程中发现错误 476
27.4 工作良好的测试事例 477
27.4.1 测试事例是独立的 478
27.4.2 测试事例具有单一用途 478
27.4.3 一个失败的测试事例不应引起其他测试事例的失败 478
27.4.4 测试事例应具有完整的文档 479
27.5 封装测试设置 479
27.5.1 向设置程序传递参数 481
27.5.2 标准化的错误复原 481
27.5.3 GUI对象映射 483
27.6.1 测试项目计划 484
27.6 实施步骤 484
27.6.2 编写测试 485
小结 485
第28章 在微软的自动化测试经验 487
28.1 历史 488
28.1.1 经历简介 488
28.1.2 准备自动化测试 489
28.1.3 测试管理系统 490
28.2.1 操作原理 491
28.2.2 优点 491
28.2 批处理文件 491
28.2.3 缺点 492
28.2.4 结论 492
28.3 捕捉/回放工具 492
28.3.1 操作原理 492
28.3.2 优点 492
28.3.3 缺点 492
28.3.4 结论 493
28.4 脚本语言 493
28.4.1 操作原理 493
28.4.2 优点 493
28.5.1 操作原理 494
28.5 测试修饰用对话框 494
28.4.3 缺点 494
28.4.4 结论 494
28.5.2 优点 495
28.5.3 缺点 495
28.5.4 结论 495
28.6 帮助测试工具 495
28.6.1 操作原理 495
28.6.2 优点 496
28.6.3 缺点 496
28.7.2 缺点 497
28.7.1 优点 497
28.7 使测试执行随机化的工具 497
28.6.4 结论 497
28.7.3 结论 498
28.8 首先使什么实现自动化? 498
28.8.1 开发自动化测试的关键点 498
28.8.2 回归测试 499
28.8.3 冲击测试 499
28.8.4 错误管理 499
28.9 十点体会 500
附录 501
词汇 503