Definición de TDD:
TDD es una metodología de trabajo donde su principal área de trabajo son los Tests, el desarrollo de una aplicación basada en TDD consiste en diseñar los tests y luego ir superándolos por medio del refactoreo de la aplicación.
Muchos también dicen que TDD es la suma de dos técnicas de programación: TFD y Refactorización. Con respecto a TFD, es la técnica que a muchos programadores les parecerá extraña y establece inicialmente una pauta que consiste en la creación de los tests primero antes que todo, inclusive antes de cualquier porción de código de nuestra aplicación.
Ciclos TDD:
En esta metodología existen pocos pero importantes pasos a seguir, dichos pasos forman el corazón de TDD y no deberíamos saltear ninguno de ellos.
Crear un Test: Escribimos un código que representará a nuestro test o prueba para un determinado requerimiento a superar.
Creación de código y refactoreo: Este es uno de los puntos más importante de TDD, dado que en el es donde modelamos la aplicación basándonos en superar nuestras pruebas.
Ejecutar tests: Consiste en correr todos los tests y verificar que no hayan fallos. En caso de haberlos deberemos refactorizar para lograr pasar las pruebas satisfactoriamente.
Crear nuevos test: El desarrollo continúa y agregamos mas tests para dar comienzo otra vez a todo el ciclo.