如何学习/教Gherkin黄瓜

时间:2009-11-09 23:20:06

标签: ruby-on-rails ruby cucumber specflow gherkin

我希望业务分析师能够使用Gherkin编写Cucumber友好的功能,场景和步骤的所有规范。

我已经阅读了github网站上的一些关于Cucumber的基本信息以及快速谷歌搜索,但想知道是否有推荐的资源让非技术人员能够使用Gherkin编写全面的BDD(我认为这是用于创建黄瓜测试的首选语言。

感谢。

6 个答案:

答案 0 :(得分:29)

我在公司的业务分析师所做的是通过给他们关键词来教他们结构:给定何时然后 作为我希望用于功能。

然后我给了他们一个简单的例子,并告诉他们写下他们认为应该写的自己的功能。令人惊讶的是,结构是自我解释的,他们写的功能成为一个很好的开始 唯一的大问题是他们在每个场景步骤中都包含了很多逻辑。我通过反复问“为什么?”解决了这个问题。在大多数情况下,它们显示了他们所追求的核心功能,并且我们重新编写了这些场景。

通过向他们提供指导并让他们自己编写功能,他们得到了他们的手,并被迫思考他们写的东西。今天他们有了更好的理解和“为什么?”迭代不再那么常见了。

当然,您需要让业务分析师和开发人员紧密合作,分析师编写的功能应该只是一个开始。请记住,Cucumber功能只是分析师和开发人员之间的通用语言。他们仍然需要经常坐在一起才能彼此交谈:)

答案 1 :(得分:9)

http://cukes.info是教导人们如何编写它们的绝佳资源。 Ben Mabey also made a great presentation on Cucumber在Mountain West Ruby Conference 2009上。

答案 2 :(得分:8)

刚刚第一次使用黄瓜进行敏捷项目时,我认为学习黄瓜和小黄瓜的最佳方法就是弄脏你的手。

我可能错了但是我从你的问题中得到的印象是你想要训练你的BAs写Gherkin;然后他们会写一堆功能并交给开发人员。

这绝对不是要走的路。让BA的开发人员和用户(如果可能的话)共同编写您的场景并随时构建它们会好得多。然后你们一起学习哪些有用,哪些无效。

我们尝试让BA编写完整的功能并将其交给我们。我们(开发者)最终不得不进行重大改写,因为实施最终与广管局最初设想的不同。我们还必须更改步骤的语法,并在整个文件中查找和替换。

一次做一个场景,让它工作然后继续下一个。迭代方法可以减少浪费的工作量,并确保您都了解应用程序的行为方式。

就如何编写步骤而言,最好从Cucumber附带的步骤开始,并在处理项目时调整和修改它们以适合您的特定应用程序。没有对错,它对你有用。黄瓜网站上的文档通常很好,并且在您了解更多信息时将成为宝贵的资源。

答案 3 :(得分:3)

我们正在以类似的方式教授Gherkin(针对SpecFlow),mrD如何描述它。

我认为非常重要的是,观众熟悉“按示例规范”,敏捷需求分析和BDD的主要意图,所以我们通常首先讨论背景。我们还展示了样本Gherkin场景并解释了非常基础(如Given / When / Then / But和tables)。

我们采用一个简单的示例故事(每个人都非常熟悉),例如“将商品添加到购物车”(当然还有一些方向),让他们以小组形式制定验收标准。

之后,每个团队都会展示/解释他们的解决方案,并讨论现有的好的和坏的做法。在第二个团队之后,您可以看到几乎所有最重要的(好的或坏的)实践出现。

我还输入了已完成的解决方案,并在此处显示了描述方案的替代方法(背景,方案大纲等)。如果有足够的时间,我还会展示如何自动化和实现基于此的想象功能。这也有助于理解一些重要的规则,使自动化变得更加容易。

虽然,我从来不知道将会发生什么,但通常这项练习是我们BDD培训的最佳部分。

答案 4 :(得分:1)

RSpec书中有几章与商业分析师有关:
http://pragprog.com/book/achbd/the-rspec-book

答案 5 :(得分:1)

我认为最好的学习方法是开始写作。小黄瓜&黄瓜很容易学,但很难掌握,所以尽快找到实用的例子非常重要。

虽然通过编写第一个场景开始是很重要的,但您还需要一些资源来建立良好习惯并理解关键实践。我写了一本可以提供帮助的书。我希望“Writing Great Specifications”是学习小黄瓜和黄瓜的好方法。它涵盖了模式和反模式以及编写出色场景的关键技术。 :)如果您有任何疑问,可以随时联系我Twitter.

如果您有兴趣购买“写出优秀规格”,可以使用促销代码 39nicieja2 节省39%:)

其他很棒的资源:

    如果您对软件开发流程和高级工程实践感兴趣,请使用Gojko Adzic的“示例规范”。 如果你不介意用Java阅读测试代码,那么John Li的“BDD in Action”。这是一个关于定义和测试软件需求的全面的端到端视图。
  • Liz Keogh的“行为驱动开发”,如果自动化测试不响铃,但您想了解带有示例的规范如何影响您的业务分析过程。
  • “黄瓜书:测试人员和开发人员的行为驱动开发”作者:Matt Wynne和AslakHellesøy
  • “RSpec书:RSpec,黄瓜和朋友的行为驱动发展”作者:David Chelimsky,Dave Astels,Zach Dennis,AslakHellesøy,Bryan Helmkamp,Dan North