BDD 语句应该如何正确构建?团队中是否使用约定?
How should BDD statements be properly constructed? Is there a convention used in teams?
是否有在小型敏捷团队和社区中创建 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 示例中的 finely-grained 规范开始,不如先尝试与企业交谈。向他们询问他们想要的行为类型的示例。
当你写下来的时候,先按照他们描述的方式来写。令人惊讶的是,很少有人会正确地倾听!在你从他们那里得到例子后,看看它。你能看出哪些位是上下文 (Givens),哪些是结果 (Thens)?哪个步骤与触发您感兴趣的行为相关(何时)?
一旦你解决了这个问题,我还想问几个问题:
- 对于同一事件,是否有任何其他上下文给出不同的结果?
- 还有其他重要的结果吗?
例如,如果我正在为一家大型超市实施此行为,我可能会遇到这样的示例:
"Oh! No, don't add food back to stock. We don't know how it's been stored. We refund it if there's something wrong with it, but we bin it."
您可能会看到这会如何改变您的代码!
测试人员非常擅长提出这些问题并发现缺失的场景!这将我们引向 "Three Amigos" 模式。我喜欢包括:
- 业务人员、产品负责人、主题专家或遇到问题的人
- 测试人员
- 一个开发者(或一对开发者)。
您还可以包括 UI 设计师、技术作家等。- Matt Wynne 说是 "Three Amigos where three is a number between 3 and 7"。
我真的很喜欢开发人员以允许他们到达 "Given, When, Then" 的任何形式写下场景。有时我会在会议上这样做;有时我稍后再做,然后展示或发送给我的业务人员。
Courgette 的例子通常发生在人们没有这些对话的时候。如果您从对话开始,您更有可能得到与上述内容相符的内容。这些声明性步骤不仅更易于业务阅读和整个团队讨论,而且它们也更易于维护,因为它们如何实现的细节是隐藏的(通常在步骤定义中,进一步在页面中Objects).
这里有各种对 BDD 新手有用的帖子on my blog如果你想了解更多!
是否有在小型敏捷团队和社区中创建 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 示例中的 finely-grained 规范开始,不如先尝试与企业交谈。向他们询问他们想要的行为类型的示例。
当你写下来的时候,先按照他们描述的方式来写。令人惊讶的是,很少有人会正确地倾听!在你从他们那里得到例子后,看看它。你能看出哪些位是上下文 (Givens),哪些是结果 (Thens)?哪个步骤与触发您感兴趣的行为相关(何时)?
一旦你解决了这个问题,我还想问几个问题:
- 对于同一事件,是否有任何其他上下文给出不同的结果?
- 还有其他重要的结果吗?
例如,如果我正在为一家大型超市实施此行为,我可能会遇到这样的示例:
"Oh! No, don't add food back to stock. We don't know how it's been stored. We refund it if there's something wrong with it, but we bin it."
您可能会看到这会如何改变您的代码!
测试人员非常擅长提出这些问题并发现缺失的场景!这将我们引向 "Three Amigos" 模式。我喜欢包括:
- 业务人员、产品负责人、主题专家或遇到问题的人
- 测试人员
- 一个开发者(或一对开发者)。
您还可以包括 UI 设计师、技术作家等。- Matt Wynne 说是 "Three Amigos where three is a number between 3 and 7"。
我真的很喜欢开发人员以允许他们到达 "Given, When, Then" 的任何形式写下场景。有时我会在会议上这样做;有时我稍后再做,然后展示或发送给我的业务人员。
Courgette 的例子通常发生在人们没有这些对话的时候。如果您从对话开始,您更有可能得到与上述内容相符的内容。这些声明性步骤不仅更易于业务阅读和整个团队讨论,而且它们也更易于维护,因为它们如何实现的细节是隐藏的(通常在步骤定义中,进一步在页面中Objects).
这里有各种对 BDD 新手有用的帖子on my blog如果你想了解更多!