gpt4 book ai didi

tdd - 什么是测试驱动开发?是否需要进行初始设计?

转载 作者:行者123 更新时间:2023-12-04 09:43:55 25 4
gpt4 key购买 nike

我对TDD非常陌生,还没有开始使用它。但是我知道我们必须先编写测试,然后编写实际代码才能通过测试并将其重构,直到达到良好的设计为止。

我对TDD的担心是,它是否适合我们的SDLC。假设我有一个制作订单处理系统的要求。现在,在没有该系统的任何模型和设计的情况下,如何开始编写测试?我们不应该要求定义实体及其属性才能继续吗?如果没有,是否有可能在没有任何设计的情况下开发大型系统?

最佳答案

TDD有两个级别,ATDD或验收测试驱动的开发,以及由单元测试驱动的普通TDD。

我猜TDD和设计之间的关系受到源代码就是软件产品设计的某种“敏捷”概念的影响。许多人通过将TDD转换为“测试驱动设计”而不是开发来加强这一点。这很有意义,因为应该将TDD视为驱动设计而不是进行测试。最后接受验收和单元测试是一个很好的副作用。

在不了解更多信息的情况下,我不能说太多有关它适合您的SDLC的信息,但是一个不错的工作流程是:

对于每个用户故事:

  • 使用诸如FitNesseCucumber之类的工具编写验收测试,这将从用户理解的角度指定给定输入的期望输出。该级别可自动执行规范,甚至在理想情况下甚至可以代替规范文档。
  • 现在,您可能对类/行为等可能需要的那种软件设计有一个模糊的想法。
  • 对于每个行为:
  • 编写一个失败的测试,以显示您如何使用类调用代码。
  • 实现使测试通过的行为
  • 重构测试代码和实际代码以反射(reflect)良好的设计。
  • 进入下一个行为。
  • 转到下一个用户故事。

  • 当然,您始终都会考虑系统不断发展的高级设计。理想情况下,TDD将导致在较低级别进行灵活的设计,从而使适当的高级设计随您而发展,而不是在一开始就进行猜测。

    关于tdd - 什么是测试驱动开发?是否需要进行初始设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327119/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com