Libro TDD de Carlos Blé: Diseño Ágil con TDD
TDD (Test-Driven Development, o desarrollo dirigido por tests) consiste en escribir primero una prueba automática que falla y después el código justo para que pase. Es como el sastre que toma una medida antes de cada corte: sabes exactamente qué tiene que cumplir. Si te suena a chino, empieza por qué es TDD.
Carlos Blé es programador desde 2002, practica XP (eXtreme Programming) desde 2008 y es fundador y director de Lean Mind, según su biografía en Savvily.
Ficha del libro (edición de 2010)
| Título | Diseño Ágil con TDD |
| Autor | Carlos Blé Jurado y colaboradores |
| Prólogo | José Manuel Beas |
| Primera edición | Enero de 2010 |
| Licencia | Creative Commons (gratuito) |
| Extensión | 301 páginas |
| Lenguajes de los ejemplos | C# y Python |
Los colaboradores aparecen en los agradecimientos: Juan Gutiérrez Plaza escribió el capítulo 11, la solución en Python; Fran Reyes Perdomo, el apéndice de integración continua; y Gregorio Mena rehízo buena parte del capítulo 1.
Qué vas a aprender
El libro se parece a un curso de cocina en dos partes: primero te explican los ingredientes y las técnicas, y después cocinas un plato completo de principio a fin junto al autor.
Parte I: base teórica
- El agilismo: del modelo en cascada al manifiesto ágil y los roles del equipo.
- Qué es TDD: el algoritmo de rojo, verde y refactorizar, y cómo aplicarlo con una tecnología nueva o en mitad de un proyecto.
- ATDD, desarrollo dirigido por tests de aceptación: historias de usuario y cómo saber si algo está terminado.
- Tipos de test: de aceptación, funcionales, de sistema, unitarios y de integración.
- Tests unitarios y frameworks xUnit, con la estructura de tres partes AAA (preparar, actuar y comprobar).
- Mocks y otros dobles de prueba: cuándo usar un objeto real, un stub o un mock.
- Diseño orientado a objetos: los principios SOLID y la inversión del control.
Parte II: ejercicios prácticos
- a 10. Un proyecto completo hecho con TDD, desde los primeros tests unitarios hasta los de integración con un ORM (la pieza que conecta el código con la base de datos).
- La misma solución en Python.
- Antipatrones y errores comunes.
Cierra con un apéndice sobre integración continua: automatizar la construcción, que los tests formen parte de ella y subir cambios a menudo.
Cómo sacarle partido
- Lee los capítulos 2, 5 y 6 si solo quieres lo esencial de TDD. Los capítulos 1 y 3 hablan de agilismo y aceptación, y puedes dejarlos para después.
- Sigue la parte II con el editor abierto. No te limites a leer: escribe cada test, míralo fallar y hazlo pasar.
- Cambia de lenguaje si te ayuda. Los ejemplos están en C# y Python, pero el ciclo es igual en cualquier lenguaje.
- Practica con katas, ejercicios cortos pensados para repetir el ciclo. Tienes una lista en katas para pruebas.
Así se ve un ciclo completo, aquí con el test runner integrado de Node. Primero el test, que falla porque precioFinal aún no hace nada:
// precio.test.mjs
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { precioFinal } from './precio.mjs';
test('aplica un 10 % de descuento a partir de 100 €', () => {
assert.equal(precioFinal(200), 180);
});
test('no aplica descuento por debajo de 100 €', () => {
assert.equal(precioFinal(50), 50);
});
Después, el código justo para que pase:
// precio.mjs
export const precioFinal = (importe) =>
importe >= 100 ? importe * 0.9 : importe;
node --test
# ℹ tests 2
# ℹ pass 2
Si quieres el paso a paso detallado, tienes los pasos para aplicar TDD.
Para quién es y lo que conviene saber
La primera parte no da por sabido nada de TDD, así que encaja si estás empezando. La segunda pide saber programar, porque hay que seguir el código de un proyecto paso a paso.
Qué ediciones hay
Edición de 2010
- Gratuita, con licencia Creative Commons
- Ejemplos en C# y Python
- Incluye agilismo, ATDD, SOLID e integración continua
Ediciones en Savvily
- De pago, en papel y digital
- Una versión con ejemplos en Python y otra en Java
- Índice nuevo y más corto, centrado en TDD
Entre medias hubo una edición de 2020 en Leanpub, que ya no está a la venta. En esa página, el autor explica que la edición de 2023 se publicó con Savvily, corregida por un editor profesional, y que cambió los ejemplos de Kotlin a Python. Ahora Savvily vende Diseño Ágil con TDD en Python y Diseño Ágil con TDD en Java, con el subtítulo «Una introducción práctica a las pruebas de software automatizadas».
Su índice tiene siete capítulos: qué es TDD, tests sostenibles, la premisa de la prioridad de transformación, criterios de aceptación, mock objects, estilos y errores, e implantación de TDD. Las dos páginas ofrecen una muestra gratuita en PDF.
Código Sostenible, su libro posterior
Código Sostenible, con el subtítulo «Cómo programar código fácil de mantener», también se publica en Savvily y tiene muestra gratuita en PDF. Sus once capítulos van de la refactorización y los nombres a la cohesión, el acoplamiento, SOLID, la gestión de errores y los tipos específicos del dominio. Si el primero enseña a guiar el código con tests, este se centra en que ese código se pueda entender y cambiar con el tiempo.
Alternativas
- Test-Driven Development: By Example, de Kent Beck (2002): el libro que dio a conocer TDD. En inglés y de pago.
- Learn Go with Tests: gratis y en inglés; enseña Go escribiendo primero los tests.
Y con la IA, ¿sigue sirviendo?
Ninguno de los dos libros trata de inteligencia artificial. Aun así, lo que enseñan es justo lo que hace falta para revisar el código que escribe un agente: tests que comprueben que funciona y un diseño que se pueda cambiar. Un test escrito antes le dice al agente qué tiene que conseguir y te dice a ti si lo ha conseguido. Esta conexión no la hace el autor: es el enfoque de la IA Limpia.
Fuentes
Comprobado el 7 de noviembre de 2026:
- Edición de 2010: PDF original de carlosble.com en su copia de Internet Archive del 19 de junio de 2018 (301 páginas). De él salen la ficha, el índice, los colaboradores y la licencia. El enlace original (
carlosble.com/downloads/disenoAgilConTdd_ebook.pdf) no responde. - Edición de 2020 y cambio a Savvily: página del libro en Leanpub.
- Ediciones actuales y biografía del autor: páginas de Savvily de Diseño Ágil con TDD en Python y en Java.
- Código Sostenible: página del libro en Savvily.
- Alternativas: Learn Go with Tests. El libro de Kent Beck se cita por su ficha editorial (Addison-Wesley, 2002).
- El ejemplo se ha ejecutado con el test runner de Node 24.21.0: primero falla (
fail 2) y, con la implementación, pasa (pass 2).