Nivel inicial8 min de lectura · Publicado el

Libro TDD de Carlos Blé: Diseño Ágil con TDD

Libro de TDD de Carlos Blé, Diseño Ágil con TDD (2010): la teoría, con el ciclo rojo, verde y refactor, y la práctica, un proyecto completo. TDD en español, desde 2010rubentejera.com Parte IrojoverderefactorATDD · dobles · SOLIDParte IIun proyecto con TDDCarlos Blé, 2010
La parte I explica el ciclo completo (rojo, verde y refactor), ATDD, los dobles de prueba y SOLID; la parte II lo aplica a un proyecto entero, con ejemplos en C# y Python.

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

  1. El agilismo: del modelo en cascada al manifiesto ágil y los roles del equipo.
  2. 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.
  3. ATDD, desarrollo dirigido por tests de aceptación: historias de usuario y cómo saber si algo está terminado.
  4. Tipos de test: de aceptación, funcionales, de sistema, unitarios y de integración.
  5. Tests unitarios y frameworks xUnit, con la estructura de tres partes AAA (preparar, actuar y comprobar).
  6. Mocks y otros dobles de prueba: cuándo usar un objeto real, un stub o un mock.
  7. Diseño orientado a objetos: los principios SOLID y la inversión del control.

Parte II: ejercicios prácticos

  1. 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).
  2. La misma solución en Python.
  3. 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

  1. 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.
  2. Sigue la parte II con el editor abierto. No te limites a leer: escribe cada test, míralo fallar y hazlo pasar.
  3. Cambia de lenguaje si te ayuda. Los ejemplos están en C# y Python, pero el ciclo es igual en cualquier lenguaje.
  4. 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: