Cucumber:行为驱动开发指南

[英]Matt Wynne

出版时间

2013-06-26

ISBN

9787115318855

评分

★★★★★
书籍介绍
这本书最值钱的,不是Cucumber怎么用,而是它反复提醒读者:工具用错了,会反噬团队。许多读者读完最大的感触是——Cucumber写得好时是活的文档,写得烂时是没人愿意维护的累赘,而决定这两者差距的,恰恰是作者几十年BDD实践沉淀下来的分寸感:Background别超过四行、别写干巴巴的User A,要讲故事、要有血有肉、要让非技术人员记得住。它不教你炫技,只教你如何让一组可执行的规格说明真正被业务方、开发、测试共同读懂。因此它特别适合那些被'团队沟通断层'困扰、或曾被自动化测试拖垮信心的团队。它不是速成手册,而是一本关于'如何克制地写测试'的经验之书。
作者简介
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。
AI导读
核心看点
  • 本书由Cucumber创始人及核心贡献者联合撰写,权威且全面地介绍了行为驱动开发(BDD)理念。书中详细阐述了如何使用Gherkin DSL编写自然语言规格说明,将模糊的业务需求转化为可执行的自动化验收测试,确保开发团队构建出符合用户预期的正确功能,而非仅仅构建正确的代码。
  • 内容涵盖从Cucumber基础入门到高级应用的全流程,包括步骤定义编写、测试异步系统、数据库交互测试以及REST API测试等实战技巧。书中提供了大量解决复杂问题的模式与方法,帮助读者处理遗留代码、命令行应用及高并发场景下的测试难题,提升软件工程质量与团队协作效率。
  • 强调通用语言在技术团队与非技术人员沟通中的桥梁作用。通过实例演示如何消除需求歧义,建立团队共识。书中不仅教授工具使用,更传递了以用户价值为导向的开发思维,指导读者如何在敏捷开发中利用自动化测试保障系统行为的一致性,避免需求误解导致的返工。
读者共识
  • 读者普遍认为本书是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."
目录
第一部分 cucumber基础 1
第1章 为何使用cucumber 3
1.1 自动化验收测试 3
1.2 行为驱动开发 4
1.2.1 通用语言 4

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