Enlaces e información

Comenta lo que creas oportuno.


Otros posts
Retomando…
Flex: Mostrar imágen desde un servicio XML

La importancia del testing

Escrito por Roberto M. Oliva en Noviembre 26th, 2007

El jueves pasado estuve en la Conferencia de Rails en Madrid y me llamó mucho la atención, dentro de toda la controversia que creo el uso del testing en aplicaciones, lo poco que se implantaba y la poca importancia que se le daba.

Dentro de toda la polémica que suscitó había gente que dudaba de uso durante las fases de desarrollo. Lo de siempre: Falta de tiempo, desconocimiento de uso, etc. Hacen que se le de muy poca importancia.

Mi experiencia me ha mostrado que el testing es una de las piedras angulares del desarrollo ágil actual porque afecta a todas las fases del desarrollo de un proyecto:
- Diseño: Con TDD (Test driven developement) se desarrollan los tests antes de implementar la funcionalidad. Esto nos define claramente como ha de funcionar dicho código. Nos ayuda a pararnos a definir el comportamiento externo de la pieza de código que vamos a escribir después del testeo.
- Codificación: Con el testeo en la mano podemos dedicarnos a refactorizar o pulir nuestro código hasta que se ejecute de una manera limpia y eficaz facilitando, entre otras cosas, la mantenibilidad del código entre otros desarrolladores.
- Integración en grupo: Si el proyecto se desarrolla en grupo nos es más fácil detectar aquellas cosas que estamos modificando en nuestro código y que afectan al resto. Nos facilita centrarnos en nuestra parte del código porque los testeos nos van a avisar qué espara el resto de desarrolladores de nuestra parte codificada y como se comporta el resto de las piezas de código no desarrolladas por nosotros.
- Evolución del proyecto: Este es un aspecto crítico del desarrollo ágil. Nuestro proyecto va evolucionando en iteraciones cortas y totalmente funcionales. En vez de hacer un megaproyecto para el cliente, evolucionamos poco a poco el proyecto en la dirección en la que éste dicta según va revisando el funcionamiento del mismo. En cada iteración el cliente va obteniendo una versión parcial del proyecto, pero totalmente funcional. Con esta filosofía, si metemos nuevas funcionalidades los testeos nos van a decir claramente cuales son las partes del proyecto que hay que modificar para incorporar lo nuevo, y lo que es evidente: Cuando lo hayamos hecho nos va a decir si todo vuelve a funcionar correctamente.

Bajo mi punto de vista el desarrollo bajo el paraguas del testeo me parece, no algo ineludible, sino totalmente incuestionable. De las tres patas del desarrollo ágil (junto con Integración continua y Pair programing) es la única no negociable en ningún tipo de proyecto.

Además no sirve para nada la típica excusa de que, como hay que “desarrollar el doble”, con la presión de tiempo es imposible hacer testing. Más bien se podría decir al contrario: A la larga se reduce drásticamente el tiempo total empleado en el proyecto. Lo malo es la frase con la que se empieza: “A la larga” y también que para hacer buen testing, como todo en la vida, hay que aprender.

Según nos comentó Obie Fernandez fuera de España el 90% de los desarrolladores de informática utiliza testing en el desarrollo de sus aplicaciones. Por lo visto en la pasada conferencia de Rails, en España, apenas se llegaba al 10%.



Escriba un comentario

Dediquele un momento a comentar lo que piensa. Esta permitido usar HTML básico para formatear el escrito.

Comentarios de los lectores

Sea el primero en dejar un comentario.