Cuando uno habla de Herramientas de "Regression Testing" esta hablando de un programa que testea automáticamente nuestras aplicaciones y nos dice los errores que encontró. Este post no va dirigido a todos aquellos que deseen mejorar la calidad de sus desarrollos web y quieran enterarse de que se tratan estar herramientas y que opciones existen.

El concepto de "Regression Testing" no es ninguna novedad. Consiste en realizar un juego de pruebas predefinidas cada vez que se hace alguna implementación nueva o se soluciona un bug en el cual debimos modificar gran parte del código o "tocar" la aplicación en varios lugares. A lo que apunta es, para ponerlo de manera sencilla, a controlar que no rompamos una cosa mientras arreglamos otra.

Utilizar regression testing es beneficioso en dos aspectos fundamentales:

a. Aumenta la calidad de nuestro proceso de desarrollo, facilitando la entrega de productos más estables y favoreciendo nuestra reputación entre los clientes.

b. Al no tener que arreglar bugs no detectados, las horas que dedicamos a cada proyecto disminuyen, aumentando la rentabilidad del mismo. Esto quiere decir que, o bien ganamos mas dinero, o hacemos propuestas mas competitivas.

Existen algunas herramientas que sirven para realizar testeos regresivos en los lenguajes utilizados en el área empresarial, como junit o cppunit(para java y c++ respectivamente). La desventaja que tienen estas herramientas es que hay que incorporarlas en el código y requieren una inducción relativamente alta para que el programador pueda utilizarlas eficientemente. De estas no voy a hablar en este artículo.

Como alternativa más amigable(y cara) a las herramientas que nombro en el párrafo anterior, existen productos visuales, que (casi) no requieren conocimientos de programación y pueden aprenderse a usar en una tarde. Por medio de estas, testear aplicaciones web medianas y grandes se reduce a presionar un botón y dejar que el programa trabaje(generalmente estas tareas se realizan de noche o durante la hora del almuerzo).

La "Ferrari" de las herramientas de testeo regresivo es el Rational Funcional Testing, que cuesta algo así como 10.000 u$s. Esta se integra con .NET y Eclipse, permitiendo testear cualquier aplicación web, brindando un informe detallado de errores encontrados y una larga lista de etcéteras. Este producto compite con WinRunner Regression Tester, que tambien es una herramienta lider.

En los links que doy en el párrafo anterior hay documentación interesante que dice como funcionan y en el de rational existe un link para bajarse el Rational Funcional Testing. Yo recomiendo fuertemente visitar la página de de una herramienta un poco más modesta que tiene unos videos en flash donde se muestra como se utilizan estas aplicaciones visuales de testeo. Dicha herramienta es el Regression Tester VTest.

Adicionalmente, hay una herramienta desarrollada en flash que permite realizar testeos regresivos de desarrollos en formato .swf.

Algunas palabras sobre "El Script"

Cuando se define un juego de pruebas, se genera lo que se denomina en la jerga "El Script", que es información que define las operaciones que se realizan sobre la aplicación, y tiene una forma similar a esta:


* Abrir explorer en la URL www.weremsoft.com.ar
* Esperar que la página termine que cargar
* Verificar que se halla cargado tal imagen
* Verificar que se halla cargado otra imagen
* Completar tal campo con tal información
* Completar otro campo con tal información
* Presionar tal botón
* Esperar a que la pagina termine de submitir
* Verificar que en la respuesta aparezca esta cadena: "Gracias por Submitir!"


Para cada una de esas entradas en el script(que generalmente se ve en forma de arbol y es totalmente editable) se genera un item en el reporte con un estado que puede ser Success o Fail e información adicional que puede contribuir a la solución del error.

Conclusiones y Palabras Finales

Si bien alguna de las herramientas no están al alcance de cualquiera, es bueno saber que existen y que pueden usarse, en algunos casos, versiones de prueba.

Créanme, hay "profesionales" que no saben que es el regression testing o que desconocen las herramientas que se tratan en este artículo, por lo que, encontrar una herramienta de nuestra conveniencia googleando o buscando en SourceForge puede darnos una ventaja competitiva a la hora de llevar adelante proyectos web o de otra índole.

Algo que no ví en la documentación que revisé es como hacen estas herramientas para testear aplicaciones web con tecnología AJAX, ya que los ejemplos que muestran son todos con páginas web estándar.

Espero que les sea de utilidad.

Saludos!