是否有在小型敏捷团队和社区中创建BDD方案的首选方法?我正在使用小胡瓜,它在https://courgette-testing.com/bdd
上提供了一个示例Scenario: Refunded items should be returned to stock
Given a customer previously bought a black sweater from me
And I have three black sweaters in stock.
When they return the black sweater for a refund
Then I should have four black sweaters in stock.
听起来不错吗?这对于团队间的交流沟通是否很好?
我已经使用了他们的网络步骤,现在正在进行重构以使业务更加清晰。
任何链接都会有所帮助。谢谢
BDD中的对话比工具更重要。与其先从Courgette的示例中细粒度的规范开始,不如尝试与企业进行交流。向他们询问他们想要的行为的例子。
[当您写下来时,请以他们描述的方式开始。很少有人能正确收听,真是令人惊讶!从他们那里得到例子之后,看看它。您能看到上下文中的哪些位(给定),而结果中的哪些(位)?与触发您感兴趣的行为(何时)相关的步骤是什么?
一旦您解决了这个问题,我还要问几个问题:
例如,如果我在一家大型超市实施这种行为,我可能会遇到类似这样的示例:
“”哦!不,请不要将食物重新添加到库存中。我们不知道食物的存储方式。如果食物有问题,我们将退还食物,但是我们将其装箱。“
您可能会看到这将如何更改您的代码!
测试人员真的很擅长提出这些问题并发现缺失的情况!这导致我们进入“三个朋友”模式。我喜欢包括:
[您也可以包括UI设计师,技术作家等。-Matt Wynne说这是“三个Amigo,其中三个是3到7之间的数字。]
我非常喜欢开发人员将场景写下来的方式,以允许他们进入“给出,何时,然后”的任何形式。有时我会在会议上这样做;有时我稍后再做,然后显示或发送给我的业务人员。
小胡瓜的例子通常是在人们没有这些对话时发生的。如果从对话开始,那么您很可能会得到与上述内容相符的内容。这些声明性步骤不仅使业务人员更易于阅读,而且使整个团队更容易讨论,而且还易于维护,因为隐藏了如何实现这些步骤的详细信息(通常在“步骤定义”中,以及在页面中更进一步)对象)。
如果您想了解更多,BDD新手on my blog有各种各样有用的帖子!
很高兴听到您正在使用小胡瓜。
嗨,丽兹。我创建Courgette是因为看到了Cucumber用于创建Web步骤,而不是声明性场景。看来,如果开发人员可以使用Cucumber工具,那么这就是他们的直接操作,可以创建自定义的精细Web步骤,因为如果没有抽象,从声明式场景到自动化测试都需要大量的工作,并且可能会造成混乱或混合两者之中。我与Matt Wynne进行了交谈,他想在各种黄瓜口味中看到Courgette功能的这一部分。您还可以看到其中的价值吗?我也非常重视您的意见。
也许最好以另一种方式在BDD页面上写词,所以很明显,最好是首先进行对话。
[我的上一份工作是在一家律师事务所,两名律师(产品负责人)实际上是在对dom,CSS和XPATH选择器进行了一个小时的介绍之后,实际上离开了编写测试的程序。其中一位超级参与,并开始维护测试套件。看到很有趣。这是我肯定会减少进入门槛的一种认识。