读书人

软件自动化测试框架设计与实践

发布时间: 2010-02-10 17:25:10 作者:

 软件自动化测试框架设计与实践


基本信息出版社:人民邮电出版社
页码:239 页
出版日期:2009年11月
ISBN:7115215138/9787115215130
条形码:9787115215130
版本:第1版
装帧:平装
开本:16
正文语种:中文
丛书名:软件测试丛书

内容简介 《软件自动化测试框架设计与实践》从自动化测试思想、技术和实施操作等层面进行深入分析,全面讲解了如何针对企业或项目需求,并以量体裁衣的方式来设计完成自动化测试框架,从而为自动化测试实施的企业和个人提供实战指南。《软件自动化测试框架设计与实践》分3篇,第一篇初级篇,包括第1~4章,主要介绍自动化测试的基础知识和经验,以及自动化测试团队的建设等;第二篇中级篇,包括第5~7章,主要介绍自动化测试框架的构建思想,以及在UI测试自动化和单元测试自动化等领域内的技术实现;第三篇高级篇,包括第8~9章,主要讲解自动化测试框架的实例研究,开发高质量的实例代码等内容。
《软件自动化测试框架设计与实践》旨在帮助读者学习和理解测试框架的设计原则和实施技巧,以便根据自己测试的项目特点贯彻实施。读者阅读《软件自动化测试框架设计与实践》之后,将会理解并把握如何根据项目和产品特点构建一个高效、高质量的自动化测试解决方案。
作者简介 柳胜,具有多年的软件开发和测试实践经验,尤其擅长自动化测试工具应用、性能测试和单元测试。曾在摩托罗拉等大型外企担任高级开发工程师、高级自动化测试工程师等职务。作者博客(www.cesoo.com)提供本书源代码及相关视频文件下载。
编辑推荐 《软件自动化测试框架设计与实践》:
集人员组织、流程管理、测试技术于一体的自动化测试框架实战知识,引导读者成功实施自动化测试。
基于QTP的自动化测试框架搭建,制定脚本规范和框架接口标准。
自动化测试框架实例一Automation Center(AC),涵盖测试框架结构设计与应用开发技术。
网站www cesoo.com/bbs提供《软件自动化测试框架设计与实践》源代码及相关视频文件下载。
资深测试专家提供在线答疑
自动化测试框架基础:
目标建立、评估模型
开发指南
架构设计
自动化测试框架组织实施
手工测试团队规划
自动化测试实施中的测试团队规划
自动化测试实施后的测试团队规划
自动化测试框架项目实战及开发技巧
单元测试框架实例
UI测试框架实例
企业级测试框架实例
高质量测试程序开发技巧
目录
第一篇 初级篇——认识自动化测试框架
第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.1 PERAL模型的实施背景 25
3.2 Purpose:如何建立一个务实明确的自动化测试目标 25
3.2.1 问题1:自动化还是手工测试 26
3.2.2 问题2:如何估算分析自动化测试效益 26
3.2.3 问题3:如何构建高收益成本比自动化测试目标 29
3.3 Evaluation:评估和估算的量化决策指南 37
3.3.1 工具选择定律一:测试界面决定工具类族 38
3.3.2 工具选择定律二:测试项目综合特征确定工具应用方案 41
3.3.3 工具选择实际案例分析 44
3.3.4 总结 47
3.4 Architecture:构建和设计自动化测试 48
3.4.1 自动化测试的最终用户是测试工程师 48
3.4.2 自动化测试的实质是开发一个测试软件 49
3.5 Run and Debug:开发调试 49
3.5.1 高内聚和低耦合的模块实现原则 49
3.5.2 数据驱动原则 53
3.5.3 自动化脚本开发质量优先级 56
3.6 Link with Manual test:自动化测试与手工测试的有效整合 57
3.6.1 自动化测试和手工测试的关系 58
3.6.2 自动化测试与手工测试流程整合 59
3.7 PEARL模型实施成功经验 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

第二篇 中级篇——自动化测试框架基本原理及实现
第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.1 GUI的软件自动化测试原理与技术基础 110
7.1.1 GUI软件测试简介 110
7.1.2 GUI自动化测试原理与实例演示 114
7.1.3 在构建自动化测试框架时的工具因素 124
7.2 基于QTP的功能自动化测试框架原型的搭建 125
7.2.1 QTP工具简介 125
7.2.2 自动化测试框架预期功能目标 126
7.2.3 自动化测试框架的实现 127

第三篇 高级篇——自动化测试框架案例实战
第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.4 AC实施过程规划 155
8.3 AC框架中脚本开发规范 156
8.3.1 自动化测试中的规范 156
8.3.2 规范应该考虑的因素 157
8.3.3 有效地推行自动化测试规范 159
8.3.4 AC中QTP脚本规范实例 159
8.4 AC框架测试报告格式及规范 163
8.4.1 总览报告 163
8.4.2 细分报告 164
8.4.3 AC测试报告总结 169
8.5 AC框架中客户端自动化测试解决方案 171
8.5.1 AC中QTP Agent介绍 171
8.5.2 “一次编码,多语言运行”的QTP脚本开发思想及实现 172
8.5.3 AC中QTP Agent在企业内部环境的部署 178
8.5.4 AC中QTP Agent收益 183
8.6 AC中安装自动化解决方案 185
8.6.1 Windows下软件安装:默认式安装与交互式安装 185
8.6.2 Linux下软件安装:文本模式与图形化模式 192
8.7 AC中自动化管理与控制平台 199
8.7.1 AC拓扑结构设计 199
8.7.2 AC的工作协作图 202
8.7.3 AC工作流程图 203
8.8 AC应用经验 205
8.8.1 明确而务实的需求 205
8.8.2 有效的人员培训 205
8.8.3 敏捷高效的反馈机制 206
8.9 AC开发技术实例 206
8.9.1 基于事务(transaction)机制的测试案例状态栈的实现 206
8.9.2 测试案例状态轮询Java实现 207
8.9.3 AC与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
……
序言 自动化测试是当今软件测试行业一个很受关注的方向。目前,业界实施比较成熟的是性能测试自动化。在系统测试自动化方面,包括UI测试自动化、单元测试自动化等领域,虽然可以用强大的第三方测试工具作为解决方案,如QTP、WinRunner、Selenium等,但在具体实践中,企业依靠某个工具很难成功实施测试自动化。究其原因,一是,理论上利用测试工具进行自动化测试可以替代部分工作,但在实践过程中并不能完整地解决测试质量与效率、投入与产出等一系列现实因素之间存在的矛盾。从这个角度来说,测试工具提供的测试技术只是自动化测试实施的一部分。二是,测试人员开发了一堆自动化测试脚本若没有具体的框架来规定实施和执行的原则,也会无用武之地,这就像造车一样,只具备了零件等元素但缺少整体的造车图纸来指导使用它们也难以造出整车。因此,现实的测试实践中,我们需要一个完整而务实的自动化测试解决方案——测试框架,以便真正地实现高效、高质量的软件自动化测试。
473测试框架(TestcFramework)作为实现高效率、高质量自动化测试的完整解决方案,从诞生之日开始,越来越多的软件组织和个人用自己的逻辑去诠释测试框架,所以,我们听到了种种说法,一套测试管理系统被称之为测试框架,一个测试工具被冠以关键字驱动框架之名,甚至,一段程序也被声称其实现了数据驱动的框架。测试框架犹如盲人摸象中的那头大象一样,有人说它是一个软件,只不过它的功能是测试另外一个软件,有人认为它是一套流程和规范,否则怎称框架。
文摘 插图:


2.人力成本
可以看出,李经理在开始的时候并没有考虑到自动化测试对技术有较高的要求,因为他安排了一个没有开发经验的小赵去做自动化测试。一个多月后,发现时间已经拖延的情况下,才改换有脚本经验的小张接管工作。
3.工具成本
如果使用第三方工具来做自动化测试,那么测试人员对工具的使用一定要有所了解并掌握。团队中要么有熟悉工具使用方法的人,要么就请专家进行培训。李经理一个多月后才意识到这个问题。
总之,李经理在做自动化测试实施之前完全没有准备好,对自动化测试的时间、人力和技术成本没有正确地估算,而是在“错误的时间”,安排“错误的人”发起了一件正确的事情,这其实已经注定了测试要失败的结果。
2.2.2实际上并不强大的自动化测试脚本
当接到客户的投诉电话之前,也许李经理会抱有这样一种想法:这些功能我们都是用自动化脚本运行测试的,程序不会偷奸耍滑,因此肯定不会有差错的。但具有讽刺意味的是,事实上正是自动化测试结果欺骗了他,给了他一个一切OK的幻象,直到被客户的投诉所击破。
实际上,自动化测试程序从一诞生就是“呆板”的,而非“智能”的;是“脆弱”的,而非“健壮”的,直到自动化测试开发人员教会它处理各种各样的问题。
程序只会向我们保证它是按照设定好的步骤运行,仅此而已。对于UI自动化测试脚本来说,它不会看到页面上突然报出一个红色字体的错误(除非我们让它去捕捉)而停止运行,也不会对一个意外的突发事件进行处理,比如一个弹出式对话框转移了焦点。
通常,测试人员在编写测试案例时,没有人会这样写:“web页面上单击登录按钮后,如果弹出一个‘是否记住密码’的对话框,一定要记得选择‘否’选项,然后继续执行测试案例”。对于手工测试,这种问题根本算不上问题,关掉对话框继续操作即可。而对于自动化测试来说,则需要以程序的方式写出来告诉脚本如何处理这种情况,否则它将无所适从,甚至会报出一堆毫无意义的错误。从这种意义上来说,自动化测试永远不会比人工测试更强大。
读书人网 >软件工程

热点推荐