Cucumber:行为驱动开发指南

[英]Matt Wynne

出版时间

2013-06-26

ISBN

9787115318855

评分

★★★★★
书籍介绍

《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、《程序员》...

(展开全部)

AI导读
核心看点
  • 本书由Cucumber创始人及核心贡献者联合撰写,权威且全面地介绍了行为驱动开发(BDD)理念。书中详细阐述了如何使用Gherkin DSL编写自然语言规格说明,将模糊的业务需求转化为可执行的自动化验收测试,确保开发团队构建出符合用户预期的正确功能,而非仅仅构建正确的代码。
  • 内容涵盖从Cucumber基础入门到高级应用的全流程,包括步骤定义编写、测试异步系统、数据库交互测试以及REST API测试等实战技巧。书中提供了大量解决复杂问题的模式与方法,帮助读者处理遗留代码、命令行应用及高并发场景下的测试难题,提升软件工程质量与团队协作效率。
  • 强调通用语言在技术团队与非技术人员沟通中的桥梁作用。通过实例演示如何消除需求歧义,建立团队共识。书中不仅教授工具使用,更传递了以用户价值为导向的开发思维,指导读者如何在敏捷开发中利用自动化测试保障系统行为的一致性,避免需求误解导致的返工。
适合谁读
  • 适合从事软件开发、测试工程师及QA人员阅读,特别是希望引入自动化验收测试、提升测试覆盖率及质量的团队。书中提供的测试模式与最佳实践,能帮助技术人员规范测试流程,解决异步、数据库等复杂场景下的测试难题,提升工程实践能力。
  • 适合对行为驱动开发(BDD)感兴趣的敏捷教练、产品经理及非技术背景的项目管理者。通过阅读本书,非技术人员可以理解如何编写清晰、无歧义的业务规格说明,学习如何与技术团队建立通用语言,从而更有效地参与需求讨论,确保最终交付物符合业务初衷。
  • 适合Ruby语言开发者及正在学习Cucumber框架的初学者。虽然书中部分高级内容基于Ruby生态,但其BDD理念与测试思想具有普适性。读者可通过本书快速掌握Cucumber核心机制,理解如何结合Capybara、Selenium等工具进行Web应用测试,为跨平台测试打下理论基础。
读前提醒
  • 本书基于Ruby语言编写,若读者主要使用Java、PHP或其他语言,请重点关注BDD理念、Gherkin语法规范及测试设计模式,而非具体代码实现。切勿因语言差异而放弃阅读,因为核心思想与测试策略在所有语言中均通用,可迁移至其他测试框架。
  • 书中包含大量实战案例与错误处理经验,建议读者边读边动手实践。不要仅停留在理论层面,应尝试在本地环境搭建Cucumber,按照书中指引编写简单的特性文件与步骤定义,通过实际运行测试来加深理解,避免陷入“只看不练”的误区,确保真正掌握工具用法。
  • 注意区分单元测试与验收测试的边界。书中强调验收测试用于验证系统行为是否符合需求,而非替代单元测试。读者应理解两者互补关系,避免过度依赖Cucumber进行底层逻辑测试,保持测试金字塔的健康结构,确保测试套件运行速度与维护成本可控。
读者共识
  • 读者普遍认为本书是Cucumber与BDD领域的权威入门指南,内容详实且逻辑清晰。作者作为工具创造者,提供了大量一手实践经验与最佳实践,帮助读者避开常见陷阱。尽管部分技术细节随版本迭代可能过时,但其倡导的通用语言、协作测试及用户价值导向的开发理念依然极具指导意义。
  • 多数读者反馈本书翻译质量良好,阅读体验流畅,能够将复杂的测试概念讲解得通俗易懂。书中关于如何测试异步系统、遗留代码及REST服务的章节被认为极具价值,解决了实际工作中的痛点。但部分读者指出,若不具备一定编程基础,理解部分技术实现仍有难度,建议具备基础编程能力后阅读。
  • 社区共识认为,虽然当前敏捷开发中难以完全做到严格的TDD或BDD,但本书提供的测试思维与规范流程对提升代码质量至关重要。读者应摒弃“错误驱动开发”的陋习,坚持编写可维护、可执行的规格说明。本书有助于团队建立规范,减少沟通成本,是提升团队协作效率与软件交付质量的必备读物。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "The lesson we learn in this chapter about parsing both strings into JSON documents before comparing them is a useful one to remember for other situations. When you compare two strings in a test, you’re often leaving yourself open to brittle failures that aren’t telling you anything useful. Parsing t"
  • "Here are some tips for using it well: Don’t use Background to set up complicated state unless that state is something the reader actually needs to know. For example, we didn’t mention the actual digits of the system-generated PIN in the previous example, because that detail wasn’t relevant to any of"
  • "If you think about your features as a book that describes what your system does, then the subfolders are like the chapters in that book. So, as you tell the story of your system, what do you want the reader to see when they scan the table of contents?"
  • "It's sometimes said that unit tests ensure you build the thing right, while acceptance tests ensure you build the right thing."
  • "When you think about it, the process of adding new behavior to a system isn't so different from fixing a bug. The overall goal is to change some aspect of how the system behaves, without breaking anything else."
作者简介
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
第1章 为何使用cucumber 3
1.1 自动化验收测试 3
1.2 行为驱动开发 4
1.2.1 通用语言 4

显示全部
用户评论
BDD入门学习的推荐读物.
一本能够让你一口气读完又能读懂的技术类书籍,作者写的好,翻译也不错! 把一件复杂的事情说明白,不在于技术有多牛,而在于能够按照读者/听众的思维展开内容,而不是按照自己的理解去叙述。
书的内容很不错,翻译的也好。书中有很多作者在BDD中的实践经验,真知灼见。
发现不管是迭代快速的互联网还是发展迅速的开源社区都不可能做到TDD,都是EDD错误驱动开发。
介绍的很详细
用的ruby,只看了前面一点,对cucumber介绍的还不错
中英文版本对照着阅读, 很好的Cucumber 入门书
收藏