Everyday Scripting with Ruby 中文版
分類: 图书,计算机/网络,程序设计,Java Java Script J2EE,
作者: (美)马瑞克(Marick,B.) 著,廖志刚,李琳骁,诸鸿君 译
出 版 社: 电子工业出版社
出版时间: 2008-5-1字数: 374000版次: 1页数: 301印刷时间: 2008/05/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121064579包装: 平装编辑推荐
大量精彩的诀窍、指导、警告、例子、隐喻、练习及提问!对于那些想最大限度地利用测试自动化的软件测试从业者来说,本书极具参考价值。
Grigori Melnik,加拿大卡尔加里大学讲师
作为测试人员,你用于创建复杂测试数据的时间是否比使用它们的时间还要长?作为业务分析师,你多年读书的结果是否只是让你忙于把数据从报表拷贝到电子表格中?作为一个程序员,你是否每天都不得不巡视版本控制系统的输出来寻找所需文件?
如果你对上述问题的回答有一个为“是”,那么你就是在浪费工作台上的计算机。应该让计算机做它应该做的事情,而你应该做的事情是思考!你只需要一门脚本语言(它是免费的!)和本书(它很便宜!),并花一些时间通读示例程序并完成练习就足够了。
从本书中,你将学到Ruby的一些基础知识,并了解如何使用测试驱动设计编写稳定可控的脚本。你还能学到如何使用应用程序框架,它使你编写少量代码即可完成工作。
你还会学到如何处理常见的错误。你将学会辨明是否会走进死胡同,并学会怎样走出困境。你甚至能看到那些最常见的键盘输入错误,当真正见到它们时,你会轻松地意识到错在哪里。
■学会让任务自动化。
■获得一些真正有用的脚本程序,它们可以轻松地应用到你的工作中。
■理解编程术语和概念。
■从已有的代码和库中获益。
■跟团队成员更有效地沟通。
Brian Marick拥有英语文学和计算机科学的双重学位,多面手的才能也体现在他的职业生涯中。有时他是程序员,有时他又是测试人员。不管在哪个领域,他都比别人做得更好,因为他了解另外一个领域。在编写《The Craft of Softwa re Testin9》一书时,他就展现了这种才能。Brian还是《敏捷软件开发》(《Agile Software Development》)的起草者之一,并从此在敏捷方法学(Agile methodologies)方面有深入研究。因为敏捷方法鼓励跨学科的工作方式,他又一次发现自己不适合固定的领域。当做咨询工作时,他必须面对各种挑战。
作为测试人员,你用于创建复杂测试数据的时间是否比使用它们的时间还要长?作为业务分析师,你多年读书的结果是否只是让你忙于把数据从报表拷贝到电子表格中?作为一个程序员,你是否每天都不得不巡视版本控制系统的输出来寻找所需文件?如果你对上述问题的回答有一个为“是”,那么你就是在浪费工作台上的计算机。应该让计算机做它应该做的事情,而你应该做的事情是思考!你只需要一门脚本语言(它是免费的!)和本书(它很便宜!),并花一些时间通读示例程序并完成练习就足够了。
从本书中,你将学到Rubv的一些基础知识,并了解如何使用测试驱动设计编写稳定可控的脚本。你还能学到如何使用应用程序框架,它使你编写少量代码即可完成工作。
你还会学到如何处理常见的错误。你将学会辨明是否会走进死胡同,并学会怎样走出困境。你甚至能看到那些最常见的键盘输入错误,当真正见到它们时,你会轻松地意识到错在哪里。
内容简介
这是一本关于Ruby特性和技巧的书,特性会在项目需要用到的时候进行介绍,每个部分也会在以前技巧的基础上引入新的技巧。本书将向读者介绍Ruby的一些基础知识,如何使用测试驱动设计来稳定可控地编写脚本,如何使用应用程序框架,如何处理常见错误,等等。
书中包含大量精彩的诀窍、指导、警告、案例、隐喻、练习以及提问,对于那些想最大限度地利用测试自动化的软件测试从业者、分析师、程序员来说,本书极具参考价值。
目录
第1章引言
1.1关于本书结构
1.2全书梗概
1.3售后服务
1.4续篇
1.5鸣谢
第2章起步
2.1下载练习文件
2.2从命令行开始
2.3你需要安装Ruby吗
2.4安装Ruby
2.5两个基本工具
2.6命令行提示符和irb提示符
2.7是犯错的时候了
第1部分基础知识
第3章第一个脚本:比较文件清单
3.1一个实战脚本
3.2Ruby世界
3.3对象发送和接收消息
3.4用变量来命名对象
3.5比较数组
3.6打印到屏幕
3.7制作一个脚本
3.8我们进行到哪了
3.9练习
第4章Ruby语言细节:数组
第5章三处改进和一处缺陷修正
5.1命令行参数
5.2忽略大小写
5.3方法
5.4分割字符串
5.5修正一个Bug
5.6我们在哪儿
5.7练习的前奏
5.8练习
第6章Ruby语言细节:If、相等性判断和Unless
6.1if…elsif…else
6.2什么时候对象相等
6.3if的一个快捷方式
6.4unless
6.5问号操作符
第Ⅱ部分一步一步编写脚本
第7章Chutn项目:轻松编写脚本
7.1演示项目
7.2构建解决方案
7.3我们进行到哪了
7.4练习
第8章Ruby语言细节:布尔型
8.1其他布尔运算符
8.2优先级
8.3所有对象皆为真值
8.4通过布尔表达式选择对象
第9章利器在手,正则表达式
9.1用正则表达式匹配字符串
9.2用正则表达式解析字符串
9.3重新排列数组
9.4我们进行到哪了
9.5练习
第10章Ruby语言细节:正则表达式
10.1特殊字符
10.2分组和多选结构
10.3拆分字符串
10.4幕后的变量
10.5正则表达式选项
10.6等等,还没完呢
10.7练习
第11章用类捆绑数据和方法
11.1在类里定义方法
11.2用对象包含数据
11.3我们进行到哪了
11.4练习
第12章Ruby语言细节:类(附带介绍Symbol)
12.1定义访问方法
12.2Self
12.3类方法
12.4类变量和全局变量
12.5练习
第Ⅲ部分在活生生的世界中工作
第13章用正则表达式刮取网页
13.1像处理文件一样处理网页
13.2把注意力限定在网页的有用部分
13.3抽取标题和作者
13.4用散列表存储有名数据
13.5开始亲缘图书旅程
13.6亲自练习
第14章其他使用Web应用的方法
14.1处理XHTML
14.2驱动浏览器
14.3直接访问底层协议
第15章处理逗号分隔的数据
15.1CSV库
15.2使用代码块进行自动清理
15.3更多CSV操作
15.4把所有这些应用到affinity-trip.rb中
15.5发现并理解标准库中的类
15.6用数据取代代码
第16章Ruby语言细节:散列表
第17章Ruby语言细节:参数列表
17.1可选参数
17.2剩余参数
17.3关键字参数
第18章下载辅助脚本和应用
18.1寻找包
18.2使用setup.rb
18.3使用RubyGems
18.4理解你所下载的
第19章打磨你的脚本
19.1加载路径
19.2避免文件名冲突
19.3使用模块避免类命名冲突
19.4让脚本替你完成工作
19.5轻松自如的工作
19.6rakefile
19.7位置无关的测试
19.8练习
第20章Ruby语言细节:模块
20.1嵌套模块
20.2包含模块
20.3类是模块
第21章当脚本出现问题的时候
21.1使用异常报告问题
21.2一种错误处理策略
21.3异常处理选项
21.4使用Block的方法
21.5练习
第Ⅳ部分成为行家
第22章框架:用填空法编写脚本
22.1使用watchdog脚本
22.2继承
22.3收集用户选择
第23章发现比创建更安全
23.1Barker的故事
23.2发生了什么?在哪儿发生?
23.3用模块替代超类
第24章最后总结
第Ⅴ部分书后附录
附录A词汇表
附录B练习答案
B.1第3章练习答案
B.2第5章练习答案
B.3第7章练习答案
B.4第9章练习答案
B.5第10章练习答案
B.6第11章练习答案
B.7第12章练习答案
B.8第21章练习答案
附录C参考文献
索引
书摘插图
第1章引言
鞋匠的孩子光着脚到处跑。
那些不从事软件开发的人会发现,大量的工具不断涌现,使得工作负担不断从人类转移到计算机。但是软件开发人员常常有不同的观点。他们日复一日地重复那些手工劳动:在一张工作台前,一个测试人员正在用手工方式把测试数据输入到数据库里;在另外一张工作台,一个程序员正筛查版本控制系统的输出结果,试图找到想要的文件;在第三张工作台,一个商业分析师正将报表里的数据拷贝到一个电子表格中。
以上这些工作计算机可以做得很完美,人们为什么要自己做?这与知识和技能有关。测试人员认为编程太难,因此从来不学;程序员会编程,但是他所会的语言无法轻松完成此项工作,并且他没有时间利用颇有难度的方式来实现这些任务:那位分析师曾写过一个脚本来完成类似的杂事,但是当他试着把脚本应用到那个报表时,脚本却不能工作,使这个脚本重新工作会比手工拷贝数据花费更多时间,即使他下个月还会拷贝6次。
本书是为下面这几类人写的:
•为那些认为编程太难的人(我们的测试人员):其实编程没有那么难。编程的名声不太好,是因为计算机曾经运行得很慢。为了使程序运行得足够快,程序员不得不使用那些必须告诉计算机各种各样繁琐细节的编程语言。现在计算机已经足够快了,能使用那些不需要阐述所有细节的语言。结果就是,现在编程简单多了。
•为那些在编写或改写较大脚本时陷入困境的人(我们的分析师):你还不能掌控复杂性,在本书中你能学到这些。本书会教你一种现代风格的编程方式,它强调测试先行(测试驱动的编程),尽可能借鉴别人的工作,逐步扩展程序,并且让代码一直保持干净整洁。
很多脚本是一次性的:编写、使用、然后扔到一边。不过对于那些希望保留的脚本,这些技能会助你一臂之力。(说实话,我接触过的许多专业程序员也没有学到这些技能,因此他们会发现这本书是一个不错的开始。)
•为那些熟知“错误”的编程语言的人(我们的程序员):象Java、C#、c++或者C这样的编程语言有特定的使用环境,但是它们并不善于快速实现小程序,尤其是那些需要操作文本和文件而非数字和内部数据结构的小程序。你需要在自己的技能清单里添上另一门编程语言。
在本书里,你将学习一种对上述三类读者都很适合的语言——RubY。它易学易用,既有转换或者搜索文本这类简单的特性,也具备处理复杂事物的各种特性。如果你是测试人员,你会很高兴,因为测试也是Ruby所擅长的领域之一(很大程度上归功于Watir,见http://wtr.rubyforge.org/,它是一个驱动Web浏览器的工具)。如果你是程序员,你大概已经知道Ruby最近因为它的“杀手级应用”——Rails(一个构建Web应用的框架,见http://www.rubyonrials.ore/)而变得爆受欢迎。抛开这些,Ruby已有超过l0年的历史,它不是某种短暂的时髦东西或者不稳定的原型。而且,Ruby社区十分友好,每个人都会乐于参与其中。
……