新書推薦:
《
盗墓笔记之秦岭神树4
》
售價:HK$
57.3
《
战胜人格障碍
》
售價:HK$
66.7
《
逃不开的科技创新战争
》
售價:HK$
103.3
《
漫画三国一百年
》
售價:HK$
55.2
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:HK$
82.8
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
59.8
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
|
編輯推薦: |
Cucumber创始人与最有经验的用户和贡献者之一的权威力作。
流行的自动化功能测试工具Cucumber的权威指南。
国内敏捷及测试群体极好口碑和期望。
|
內容簡介: |
《Cucumber:行为驱动开发指南》的两位作者是Matt Wynne和Aslak
Helles?y,前者是Cucumber最有经验的用户和贡献者之一,后者是Cucumber的创始人,因此,《Cucumber:行为驱动开发指南》是一本权威指南,它会提供使用Cucumber所需的全部知识,让你和你的团队自信地开启Cucumber之旅。尽管Cucumber诞生于Ruby社区,但你可以用它测试几乎所有系统,从简单的shell或Perl脚本,到使用PHP、Java或任何其他平台编写的Web应用。
书中将展示如何用一组清晰、可执行且团队中任何人都能读懂的规格说明来表达用户那些天马行空的想法。你将学会如何将这些示例提供给Cucumber,并让它指导你的开发过程。《Cucumber:行为驱动开发指南》的第一部分会提供Cucumber入门所需的全部知识,引导你从Cucumber的核心特性起步,通过Cucumber的Gherkin
DSL,使用自然语言来描述客户想要的系统行为,然后带你编写Ruby代码来解释这些自然语言描述的规格说明并据此来验证应用的行为。第二部分将通过一个可以工作的例子来巩固学到的知识,同时学习一些更高级的Cucumber技术,还将学习如何测试异步系统和使用数据库的系统。第三部分提供了一些解决问题的方法,针对的都是作者曾帮助其他团队解决过的最困难、最常见的问题。基于这些模式和技术,你将学习如何使用Capybara和Selenium测试大量使用Ajax的Web应用,测试REST
Web服务、Ruby on Rails应用、命令行应用、遗留程序等。
Cucumber有助于在软件团队中的技术人员和非技术人员之间架起沟通的桥梁。《Cucumber:行为驱动开发指南》的内容既适合开发人员和测试人员阅读,也适合软件团队中的非技术读者阅读。
|
關於作者: |
作者介绍
Matt Wynne
独立咨询顾问,他帮助各种各样的团队学习如何尽其所能交付软件,并同时享受这一过程。业余时间他是Cucumber项目的核心开发者,Matt的博客是mattwynne.net,推特是@mattwynne。
Aslak Helles?y Cucumber项目的创始人,伦敦DRW交易集团(DRW Trading
Group)伦敦公司的一名高级开发工程师,他使用多种不同的语言编写快速、智能的软件。在此之前,他是挪威BEKK咨询公司的首席科学家。Aslak的推特是@aslak_hellesoy。
译者介绍
许晓斌
程序员,敏捷教练,技术作者,持续集成方面的专家。曾任职于Sonatype,是开源软件Nexus的核心团队成员,Maven中央仓库的主要维护者。著有《Maven实战》,译有《Maven权威指南》,有不少文章发表于InfoQ、《程序员》等技术杂志,活跃于敏捷社区并在Agile
Tour等ScrumGathering等会议上发表过演讲。新浪微博@juvenxu,博客http:www.juvenxu.com。
王江平
就职于Autodesk软件上海分公司。热爱编程,热爱修bug,热爱读书,热爱交友,热爱唱歌,热爱看戏,热爱骑单车……热爱everything却无一精通的专业程序员一名。也热爱人肉翻译,参与、主导或独立完成过《代码之美》、《C#3.0设计模式》、《敏捷开发的艺术》、《软件开发者路线图》、《Java语言精粹》、《Python计算与编程实践》等书的翻译。新浪微博@steedhorse。
|
目錄:
|
第一部分Cucumber基础
第1章为何使用Cucumber
1.1自动化验收测试
1.2行为驱动开发
1.2.1通用语言
1.2.2实例
1.3活的文档
事实来源
1.4Cucumber如何工作
1.5我们学到了什么
第2章Cucumber初体验
2.1理解我们的目标
2.2创建一个特性
2.3创建步骤定义
2.4实现第一个步骤定义
2.5运行程序
2.6改变格式器
2.7添加一个断言
2.8让测试通过
2.9我们学到了什么
2.9.1目录结构
2.9.2小步前进
2.9.3Gherkin
2.9.4步骤定义
第3章Gherkin基础
3.1Gherkins是干什么的
3.1.1具体实例
3.1.2可执行的规格说明
3.2格式和语法
3.2.1关键字
3.2.2模拟运行
3.3Feature
3.4场景
3.4.1Given、When和Then
3.4.2And和But
3.4.3使用星号替换Given、When和Then
3.4.4无状态
3.4.5名称和描述
3.5注释
3.6语言
3.7我们学到了什么
第4章步骤定义:外在篇
4.1步骤和步骤定义
4.1.1匹配步骤
4.1.2创建步骤定义
4.1.3Given、When和Then是相同的
4.1.4使用本国语言
4.2捕获参数
4.2.1捕获组
4.2.2多选分支
4.2.3点号
4.2.4星号修饰符
4.2.5字符组
4.2.6字符组简记法
4.2.7加号修饰符
4.3多重捕获
4.4灵活性
4.4.1问号修饰符
4.4.2非捕获组
4.4.3锚点
4.5返回结果
4.5.1未定义的步骤
4.5.2待定的步骤
4.5.3失败的步骤
4.6我们学到了什么
第5章富有表现力的场景
5.1背景
5.2数据表
5.2.1在步骤定义中处理数据表
5.2.2将数据表转换成数组
5.2.3使用diff!比较数据表
5.3场景轮廓
5.3.1更大的占位符
5.3.2多个实例表
5.3.3解释自己
5.4嵌套步骤
5.4.1嵌套步骤重构
5.4.2参数和嵌套步骤
5.4.3嵌套步骤的危险
5.5文档字符串
5.6使用标签和子文件夹保持条理性
5.6.1子文件夹
5.6.2运行子文件夹中的特性
5.6.3标签
5.7我们学到了什么
第6章Cucumber常见问题及解决之道
6.1感受痛苦
6.1.1闪烁的场景
6.1.2脆弱的特性
6.1.3缓慢的特性
6.1.4厌倦的利益相关人
6.2同心协力
6.2.1偶然细节
6.2.2命令式步骤
6.2.3重复
6.2.4语言不通用
6.2.5闭门造车式的特性
6.3照管好你的测试
6.3.1渗露的场景
6.3.2竞争条件和打瞌睡的步骤
6.3.3共享的环境
6.3.4被隔离的测试人员
6.3.5固件数据
6.3.6大量场景
6.3.7大泥球
6.4停掉生产线和缺陷预防
6.5我们学到了什么
第二部分可以工作的示例
第7章步骤定义:内在篇
7.1勾勒出领域模型
7.1.1准确用词
7.1.2实话实说
7.1.3做最简单的事情
7.2使用变形器消除重复
7.3为World添加自定义辅助方法
7.3.1在World中存储状态
7.3.2创建自定义辅助方法
7.3.3自定义World
7.3.4设计抵达终点线的方法
7.4组织代码
7.4.1隔离应用程序代码
7.4.2启动Cucumber环境
7.4.3变形器和World模块
7.4.4组织步骤定义
7.4.5模拟运行和env.rb
7.5我们学到了什么
第8章支持代码
8.1修复bug
检查和重构
8.2开启用户界面
安装gem
8.3做出转换
设计用户界面
8.4使用钩子
8.4.1打标签的钩子
8.4.2观察场景
8.4.3Around钩子
8.4.4在其他时间运行的钩子
8.5构建用户界面
提供现金
8.6我们学到了什么
第9章处理消息队列和异步组件
9.1我们全新的异步架构
9.2如何同步
9.2.1通过监听同步
9.2.2通过取样同步
9.3实现新架构
9.3.1驱动出接口
9.3.2构建交易队列
9.3.3构建BalanceStore
9.3.4添加钩子以重置状态
9.3.5构建TransactionProcessor
9.4修复闪烁的场景
9.4.1安装及配置ServiceManager
9.4.2调查闪烁
9.4.3使用取样修复闪烁
9.4.4测试什么都没有发生
9.5我们学到了什么
第10章数据库
10.1ActiveRecord介绍
使用迁移管理模式变更
10.2重构至使用数据库
10.3读取及写入数据库
10.4用事务清理数据库
10.5使用截断清理数据库
10.6我们学到了什么
第三部分应用Cucumber
第11章Cucumber命令行界面
11.1Cucumber命令行选项
11.2运行一个场景子集
11.2.1使用标签表达式过滤
11.2.2基于行号过滤
11.2.3基于名称过滤
11.3改变Cucumber的输出
11.3.1特殊的格式器
11.3.2格式化至文件及使用多种格式器
11.3.3显示完整回溯
11.4指定步骤定义的位置
11.5管理进行中的工作
11.6使用profile
11.7从Rake运行Cucumber
11.8在持续集成中运行Cucumber
11.8.1严格要求
11.8.2共享报告
11.9我们学到了什么
第12章测试RESTWeb服务
12.1进程内测试基于Rack的RESTAPI
12.1.1建立应用的骨架——然后存储一些水果
12.1.2使用Rack-Test测一测我们的应用
12.1.3比较JSON
12.2进程外测试任意RESTAPI
12.3我们学到了什么
第13章为遗留应用添加测试
13.1特性描述测试
13.2消灭bug
13.3添加新的行为
13.4代码覆盖率
13.5我们学到了什么
第14章引导Rails
14.1运行生成器
14.2创建用户
14.3发布消息
14.4关联消息与用户
14.5手工创建控制器
14.6实现视图
14.7我们学到了什么
第15章使用Capybara测试AjaxWeb应用
15.1实现不用Ajax的简单搜索
15.1.1准备内容以供搜索
15.1.2导航、填写输入域和点击按钮
15.1.3修复控制器代码
15.1.4让Capybara做点事情
15.1.5验证页面内容
15.1.6从页面中提取数据
15.1.7使用表格比较
15.2基于Ajax的搜索
15.2.1使用Selenium
15.2.2活动搜索的设计
15.2.3让Web应用返回JSON
15.2.4处理Ajax的异步特性
15.3CapybaraAPI
15.3.1导航
15.3.2链接与按钮点击
15.3.3表单交互
15.3.4查询
15.3.5查找
15.3.6范围限定
15.4抓取屏幕截图
15.5我们学到了什么
第16章使用Aruba测试命令行应用
16.1简单界面
16.2我们的第一个Aruba特性
16.2.1流和退出状态
16.2.2安装Aruba
16.2.3考察Aruba的步骤定义
16.3使用文件与可执行程序
16.3.1使用@announce查看Aruba见到的内容
16.3.2隔离场景
16.3.3告知Aruba勿删文件
16.3.4设置Aruba的工作目录
16.3.5设置$PATH
16.4与用户输入交互
16.5使用Aruba的RubyDSL
16.6我们学到了什么
附录A在其他平台上使用Cucumber
附录B安装Cucumber
B.1安装Ruby
B.1.1OSX和Linux
B.1.2Windows
B.2HTTP代理设置
B.3安装Bundler
B.4安装Cucumber(及RSpec)
B.5安装其他gem
B.6选择一款文本编辑器
附录CRubygem版本
附录D参考文献
|
|