什么是测试优先开发?它与TDD有何关系?测试优先开发是TDD之类的通用名称吗?如果是,那么还存在哪些其他测试优先实践?
答案 0 :(得分:19)
测试第一开发比TDD略宽,略微不那么具体。您可以在编码之前编写验收测试,然后编写代码以使其通过;这是TFD而不是TDD。 TDD更具体地说是单元测试 - 所以隐含的粒度更严格 - 并且包括红绿重构循环:编写失败(单元)测试;证明它失败了;让它通过;证明它通过;寻找重构的机会。 TFD并不排除任何这些事情,但也不要求它们。
答案 1 :(得分:9)
测试优先开发==测试驱动 发展。
同一件事的两个不同的词。
TDD的其他替代方案包括越来越受欢迎的BDD(行为驱动开发)。
您选择哪种方法在很大程度上取决于您的应用程序(Web,控制台,窗口等)以及项目方法(敏捷,瀑布等)。
答案 2 :(得分:-2)
TFD是TDD的子类。
TDD: 你写了一段代码,然后为它编写测试。
TFD: 您编写测试时首先编写最小代码以使其通过。然后考虑逻辑并构建代码。通过这种方式,您的代码可以很好地形成并且最小化。
TFD有时会非常有用。您可能希望在编写整体之前测试它的一小部分,而不是跳入实现并对其进行测试。
但TFD和TDD的目的都是一样的。