本书共13章,前两章阐述了软件测试的过程和管理、软件测试的标准和文档等软件测试领域的基础原理,第3章引入了时下比较热门的Web应用软件测试,前三章是基础内容的阐述,使读者形成软件测试过程管理的基本概念;从第4章开始引入自动化测试,内容囊括软件测试自动化基础、原理、管理及流程等基础内容,介绍了市面上不同种类的自动化测试工具,从扩展深入的角度列举出了自动化测试失败的原因以及需要避免的陷阱;在第11章和第12章阐述了测试数据自动化管理的设计和案例解析过程设计;最后,扩展到主流自动化测试软件QTP的用法。
随着软件测试行业在国内的蓬勃发展,软件自动化测试引起了极大的关注。尽管软件测试不能实现完全彻底的自动化,但是绝大部分烦琐重复的操作转向自动化,无论从人力资源节省,还是工作效率的角度,都无疑是明智之举。
但是怎样通过自动化测试个性化地生成适合企业内部需求的自动化是比较关键的问题。在功能测试自动化及性能测试自动化等领域,企业可以依靠强大的第三方测试工具作为解决方案,例如QTP、WinRunner、Selenium等,但在具体实践中,企业依靠某个单一的工具,很难较为成功地实施自动化测试。这种困难来源于两方面的因素: 第一是理论与实践的冲突。自动化测试的理论赋予我们将测试工作自动化的便利,但伴随这种便利而来的是实践过程中并不能完整地解决测试质量与效率、投入与产出等一系列现实因素之间存在的矛盾。也就是说,自动化测试工具所能实现的自动化只是测试实施的一部分,并不完备。第二是自动化测试人员产出的脚本如果没有测试框架的规范和指导,也不具有什么现实意义。在企业自动化测试实践中,往往需要首先创建一个完整而务实的自动化测试框架,据以真正地实现高效、高质量的自动化测试。
本书特色
本书以软件测试过程管理基础知识、Web应用软件测试、软件测试自动化基础及原理,以及流程控制等方方面面的内容为基础,介绍了市面上不同种类的自动化测试工具以及自动化测试关键点和管理方法,以测试数据的自动化设计以及整个案例解析技术的流程来实现全文构思,通过实用性强的知识论述企业中的软件自动化测试实施。该书中涉及的案例大多来自于企业实践,在实用性上无疑是非常具有优势的。读者通过对本书内容的学习,不但能获取到软件自动化测试的基本知识,还能掌握很多软件自动化测试的实用技能。
本书组织
本书前两章阐述了软件测试的过程和管理、软件测试的标准和文档等软件测试领域里的基础原理,第3章引入了时下比较热门的Web应用软件测试。前三章是基础内容的阐述,使读者形成软件测试过程管理的基本概念,从第4章开始引入自动化测试。第4~10章属于对自动化测试基础原理及测试特点讨论的范畴,讨论了自动化测试的基础原理与方法、自动化测试类型、自动化测试工具及流程、自动化测试的管理,以及在自动化测试中需要注意避免的误区。第11章专门讨论了在软件自动化测试中,如何实现测试过程中的数据管理。第12、13章则实际地阐述企业中自动化测试的过程,第12章由案例解析技术入手,讨论自动化实践过程中的设计、脚本形成、数据处理等问题,第13章则介绍了主流自动化测试工具——QTP的使用方法。
本书由李千目主编,陶传奇、刘晓迁、张宏、张功萱副主编。何光明、王珊珊、卢振侠、石雅琴、杨橙、陈莉萍、陈凤、曹冬梅等也参与了本书的资料收集、校对等工作。
作者
2015年2月
第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与项目组外部人员的沟通/91.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.1Web应用软件/16
3.1.1Web应用软件的概念/16
3.1.2Web应用软件的特点/16
3.1.3Web应用软件的基本结构/16
3.1.4Web应用软件的常用开发技术/16
3.2应用服务器的分类和特征/17
3.2.1三层和多层体系结构/17
3.2.2应用服务器的分类/17
3.2.3应用服务器对Web应用软件测试的
影响/17
3.3Web应用软件的测试策略/18
3.3.1表示层的测试/18
3.3.2业务层的测试/18
3.3.3数据层的测试/18
3.3.4层间的集成测试/19
3.4Web应用软件的系统测试技术/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.5Web应用软件的系统安全检测与防护/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通常RandD不重视自动化测试或手动
测试的工作/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.7100%测试覆盖率/57
9.2.8捕获/回放等同AST/57
9.2.9AST是手动测试活动/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.7GUI测试建议/63
9.3.8GUI对象命名标准/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.4QTP调用实例/107
11.10C#实现数据管理程序实例/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.7COM数据调用接口简介/117
11.10.8QTP即插即用接口与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.1QTP简介/183
13.1.1自动化测试的好处/183
13.1.2QuickTest 工作流程/183
13.1.3QTP程序界面/184
13.1.4Mercury 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.1QuickTest 检查点种类/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