第一篇 初级篇——认识自动化测试框架 1
第1章 将降大任——自动化测试 1
1.1软件测试面临的困境与迷局 2
1.1.1软件质量困境 2
1.1.2软件成本困境 6
1.2“时势造英雄”——软件测试自动化的异军突起 8
1.2.1软件自动化测试如何代替手工测试 8
1.2.2推动软件自动化测试的源动力 12
第2章 “神话”破灭——自动化测试能否担当大任 16
2.1企业自动化测试实施的情景 17
2.1.1自动化测试实施背景介绍 17
2.1.2自动化测试实施场景回放 17
2.2自动化测试的“神话”破灭 20
2.2.1昂贵的自动化测试实施成本 20
2.2.2实际上并不强大的自动化测试脚本 21
2.2.3自动化测试实施的命门:维护成本 22
第3章 成功之道——如何构建高质量的自动化测试 24
3.1PERAL模型的实施背景 25
3.2Purpose:如何建立一个务实明确的自动化测试目标 25
3.2.1问题1:自动化还是手工测试 26
3.2.2问题2:如何估算分析自动化测试效益 26
3.2.3问题3:如何构建高收益成本比自动化测试目标 29
3.3Evaluation:评估和估算的量化决策指南 37
3.3.1工具选择定律一:测试界面决定工具类族 38
3.3.2工具选择定律二:测试项目综合特征确定工具应用方案 41
3.3.3工具选择实际案例分析 44
3.3.4总结 47
3.4Architecture:构建和设计自动化测试 48
3.4.1自动化测试的最终用户是测试工程师 48
3.4.2自动化测试的实质是开发一个测试软件 49
3.5Run and Debug:开发调试 49
3.5.1高内聚和低耦合的模块实现原则 49
3.5.2数据驱动原则 53
3.5.3自动化脚本开发质量优先级 56
3.6Link with Manual test:自动化测试与手工测试的有效整合 57
3.6.1自动化测试和手工测试的关系 58
3.6.2自动化测试与手工测试流程整合 59
3.7PEARL模型实施成功经验 60
3.7.1重置目标,长远规划 60
3.7.2强大的自动化测试框架 61
3.8总结 62
第4章 组织实施——怎样建立与培养自动化测试团队 63
4.1测试团队简介 64
4.2明确自动化测试目标 64
4.2.1好的目标是自动化测试实施的发动机 64
4.2.2建立一个高收益并可行的自动化测试实施目标 65
4.3积极有效的沟通技巧 70
4.3.1勤汇报,多交流 72
4.3.2实用为先 74
4.4培养和建立自动化测试团队 75
4.4.1手工测试团队的规划 76
4.4.2自动化测试实施中的团队 78
4.4.3自动化测试实施后的团队 80
4.5自动化测试技术储备 81
第二篇 中级篇——自动化测试框架基本原理及实现 82
第5章 庐山真面目——自动化测试框架 82
5.1自动化测试框架简介 83
5.2测试的自动化——以工具为中心 83
5.3百家争鸣——形形色色的自动化测试框架 85
5.3.1数据驱动测试框架(The Data-Driven Testing Framework) 85
5.3.2关键字驱动或表驱动测试框架(The Keyword-Driven or Table-Driven Testing Framework) 89
5.3.3总结 90
5.4自动化的测试——测试框架原型 91
5.4.1框架包括的具体技术 91
5.4.2框架的用户 92
5.4.3制定和开发框架 93
5.5测试框架集大成者——无需人工干预的自动化回归测试 93
第6章 实例研究——单元自动化测试框架解决方案 95
6.1被测对象介绍 96
6.1.1背景简介 96
6.1.2单元测试对象URLEncoder.encode函数介绍 97
6.1.3对URLEncoder.encode的单元测试案例设计 98
6.2自动化测试框架逐步实施 100
6.2.1第一步:单元测试自动化 100
6.2.2第二步:框架——数据驱动 101
6.2.3第三步:框架——整合开发测试流程 104
6.2.4第四步:框架(高级)——定义自动化测试管理策略和规范 107
6.3单元自动化测试框架实施总结 108
第7章 实例研究——基于UI功能的自动化测试框架解决方案 109
7.1GUI的软件自动化测试原理与技术基础 110
7.1.1GUI软件测试简介 110
7.1.2GUI自动化测试原理与实例演示 114
7.1.3在构建自动化测试框架时的工具因素 124
7.2基于QTP的功能自动化测试框架原型的搭建 125
7.2.1QTP工具简介 125
7.2.2自动化测试框架预期功能目标 126
7.2.3自动化测试框架的实现 127
第三篇 高级篇——自动化测试框架案例实战 142
第8章 自动化测试框架实例——Automation Center(AC) 142
8.1产品测试案例分析 143
8.1.1被测软件产品介绍——某大型分布式企业协同组件介绍 143
8.1.2软件产品测试需求分析 144
8.1.3测试需求矩阵分析 146
8.1.4全球化测试需求分析 149
8.2测试中应用AC的效益分析 153
8.2.1预期成本计算 154
8.2.2预期收益计算 154
8.2.3预期收益比 155
8.2.4AC实施过程规划 155
8.3AC框架中脚本开发规范 156
8.3.1自动化测试中的规范 156
8.3.2规范应该考虑的因素 157
8.3.3有效地推行自动化测试规范 159
8.3.4AC中QTP脚本规范实例 159
8.4AC框架测试报告格式及规范 163
8.4.1总览报告 163
8.4.2细分报告 164
8.4.3AC测试报告总结 169
8.5AC框架中客户端自动化测试解决方案 171
8.5.1AC中QTP Agent介绍 171
8.5.2“一次编码,多语言运行”的QTP脚本开发思想及实现 172
8.5.3AC中QTP Agent在企业内部环境的部署 178
8.5.4AC中QTP Agent收益 183
8.6AC中安装自动化解决方案 185
8.6.1Windows下软件安装:默认式安装与交互式安装 185
8.6.2Linux下软件安装:文本模式与图形化模式 192
8.7AC中自动化管理与控制平台 199
8.7.1AC拓扑结构设计 199
8.7.2AC的工作协作图 202
8.7.3AC工作流程图 203
8.8AC应用经验 205
8.8.1明确而务实的需求 205
8.8.2有效的人员培训 205
8.8.3敏捷高效的反馈机制 206
8.9AC开发技术实例 206
8.9.1基于事务(transaction)机制的测试案例状态栈的实现 206
8.9.2测试案例状态轮询Java实现 207
8.9.3AC与Agent协议原语 208
第9章 开发高质量测试脚本 210
9.1案例1:脚本开始处首先进行环境检查 211
9.2案例2:函数入口检查 213
9.3案例3:使用正则表达式处理字符串 214
9.4案例4:脚本健壮性出错处理 219
9.5案例5:测试脚本中参数变量的规范命名 222
9.6案例6:内存的利用和回收 225
9.7案例7:数据驱动 228
附录 与自动化测试实施人员的对话实录 232