Una parte central de ágil en general, y XP en particular, es la capacidad (y en realidad, la necesidad) de crear el software incrementalmente en cada iteración.
Esto se logra agregando un nuevo código en cada iteración, pero también refactorizando el código existente escrito durante iteraciones previas. Esta refactorización solo puede lograrse de manera segura si cuenta con un sistema de prueba sólido, capaz de verificar que todo el producto de software no se rompa cuando agrega un código nuevo o cuando modifica los existentes.
Por lo tanto, cuando se desarrolla el software, finalmente, crear dos sistemas separados, pero fuertemente conectados:
- El producto de software que desea proporcionar a sus usuarios
- Su instrumento de prueba que le ayuda a construirlo incrementalmente
TDD es la práctica más conocida para crear este arnés de prueba, lo que le permite crear incrementalmente su software utilizando un enfoque ágil.
Teniendo en cuenta que Kent Beck (re) descubrió TDD (y escribió el libro) y también escribió el libro en XP (de su trabajo en el proyecto C3?) - Diría que están muy relacionados. Test First es un subconjunto de TDD. No estoy seguro de lo que está buscando con un ejemplo – Gishu