Desarrollo guiado por pruebas

Hace tiempo que no posteo algo y que mejor que regresar con una buena metodologia. Se trata de Test-driven development (TDD) una metodologia agil que se enfoca a satisfacer los casos de prueba del cliente dejando en segundo plano el un profundo diseño y analisis, pero reforzando el vinculo entre desarrollo y pruebas, al estilo de Code and fix V.2.

Los pasos de realizacion de dicha tecnica son sencillos e iterativos.

1. Consiste en identificar claramente los casos de prueba.

2. Mas tarde, se implementan los casos de prueba, al no existir aplicacion o codigo previo dichos casos de prueba fallaran lo cual es el objetivo. Para este punto y verificar de manera adecuada que los casos de prueba fallen, nos apoyamos de herramientas de casos de prueba unitaria como son NUnit (en el caso de .Net) y JUnit (para Java), aunque NUnit se basa en JUnit las diferencias entre ambos puden ser abismales. Al carecer java de atributos en el lenguaje es necesario seguir un estandar para la implementacion de casos de prueba; por otro lado cuenta con un gran soporte dentro de sus IDE para dicho framework.

3. Despues, se implementa el codigo para que dichos casos de prueba sean superados, con lo cual nos apoyaremos de dichas herramientas para lograr nuestro objetivo.

4. Por ultimo, se refactorizara y buscara el performance de nuestro codigo, y se generaran nuevos casos de prueba iterando asi, dicho ciclo.

Dicha metodologia me parecio bastante util en el diseño de librerias y frameworks, aunque apenas voy conociendo su potencial me agrada la idea de no borrar codigo, ni hacer mezclas extrañas, y por supuesto, realizar las pruebas primero. Considero valioso la incorporación de dicha tecnia en futuros proyectos.