Testear tu código en desarrollo web puede ser muy pesado pero si no lo haces, los problemas que te perseguirán son aún peores. En éste artículo, nos adentraremos un poco en el TDD (Test-driven development) y cómo de bien te irá en tus proyectos de desarrollo web.
¿Qué es el TDD?
Des de la era de Internet, los programadores han tenido una batalla constante con los errores. Y amigos, es inevitable. Incluso los mejores desarrolladores de todos los tiempos tienen que luchar contra errores raros y “anomalías” para decirlo de algún modo. No hay código seguro, y es por eso que se hacen tests. Los programadores, al menos los precavidos hacen test de su código con herramientas que detallan e informan de los errores que puedan aparecer durante el desarrollo web.
El test-driven development es una técnica de programación automática que involucra: Escribir las pruebas y refactorizar. Para escribir las pruebas se utilizan pruebas unitarias o unit test y luego se verifican. Se implementa el código que hace que la prueba sea satisfactoria y luego, se refactoriza el código escrito. Lo que se pretende es crear un código limpio, que funcione y no de errores.
¿Cómo funciona?
El TDD se desarrolla en un ciclo corto que funciona de éste modo:
- Haz una prueba antes de implementar el text. Puedes usar un ejemplo sencillo de este requisito y crear una prueba unitaria, ejecutarla, implementar el código minimo que pueda superar la prueba y ejecutarla para ver cómo se supera. Mientras lo escribes el test se hace automáticamente y nos informará de los errores.
- La primera vez que lleves a cabo el test automatizado, éste tendría que fallar indicando que el código aún no está preparado.
- Después de esto, puedes empezar a programar . Cómo el test ya se ha automatizado, mientras el código falle significa que no está listo. Se va aplicando el proceso para resolver las funcionalidades que se deben implementar.
- Cuando el código pase el test, refactoriza hasta que se resuelva. Limpia el código y vuelve al mismo proceso.
En resumen: elige un requisito para desarrollar, crea la prueba o test, ejecuta los tests, crea el código especifico para resolverlo, ejecuta de nuevo el test, refactoriza el código, ejecuta los test. Y así cíclicamente.
¿Por qué es mejor que un test normal?
Muchas veces revisando el código del desarrollo web no aparcen problemas, es cuando se produce que todo sale mal. Y en lugar de estar horas arreglando todo lo que está mal el TDD nos irá diciendo todo lo que hacemos mal para corregirlo al momento.
El PHPUnit es una buena herramienta para crear tests y puede integrarse en nuestros proyectos.
Además, solo implementando el código imprescindible para resolver una prueba concreta y pasarla, implica que el código creado sea el mínimo necesario. Esto reduce los códigos innecesarios que acaban siendo código de desarrollo web muerto.
Un buen resultado de TDD se obtiene al realizar un conjunto de pruebas unitarias que cubren todos los casos descritos en los requisitos. Hay que poner curro detrás de la técnica para crear buenos tests, es lo más difícil de este proceso.
El TDD no es solo pruebas. Una aplicación adecuada contiene una etapa de refactorización que hace un código más legible, optimo y fácil de mantener para el desarrollo web.
Una primera aproximación para probar el código durante el desarrollo web. Algo que puede optimizar nuestro trabajo y tener proyectos más eficientes.