我想让业务分析师能够使用 Gherkin 编写对 Cucumber 友好的功能、场景和步骤的所有规范。
我已经阅读了 Cucumber 的 github 网站上的一些基本信息,并通过快速的 Google 搜索,但想知道是否有推荐的资源让非技术人员能够使用 Gherkin 编写全面的 BDD(我假设那是用于创建 Cucumber 测试的首选语言)。
谢谢。
我想让业务分析师能够使用 Gherkin 编写对 Cucumber 友好的功能、场景和步骤的所有规范。
我已经阅读了 Cucumber 的 github 网站上的一些基本信息,并通过快速的 Google 搜索,但想知道是否有推荐的资源让非技术人员能够使用 Gherkin 编写全面的 BDD(我假设那是用于创建 Cucumber 测试的首选语言)。
谢谢。
我对我们公司的业务分析师所做的就是通过给他们关键字来教他们结构:Given、When、Then、And for Scenarios 和In order to、As a和I want to for Features 。
然后我给他们一个简单的例子,告诉他们写下他们认为应该写的特征。令人惊讶的是,结构是不言自明的,他们编写的功能成为了一个很好的开始。
唯一的大问题是它们在每个场景步骤中都包含了太多逻辑。我通过反复问“为什么?”解决了这个问题。在大多数情况下,这揭示了他们所追求的核心功能,我们相应地重新编写了场景。
通过给他们指导方针并让他们自己编写功能,他们弄脏了手,并被迫考虑他们写的内容。今天他们对“为什么”有了更好的理解。迭代不再那么常见了。
当然,您需要让业务分析师和开发人员密切合作,分析师编写的功能应该只是一个开始。请记住,Cucumber 功能只是分析师和开发人员之间的通用语言。他们仍然需要经常坐在一起才能互相交谈:)
http://cukes.info是教人们如何编写它们的绝佳资源。Ben Mabey在 Mountain West Ruby Conference 2009上也做了一个关于 Cucumber 的精彩演讲。
第一次使用 Cucumber 参与敏捷项目,我认为学习 Cucumber 和 Gherkin 的最佳方法是亲自动手。
我可能错了,但我从你的问题中得到了印象,你想训练你的 BA 来写 Gherkin;然后他们将编写一堆功能并将它们交给开发人员。
这绝对不是要走的路。让 BA 的开发人员和用户(如果可能的话)一起编写您的场景并在您进行时构建它们会更好。然后你们一起学习什么有效,什么无效。
我们尝试让 BA 编写整个功能并将其移交。我们(开发人员)最终不得不进行重大重写,因为最终实现与 BA 最初设想的不同。我们还必须更改这些步骤的语法,并在整个文件中进行查找和替换。
一次做一个场景,让它工作,然后继续下一个。迭代方法可以减少浪费的精力,并确保您都了解您希望应用程序的行为方式。
关于如何编写步骤,最好从 Cucumber 附带的步骤开始,并在您处理项目时复制和调整它们以适合您的特定应用程序。没有对错之分,它对你有用。黄瓜网站上的文档通常很好,随着您了解更多信息,它将成为宝贵的资源。
我们正在以类似的方式教授 Gherkin(用于 SpecFlow),mrD 是如何描述它的。
不过我认为非常重要的是,观众要熟悉“实例说明”、敏捷需求分析和 BDD 的主要意图,所以我们通常先开始讨论背景。我们还展示了一个示例 Gherkin 场景并解释了非常基础的内容(例如 Given/When/Then/But 和表格)。
比我们举一个简单的例子(每个人都非常熟悉),比如“将商品添加到购物车”(当然有一些方向),让他们以小组的形式制定验收标准。
之后,每个团队都展示/解释他们的解决方案,我们讨论存在的好的和坏的做法。在第二个团队之后,您可以看到几乎所有最重要的(好的或坏的)实践都出现了。
我还输入了得出的解决方案,并在这里展示了描述场景的替代方法(背景、场景大纲等)。如果有足够的时间,我还会展示如何在此基础上自动化和实现想象的功能。这也有助于理解一些要遵循的重要规则,这使得自动化变得更加容易。
虽然,我从来不知道会发生什么,但通常这个练习是我们 BDD 培训中最好的部分。
RSpec 书中有几章与业务分析师相关:http:
//pragprog.com/book/achbd/the-rspec-book
学习 Gherkin 的最佳方法是先阅读 Behat 文档:http: //behat.readthedocs.org
然后从黄瓜网站阅读官方文档:https ://cucumber.io/docs/reference
此外,您可以阅读 Guru99 文章来编写您的第一个黄瓜脚本:http ://www.guru99.com/your-first-cucumber-script.html