Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 行为驱动开发还是测试驱动开发?_Testing_Tdd_Bdd_Agile - Fatal编程技术网

Testing 行为驱动开发还是测试驱动开发?

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似乎是对很多情况的一种反应,人们声称自己在做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成功的要素