据我了解,ATDD 是从 QC/QA 的角度来测试整个过程。这种对整个过程的测试,不同模块如何集成,听起来像是集成测试的定义。验收测试驱动开发与集成测试有何不同?还是它们是同义词?
问问题
425 次
1 回答
2
您对 ATDD 的理解是错误的。您确实描述了集成测试而不是 ATDD。
从此链接阅读以下片段
验收测试驱动开发 (ATDD) 是一种实践,其中整个团队通过示例协作讨论验收标准,然后在开发开始之前将它们提炼成一组具体的验收测试。这是我所知道的最好的方式来确保我们都对我们实际构建的东西有相同的共同理解。这也是我所知道的确保我们对完成有共同定义的最佳方式。
在实践中,您的客户、开发人员、QA 都在一个房间里,并且您讨论一个特定的功能。客户描述了新功能,并将其提炼成一系列验收测试。
您可以使用各种 ATDD 框架(JBehave、Cucumber、规范流等)来自动化这些测试并针对您的代码运行它们。大多数人使用通用语言,例如小黄瓜,其形式为 GIVEN、WHEN、THEN。
例如:
Scenario: Simple Addition
Given a calculator I just turned on
When I add 4 and 5
Then the result is 9
在这些框架中,我们设置了映射到本示例每一行的步骤。一种用于设置计算器,一种用于加法,一种用于断言期望值与实际值匹配。显然,这些可能更复杂。
这给了我们一个测试失败,直到该功能已经按照每个人都同意的规范实现。当测试通过时,功能就完成了。
于 2014-04-17T23:28:28.750 回答