Escrito originalmente en francés. Traducido por IA — se ha preservado el sentido, no la prosa.
Definición corta
Test Driven Development — disciplina de desarrollo en la que el test que describe el comportamiento esperado se escribe antes que el código que lo implementa.
Definición detallada
En su sentido técnico establecido, el TDD designa un ciclo corto y repetido: escribir un test que falla, escribir el código mínimo que lo hace pasar, refactorizar el código sin romper el test. Es una práctica de diseño del código tanto como una práctica de test.
En los artículos de este blog, el término se emplea desde un ángulo más estrecho: el test anterior al código se considera un artefacto de especificación. Lleva el qué —el comportamiento esperado, lo que debe seguir siendo cierto— mientras que el código lleva el cómo. Por ello interesa al producto tanto como al desarrollo: fija un acuerdo sobre un comportamiento en una forma que la máquina evalúa y que, por tanto, no puede divergir en silencio de la implementación.
Uso en el ámbito
Discusiones sobre la reducción del número de defectos producidos, definición de una política de calidad, arbitraje sobre el coste de los tests, formalización de los criterios de aceptación de una funcionalidad.
Capa aportada por "Ontology-Driven Design: ¿y si la ontología se convirtiera en la red de seguridad del código generado por IA?" (2026-10-29). El término sirve también de modelo para una analogía: la lógica de anterioridad del TDD se traslada al modelo del negocio, contrastando una petición con la ontología antes de programar, sin la garantía determinista de un test.
Sinónimos y variantes
Test Driven Development · desarrollo guiado por tests · test-first.
No confundir con
- Tests automatizados — tests ejecutados por una máquina, sin indicación del momento en que se escribieron; escritos después del código, constatan lo que este hace.
BDD(Behaviour Driven Development) — formulación de los comportamientos esperados en un lenguaje legible por quienes no programan, orientada a la conversación con el negocio.- Tests de no regresión — conjunto de tests que se vuelve a ejecutar para verificar que no se ha roto un comportamiento existente, con independencia de si es anterior al código.
- QA — función que define y verifica los criterios de calidad; el TDD es una práctica que sostienen los propios desarrolladores.
Ejemplos
"El test describe el qué. El código implementa el cómo."
Un comportamiento esperado fijado por un test antes de la implementación sigue siendo verificable tras varias refactorizaciones del código, mientras que la prosa que lo describía ha dejado de releerse.
Ambigüedades / debates
La sigla se emplea a menudo para designar cualquier práctica de test automatizado, lo que borra lo único que la caracteriza: la anterioridad del test respecto del código.
Su valor sigue en discusión —práctica de diseño para unos, sobrecoste de escritura para otros—, y el debate rara vez trata del mismo objeto, según se hable del ciclo completo o solo del test-first.