Testing 行为驱动开发还是测试驱动开发?
我最近听说了BDD,发现它与TDD非常相似 您使用这两种方法中的哪一种(如果有的话)Testing 行为驱动开发还是测试驱动开发?,testing,tdd,bdd,agile,Testing,Tdd,Bdd,Agile,我最近听说了BDD,发现它与TDD非常相似 您使用这两种方法中的哪一种(如果有的话) 每种方法的优缺点是什么?BDD与TDD相似,但思维方式不同。在BDD中,您试图创建可执行规范,而不是测试。这主要是通过使用不同的词汇表来实现的,但与TDD的机制类似 BDD似乎是对很多情况的一种反应,人们声称自己在做TDD,但编写的是集成测试而不是单元测试。BDD的人认为谈论测试是误导性的,所以测试变成了规范。这似乎有点形而上学,但背后有一些好的想法。我非常支持BDD=TDD做得很好的阵营。如果你做的是贝克最初
每种方法的优缺点是什么?BDD与TDD相似,但思维方式不同。在BDD中,您试图创建可执行规范,而不是测试。这主要是通过使用不同的词汇表来实现的,但与TDD的机制类似
BDD似乎是对很多情况的一种反应,人们声称自己在做TDD,但编写的是集成测试而不是单元测试。BDD的人认为谈论测试是误导性的,所以测试变成了规范。这似乎有点形而上学,但背后有一些好的想法。我非常支持BDD=TDD做得很好的阵营。如果你做的是贝克最初描述的TDD,并且很多人都在练习,那么基本上没有区别 BDD带来的是用于描述流程的语言的一些有趣的变体。BDD folk希望通过在过程和工具的描述中使用替代术语来鼓励更好的实践——这是一个值得称赞的目标 我做TDD已经很长时间了,现在我很难判断这是否真的有用。我认为(希望:-)我已经学到了BDD工具/语言所鼓励的许多课程,因此它们似乎不会给我带来太多额外的价值。当然,YMMV——而且我还没有使用BDD工具完成一个完整的“真实世界”项目——所以我可能把我的个人实验和推断做得太过分了
我想,BDD工具/语言可能更有用,因为它们可以避免与更传统意义上的“测试”混淆。我自己还没有这样做过——如果这里的人有这样的经验,我会很感兴趣的。BDD是关于运行场景的。与TDD类似,我们将测试每个场景作为一个故事
这个故事将由客户解释。。将根据故事情节编写场景。CUCUMBER之类的工具使编写场景变得简单。TDD和BDD基本相同。区别在于我们如何解释它,以及成功的团队最终如何让它为他们工作 BDD以TDD为基础,将最佳TDD实践者的良好习惯正式化。TDD是开发人员编写好的软件的工具或指南,BDD是帮助从外部到内部开发的好工具,因为它是使用普遍存在的语言开发的,因此可以从业务中获得更多的参与 我的经验是,BDD有助于协作,当团队中的每个人都参与编写描述系统应该做什么的文档时,使用业务可读的可执行规范有助于构建共享语言。这有助于整个团队共同学习该领域的语言 BDD是使TDD成功的要素