TDD son las siglas en ingles de desarrollo dirigido por test. Es español se conoce esta metodología como Desarrollo Orientado a Pruebas. Se trata de una metodología de desarrollo ágil cuya mayor fortaleza es escribir la mínima cantidad de código posible para obtener el resultado deseado.
Para conseguirlo, se escriben líneas de código y se prueba su comportamiento en el conjunto del programa, incluso cuando sabemos que la prueba que vamos a realizar es incompleta o dará algún tipo de fallo. Los errores que arroje el propio programa nos darán las pautas de las siguientes líneas de código que debemos implementar, y así sucesivamente hasta obtener un resultado final.
Es una metodología de desarrollo ágil con una fortaleza fundamental, y es que unifica el proceso de testeo de una aplicación con el proceso de desarrollo, lo que hace que el producto final sea un programa robusto y a prueba de fallos, a la vez que ahorra costes.
Si nuestro equipo es capaz de coordinar los test, tenemos un buen procedimiento para implementar y ejecutar las pruebas y no hay muchas personas trabajando dentro del mismo desarrollo, puede resultar una alternativa interesante a XP o desarrollo Lean.
Sin embargo, también es una metodología que tiene muchas limitaciones. La principal es que es muy ineficaz a la hora de desarrollar páginas web, principalmente con PHP, porque PHP no tiene una buena traza de errores y deberemos construir nosotros nuestra propia traza.
La otra desventaja fundamental es que si varias personas están trabajando con TDD sobre el mismo desarrollo, es muy probable que las pruebas de unos y de otros no sean compatibles. incluso aunque los desarrollos de varias personas funcionen sin errores en sus entornos locales, existen muchas probabilidades de que al unir todas las piezas en el producto final se generen errores derivados de algunas líneas de código inconexas implementadas por varios actores.
TDD es una metodología que requiere una organización muy meticulosa y un sistema de desarrollo muy procedimentado, pero que a cambio obtiene unos productos finales testados en un tiempo muy razonable.
Es una metodología de desarrollo ágil ideal para proyectos de tamaño medio desarrollados con lenguajes compilados, como páginas web desarrolladas en Action Script o aplicaciones móviles.
Hola, podrias mirar esto:
http://behat.org/
saludos.