我对TDD非常陌生,还没有开始使用它。但是我知道我们必须先编写测试,然后编写实际代码才能通过测试并将其重构,直到达到良好的设计为止。
我对TDD的担心是,它是否适合我们的SDLC。假设我有一个制作订单处理系统的要求。现在,在没有该系统的任何模型和设计的情况下,如何开始编写测试?我们不应该要求定义实体及其属性才能继续吗?如果没有,是否有可能在没有任何设计的情况下开发大型系统?
最佳答案
TDD有两个级别,ATDD或验收测试驱动的开发,以及由单元测试驱动的普通TDD。
我猜TDD和设计之间的关系受到源代码就是软件产品设计的某种“敏捷”概念的影响。许多人通过将TDD转换为“测试驱动设计”而不是开发来加强这一点。这很有意义,因为应该将TDD视为驱动设计而不是进行测试。最后接受验收和单元测试是一个很好的副作用。
在不了解更多信息的情况下,我不能说太多有关它适合您的SDLC的信息,但是一个不错的工作流程是:
对于每个用户故事:
当然,您始终都会考虑系统不断发展的高级设计。理想情况下,TDD将导致在较低级别进行灵活的设计,从而使适当的高级设计随您而发展,而不是在一开始就进行猜测。
关于tdd - 什么是测试驱动开发?是否需要进行初始设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327119/