【问题标题】:When to use TDD instead BDD and vice versa何时使用 TDD 而不是 BDD,反之亦然
【发布时间】:2015-10-08 10:49:20
【问题描述】:

我是测试新手,遇到了 TDD 和 BDD 方法。但我对此感到困惑。我不知道什么时候最好选择使用 TDD 而不是 BDD,反之亦然。我遇到了一些文章,但它们更多的是关于差异......

我有一些提示,但不确定它们的有效性。

1) 如果我想我想实现众所周知的java.lang.List 那么使用什么方法?在这种情况下,在我看来,TDD 是更好的选择......因为它是 API/库的一部分,只有程序员才能使用它,而不是用户。虽然我可以想象我也可以使用 BDD,例如:

故事Programmer adds an element to the list

叙述可能类似于:As a programmer I want to add an element to the list [so that ...]

场景 1Adding null to the list + 给定,何时,然后

场景 2Adding valid element to the list + 给定,何时,然后

场景 3:...

2) 但是,如果我想实现一些 GUI,那么在我看来,BDD 是更好的选择……因为它是用户可以控制的(单击按钮、填写字段等……)。在这种情况下,TDD 在我看来不是一个好的选择......

接下来,我可以将它们混合在一起吗?我读到 BDD includes TDD 实际上,但在这种情况下,我的意思是是否可以在项目中使用两种方法(例如:API 的 TDD 和 GUI 的 BDD)或者我应该只选择一种方法.

另外,如果您在此处发布一些有助于您更好地理解一般测试的链接,我真的很感激...

您可以发布一些指南/线索用于做出决定...

【问题讨论】:

    标签: java testing tdd bdd


    【解决方案1】:

    TDD 和 BDD 用于不同的目的,因此它们绝对可以一起使用。 BDD 确保产品所有者/业务分析师提供的用户故事有效,而 TDD 确保使 BDD 测试工作所需的代码(可以是许多类)具有高质量。

    【讨论】:

    • 感谢您的回复。一起使用它们的步骤是什么?我应该先编写行为测试,然后再测试方法(add()、remove()、...)吗?还是先测试方法,再进行行为测试或其他方式?
    • 首先进行 BDD 测试,然后在进行 TDD 时进行单元测试。因此,如果您是 BDD 和 TDD 的新手,我建议您从 TDD 开始并获得如何编写单元测试的经验。
    • 好的,另外,如果您阅读了一些有趣的文章并且您有链接,可以在这里发布吗?谢谢...
    • 从书籍而不是文章开始,例如Kent Beck 的“测试驱动开发:示例”、“BDD 实战:整个软件生命周期的行为驱动开发”、“以测试为指导的不断发展的面向对象软件”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多