我是测试的新手,我遇到了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 ...]
场景1 :Adding null to the list
+给定,何时,然后
场景2 :Adding valid element to the list
+给定,何时,然后
场景3 :...
2) 但是,如果我想我想实现一些GUI,那么在我看来BDD是更好的选择......因为它是用户可以控制的东西(点击按钮,填写字段等等)。在这种情况下,TDD似乎不是一个好的选择......
接下来,我可以将它们混合在一起吗?我实际上读到BDD 包含 TDD,但在这种情况下我的意思是在项目中使用BOTH方法是可以的(例如:用于API的TDD和用于GUI的BDD)或者我应该只选择一种方法
此外,如果您在此处发布一些链接,以帮助您了解更好的测试,我真的很感激...
您可以发布一些指导/线索,用于做出决定......
答案 0 :(得分:4)
TDD和BDD用于不同目的,因此它们可以一起使用。 BDD确保产品所有者/业务分析师工作和TDD提供的用户故事确保使BDD测试工作所需的代码(可以是众多类)具有高质量。