Artículos

Los beneficios de usar TDD

El desarrollo guiado por pruebas, o TDD, no es un concepto nuevo: desde hace años los programadores tenían la idea de probar antes de programar. Sin embargo, TDD como concepto y técnica se volvió más popular y estandarizado gracias a la introducción de la metodología ágil. En este artículo explicaremos los beneficios de usar TDD y mostraremos cómo funciona paso a paso.

¿Qué es TDD?

Primero, debemos comprender que TDD no es lo mismo que las pruebas unitarias. TDD es una técnica de programación que usa pruebas unitarias. Su idea principal es que, antes de escribir código para nuestro sistema, primero debemos crear las pruebas para ese código. Al principio puede sonar extraño, ya que en las técnicas tradicionales las pruebas se crean después de escribir el código. Sin embargo, como indica el nombre «desarrollo guiado por pruebas», la prueba guiará la escritura del código. Esto permite a los desarrolladores concentrarse en los requisitos antes de programar.

Por qué usar TDD

TDD ofrece varios beneficios a los desarrolladores cuando se aplica correctamente:

  • TDD les da más confianza en el código que escriben, ya que las pruebas fallarán o pasarán automáticamente.

  • Los desarrolladores pueden imaginar la funcionalidad mientras crean el paso, lo que les permite comprender mejor las funciones que construyen.

  • Se reduce considerablemente la cantidad de errores reportados en etapas posteriores del desarrollo. El costo de corregir un error crece exponencialmente a medida que avanza el proceso, por lo que TDD también reduce significativamente ese costo.

  • TDD produce un sistema más reutilizable y modular, preparado para cambios futuros.

  • TDD ayuda a asegurar que el sistema cumpla con los requisitos definidos. Esto es crucial para satisfacer las expectativas del cliente.

  • Al usar TDD, la cobertura de pruebas es del 100%.

Cómo usar TDD

Para usar TDD hay cinco pasos que seguir. Estos se conocen habitualmente como rojo, verde y luego refactorizar.

El ciclo de TDD. Gráfico de Vskills.
El ciclo de TDD. Gráfico de Vskills.

Crea una prueba.

Antes de escribir una nueva función o funcionalidad, debes crear la prueba para ese código. Sin embargo, antes de crearla, el desarrollador debe contar con toda la información y los conocimientos necesarios sobre la nueva función para hacerlo correctamente. La prueba debe ser breve y fallar al ejecutar el código.

Ejecuta todas las pruebas.

Este paso valida que las nuevas pruebas agregadas funcionen correctamente. Si una prueba nueva falla y las existentes funcionan como se espera, podemos confirmar que se agregó correctamente. Llamamos a este paso rojo, porque ese color representa la prueba que falla.

Escribe el código mínimo.

El siguiente paso es escribir la menor cantidad de código necesaria para pasar la prueba. El código escrito en este paso no tiene que ser perfecto y puede mejorarse después, pero nos ocuparemos de eso en el último paso. La idea principal es que el código pase la prueba, por lo que el desarrollador debe evitar escribir código innecesario que exceda lo que esta requiere.

Ejecuta todas las pruebas.

Repite el segundo paso, pero esta vez todas las pruebas deberían pasar. Esto indicará cómo funcionan el nuevo código y las nuevas pruebas, y si afectan al código y las pruebas existentes. Llamamos a este paso verde, porque ese color representa el éxito de las pruebas.

Refactoriza el código.

El último paso incluye todas las mejoras y los cambios necesarios en el nuevo código. La idea general de refactorizar es revisar el código para identificar cambios y hacer mejoras. Esto puede incluir limpiarlo, revisar los nombres de métodos y atributos, comprobar la longitud de métodos y funciones, dividir métodos largos en otros más pequeños o mover el código a una sección más adecuada del sistema. Se recomienda usar las mejores prácticas de código limpio al refactorizar.

Repite el ciclo.

Después de completar la refactorización, podemos repetir todo el ciclo creando nuevas pruebas para avanzar en la implementación de la función o funcionalidad. Es importante tener en cuenta que, si el nuevo código rompe pruebas existentes que antes pasaban, quizás debamos considerar revertirlo.


TDD es una excelente técnica de programación que permite a los desarrolladores mejorar su rendimiento y confianza. Es una gran forma de asegurar que el producto cumpla con los requisitos del cliente, y esperamos que este artículo ayude a comprender sus fundamentos.

“Los beneficios de usar TDD” de Facundo Revello está bajo la licencia CC BY SA. Los ejemplos de código fuente están bajo la licencia MIT.

Foto de portada de Clément H. Gráfico de Vskills.

Clasificado en Investigación y aprendizaje.

Lecturas relacionadas