¿Qué es y para qué sirve el TDD?

Autor: | Última modificación: 13 de enero de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

El Test-Driven Development o TDD fue creado por Kent Beck a finales de los años 90 y se ha extendido como la pólvora. Si aún no sabes qué es el TDD y por qué deberías aplicarlo en tus desarrollos, en este post te contaremos todo.

¿Qué es el TDD?

El TDD mas que una serie de herramientas de software o lenguaje de programación es una técnica que quizá a prioi podría ir en contra del instinto natural de todo programador. Más adelante explicaremos el por qué.

El TDD consiste en aplicar iteraciones cortas y rápidas del ciclo “Red Green Refactor”. Aplica el algoritmo clásico de “divide y vencerás” al precepto de calidad en la producción de software, basándose en  los 3 siguientes pasos:

  1. Red: Crea un test que representa una especificación, a sabiendas que va a fallar y tal vez ni siquiera compilar.
  2. GreenImplementa una solución que permita que el test pase, desarrollando el código tan sólo justo para ello. Comprobaremos también que el resto de tests previamente implementados sigan funcionando, evitando así que nuestra nueva funcionalidad cause error en otras implementadas previamente.
  3. RefactorOptimizamos el código del test asegurando se mantenga su funcionalidad.

De esta forma, el desarrollo realmente es dictado por los tests que representan las especificaciones del programa,  logrando así crear software 100% correcto, limpio, divino y en tiempo récord. 

Red Green Refactor

¿Para qué sirve el TDD?

  1. Minimizar el número de bugs. Corregir bugs supone invertir tiempo, lo que se traduce irremediablemente en dinero que no se despilfarra. 
  2. Implementar las funciones justas que se necesitan en ese momento. Todo programador sabe lo bueno que podría ser implementar diferentes funcionalidades que aporten un valor añadido a una aplicación. Pero no nos engañemos, si por ejemplo un cliente nos ha pedido algo concreto, mejor dárselo para optimizar el trabajo invertido. Gracias a este método eliminamos ese tiempo de picar código que el responsable de la app no ha pedido. 
  3. Producir software modular y altamente reutilizable y preparado para el cambio. Con esta técnica no nos tenemos que preocupar si hay rotaciones de programadores y que usen ese mismo código. No hay riesgo de que rompan el código.

¿Qué es y para qué sirve el TDD? 1

Ventajas de comenzar a usar TDD

  1. ProductividadEvitamos escribir más código del que realmente se necesitaUsando TDD, vas solucionando tareas fraccionadas y superando test concretos, lo cual ayuda a optimizar mucho mejor el tiempo invertido.
  2. Tranquilidad. Al seguir el proceso de TDD, todo el código escrito después de realizar los test está totalmente protegido. Esto da como resultado un código fresco, claro y limpio.
  3. Escalabilidad. Todo proyecto se hace grande a medida que se va profundizando en él. Esto trae como resultado un incremento en la complejidad del código. TDD permite evaluar en qué punto nos encontramos en cada momento para hacer un chequeo rápido de «¿cómo vamos?».
  4. Refactorización. Después de encontrar un problema, pasamos al proceso de refactorización del mismo, de forma que no tenemos que esperar a tener el código finalizado para poder llevar a cabo esta tarea, sino que el código se va reescribiendo a medida que se detectan errores.
  5. Depuración. TDD es la mejor forma para detectar los fallos, si aparece uno y modificamos el código hasta que pase el test, lo vamos depurando paulatinamente y obtenemos un código limpio.

Desventajas del uso de TDD

Hay que tener en cuenta que no todo es perfecto y el TDD tiene algunos ligeros inconvenientes a la hora de implantarlo en un proyecto. Los dos más relevantes a tener en cuenta serían los errores no identificados y la curva de aprendizaje.

  1. Los errores no identificados: Sólo por el hecho de pasar todas las pruebas en la herramienta que se use, no quiere decir que no se tengan errores, sólo significa que las pruebas que se han ejecutando no han encontrado errores. Esto puede provocar un falso sentimiento de seguridad, por lo que es necesario que las pruebas sean detalladas y cubran todos los hipotéticos escenarios posibles.
  2. Curva de aprendizaje: TDD es una técnica difícil de adoptar a corto plazo y tiene una curva de aprendizaje elevada, lo que significa que nuestra productividad se verá reducida durante los primeros meses de uso, pero después compensará notablemente el esfuerzo invertido. Conviene realizar una formación especializada para lograr minimizar el impacto de esa caída de productividad al mínimo.

tdd-refactor

Ahora qué sabes qué es el TDD, es momento que lo lleves a tus proyectos y si quieres convertirte en un experto en esta metodología y el desarrollo Full Stack, descubre nuestros Bootcamps en programación. Potencia tu perfil profesional en menos de 8 meses con nosotros.

[email protected]