Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何学习/教授黄瓜黄瓜_Ruby On Rails_Ruby_Cucumber_Specflow_Gherkin - Fatal编程技术网

Ruby on rails 如何学习/教授黄瓜黄瓜

Ruby on rails 如何学习/教授黄瓜黄瓜,ruby-on-rails,ruby,cucumber,specflow,gherkin,Ruby On Rails,Ruby,Cucumber,Specflow,Gherkin,我想让业务分析师能够使用小黄瓜编写他们所有的特性、场景和步骤规范 我已经在github网站上阅读了Cucumber的一些基本信息,并进行了快速的Google搜索,但我想知道是否有推荐的资源让非技术人员能够使用Gherkin编写全面的BDD(我认为这是创建Cucumber测试的首选语言) 谢谢。是教人们如何写作的好资源。在2009年西山红宝石会议上 我刚刚第一次使用cucumber进行了一个敏捷项目,我认为学习cucumber和Gherkin的最好方法就是把手弄脏 我可能错了,但我从你的问题中得到

我想让业务分析师能够使用小黄瓜编写他们所有的特性、场景和步骤规范

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


谢谢。

是教人们如何写作的好资源。在2009年西山红宝石会议上

我刚刚第一次使用cucumber进行了一个敏捷项目,我认为学习cucumber和Gherkin的最好方法就是把手弄脏

我可能错了,但我从你的问题中得到的印象是,你想训练你的BAs写小黄瓜;然后他们将编写一系列特性并将它们交给开发人员

这绝对不是办法。让BA的开发人员和用户(如果可能的话)一起编写您的场景并在运行中构建它们要好得多。然后大家一起学习什么有效,什么无效

我们试着让一个文学学士写下所有的特征并交给他们。我们(开发人员)最终不得不进行重大重写,因为实现结果与BA最初设想的不同。我们还必须更改这些步骤的语法,并查找和替换整个文件

一次做一个场景,让它工作,然后继续下一个场景。一种迭代的方法可以减少浪费的精力,并确保你们都理解你们希望应用程序如何运行


就如何编写步骤而言,最好从Cucumber附带的步骤开始,并在您的项目中复制和调整这些步骤,以适合您的特定应用程序。没有对错之分,这才是适合你的。cucumber网站上的文档通常都很好,随着您了解更多信息,这些文档将成为宝贵的资源。

我与我们公司的业务分析师一起做的是通过给他们提供关键字来教他们结构:给定的何时然后用于场景和为了作为我想用于功能

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

通过给他们指导方针,让他们自己写功能,他们的手弄脏了,被迫思考他们写了什么。今天,他们有了更好的理解,“为什么?”迭代不再那么常见

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

我们正在以类似的方式教授小黄瓜(SpecFlow),mrD是如何描述的

我认为这是非常重要的,因为观众熟悉“示例规范”、敏捷需求分析和BDD的主要意图,所以我们通常首先开始讨论背景。我们还展示了一个小黄瓜场景示例,并解释了最基本的内容(如给定的/When/Then/But和表)

然后我们举一个简单的例子(大家都很熟悉),比如“将物品添加到购物车”(当然要有一些方向),让他们以小组形式制定验收标准

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

我还输入总结的解决方案,并在这里展示描述场景的替代方法(背景、场景大纲等)。如果有足够的时间,我还将展示如何基于此自动化和实现想象中的功能。这也有助于理解一些需要遵循的重要规则,从而使自动化更加容易


尽管我从不知道会发生什么,但通常这项练习是我们BDD培训的最好部分。

RSpec手册中有几章与业务分析师相关:

  • 学习小黄瓜的最佳方法是先阅读Behat文档:

  • 然后阅读黄瓜网站上的官方文件:

  • 此外,您还可以阅读Guru99文章来编写第一个cucumber脚本:


    • 我认为最好的学习方法是开始写作。小黄瓜和黄瓜很容易学,但很难掌握,所以尽快获得实际例子很重要

      虽然从编写第一个场景开始很重要,但您也需要一些资源来建立良好的习惯和理解关键实践。我写了一本能帮上忙的书。我希望这是学习小黄瓜和黄瓜的好方法。它涵盖了模式和反模式,以及编写伟大场景的关键技术如果你有任何问题,随时可以找我

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

      其他重要资源:

      • 如果您对软件开发感兴趣,Gojko Adzic的“示例规范”