¿Qué es TDD?
TDD es un sistema de desarrollo inventado por Kent Beck y Ward Cunningham en el que definieron un proceso de desarrollo en el cual primero se escribían las pruebas (test basados en los requisitos) que debería pasar el código y posteriormente se desarrolla el código para que pase estas pruebas.
Ciclo de desarrollo con TDD
El proceso de desarrollar siguiendo esta metodología TDD, se basa en un algoritmo de 3 pasos:
- Escribir el test (RED)
- Implementar el código (GREEN)
- Refactorizar (REFACTOR)
Vamos a ver en qué consiste cada paso.
Escribir el test (RED)
Seleccionamos el requisito que queremos implementar y primero escribimos un test a partir de su especificación.
Tenemos que imaginarnos cómo implementaremos el código para este requisito y escribir la prueba que comprobará el correcto funcionamiento, luego intentamos pasar el test, pero, al no haber escrito ningún código, este test fallará y nos dará el error.
Implementar el código para pasar el test (GREEN)
Una vez tenemos implementado el test, en este segundo paso implementamos la función para que pase nuestro test.
Debemos escribir el mínimo código imprescindible para que pase el test, tiene que limitarse a pasar el test que definamos, no se deben hacer suposiciones futuras, el código debe ser lo más simple posible y no debemos preocuparnos si es chapucero, de eso nos encargamos en el siguiente paso.
Refactorizar el código (REFACTOR)
En este tercer punto sí que debemos eliminar código duplicado, comprobar que seguimos los principios de buenas practicas de desarrollo como puede ser S.O.L.I.D.
Básicamente buscamos que el código sea lo más optimizado y legible posible y por supuesto asegurarnos que sigue pasando el test.
Una vez completados estos tres pasos, pasamos al siguiente requisito, y volvemos a empezar el ciclo.
Conclusiones
Aquí hemos conocido una nueva metodología para desarrollar aplicaciones basándonos en la definición de pruebas, el TDD.
Este sistema puede ser utilizado tanto para proyectos grandes como para otros más modestos ya que la filosofía de este método es dividir la aplicación en módulos más pequeños y más fáciles de testear, así, de esta manera hacemos que los módulos sean lo menos inter-dependientes posible unos de otros.
Si quieres estar al día de las nuevas publicaciones en el blog puedes suscribirte a nuestra newsletter
Deja un comentario