miércoles, 18 de diciembre de 2013

TDD - Desarrollo guiado por pruebas

TDD (Test-driven Developmen) es una metodología para el desarrollo de software que en los últimos años tubo una gran aceptación entre los programadores.

Esta metodología involucra algunas buenas prácticas como, escribir las pruebas primero y luego refactorizar el código.

En primer lugar, generalmente se programan los que se conocen como Pruebas Unitarias (Unit test) y se verifique que estas pruebas fallen, a continuación se implementa el código que hace que las pruebas pasen satisfactóriamente y finalmente se refactoriza el código escrito.

Cuando hablamos de Refactorización de código estamos haciendo referencias a modificaciones en el código fuente de un programa, no con la intención de cambiar su funcionalidad sino de “limpiar las líneas de código”, de tal manera que mejore su consistencia interna y su claridad para ser entendida por cualquier programador.


Proposito de TDD


El propósito del desarrollo guiado por pruebas es lograr un código limpio que funcione. La idea es que los requisitos sean traducidos a pruebas, de este modo, cuando las pruebas pasen se garantizará que el software cumple con los requisitos que se han establecido.


Ciclo de Desarrollo aplicando TDD


En primer lugar se debe definir una lista de requisitos y después se ejecuta el siguiente ciclo:


  1. Elegir un requisito: Se elige de una lista el requerimiento que se cree que nos dará mayor conocimiento del problema y que a la vez sea fácilmente implementable.
  2. Escribir una prueba: Se comienza escribiendo una prueba para el requisito. Para ello el programador debe entender claramente las especificaciones y los requisitos de la funcionalidad que está por implementar. Este paso fuerza al programador a tomar la perspectiva de un cliente considerando el código a través de sus interfaces.
  3. Verificar que la prueba falla: Si la prueba no falla es porque el requerimiento ya estaba implementado o porque la prueba es errónea.
  4. Escribir la implementación: Escribir el código más sencillo que haga que la prueba funcione. Se usa la metáfora "Déjelo simple" ("Keep It Simple, Stupid" (KISS)).
  5. Ejecutar las pruebas automatizadas: Verificar si todo el conjunto de pruebas funciona correctamente.
  6. Eliminación de duplicación: El paso final es la refactorización, que se utilizará principalmente para eliminar código duplicado. Se hacen de a una vez un pequeño cambio y luego se corren las pruebas hasta que funcionen.
  7. Actualización de la lista de requisitos: Se actualiza la lista de requisitos tachando el requisito implementado. Asimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agregan requerimientos de diseño (P. ej que una funcionalidad esté desacoplada de otra).


Utilizando TDD en el desarrollo de tus proyectos, es muy común ver como poco a poco los programadores se olvidan de usar los Debugger de código y aprender rápidamente buenas prácticas de refactorización de código y además de alguna forma vamos test a test utilizando buenas prácticas para asegurar nuestro código.

Dejanos tu comentario si estas trabajando con TDD y lo estas implementando con algún lenguaje de programación o algún framework para ejecutar tus Unit Test.

Saludos!

No hay comentarios.:

Publicar un comentario

Entradas populares