BDD语句应如何正确构建?团队中是否使用约定?

问题描述 投票:2回答:2

是否有在小型敏捷团队和社区中创建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 ui-automation gherkin
2个回答
0
投票

BDD中的对话比工具更重要。与其先从Courgette的示例中细粒度的规范开始,不如尝试与企业进行交流。向他们询问他们想要的行为的例子。

[当您写下来时,请以他们描述的方式开始。很少有人能正确收听,真是令人惊讶!从他们那里得到例子之后,看看它。您能看到上下文中的哪些位(给定),而结果中的哪些(位)?与触发您感兴趣的行为(何时)相关的步骤是什么?

一旦您解决了这个问题,我还要问几个问题:

  • 是否有其他上下文针对同一事件给出不同的结果?
  • 还有其他重要的结果吗?

例如,如果我在一家大型超市实施这种行为,我可能会遇到类似这样的示例:

“”哦!不,请不要将食物重新添加到库存中。我们不知道食物的存储方式。如果食物有问题,我们将退还食物,但是我们将其装箱。“

您可能会看到这将如何更改您的代码!

测试人员真的很擅长提出这些问题并发现缺失的情况!这导致我们进入“三个朋友”模式。我喜欢包括:

  • 业务人员,产品负责人,主题专家或有问题的人
  • 测试人员
  • 一个开发人员(或一对开发人员)。

[您也可以包括UI设计师,技术作家等。-Matt Wynne说这是“三个Amigo,其中三个是3到7之间的数字。]

我非常喜欢开发人员将场景写下来的方式,以允许他们进入“给出,何时,然后”的任何形式。有时我会在会议上这样做;有时我稍后再做,然后显示或发送给我的业务人员。

小胡瓜的例子通常是在人们没有这些对话时发生的。如果从对话开始,那么您很可能会得到与上述内容相符的内容。这些声明性步骤不仅使业务人员更易于阅读,而且使整个团队更容易讨论,而且还易于维护,因为隐藏了如何实现这些步骤的详细信息(通常在“步骤定义”中,以及在页面中更进一步)对象)。

如果您想了解更多,BDD新手on my blog有各种各样有用的帖子!


0
投票

很高兴听到您正在使用小胡瓜。

嗨,丽兹。我创建Courgette是因为看到了Cucumber用于创建Web步骤,而不是声明性场景。看来,如果开发人员可以使用Cucumber工具,那么这就是他们的直接操作,可以创建自定义的精细Web步骤,因为如果没有抽象,从声明式场景到自动化测试都需要大量的工作,并且可能会造成混乱或混合两者之中。我与Matt Wynne进行了交谈,他想在各种黄瓜口味中看到Courgette功能的这一部分。您还可以看到其中的价值吗?我也非常重视您的意见。

也许最好以另一种方式在BDD页面上写词,所以很明显,最好是首先进行对话。

[我的上一份工作是在一家律师事务所,两名律师(产品负责人)实际上是在对dom,CSS和XPATH选择器进行了一个小时的介绍之后,实际上离开了编写测试的程序。其中一位超级参与,并开始维护测试套件。看到很有趣。这是我肯定会减少进入门槛的一种认识。

© www.soinside.com 2019 - 2024. All rights reserved.