Desde hace un tiempo estamos trabajando intensivamente con Bromine y Selenium para automatizar las pruebas en nuestras aplicaciones Web. La idea es contar con tests que se ejecuten periódicamente y que simulen lo que haría un usuario directamente en su Browser.
Al principio es un poco complicado, por que se deben ajustar ciertas cosas que no vienen en la instalación regular. Pero después de unas cuántas horas el sistema funciona bastante bien. Una vez que lo tienes instalado utilizas un plugin para Firefox llamado Selenium-IDE que te ayuda a hacer los tests.
Teóricamente, sólo reproduces los pasos que haces normalmente y luego le das play una y otra vez. De esta manera garantizas que todo lo que está funcionando, no deje de funcionar por cambios en el programa. Puedes chekar una introducción aqui.
En la práctica, toma un tiempo aprender los trucos para “grabar” bien los tests y reproducirlos posteriormente. Después que le agarras el truco, es bastante sencillo. Para que tengas una idea, grabar un test de algo que toma 10 minutos en hacer manualmente, puede llevarte una hora. Pero después que lo tienes grabado, la reproducción se hace totalmente automática y no necesitas invertir tiempo de gente haciendo las pruebas. Al final es divertido ver como una especie de robot repite los pasos que le indicas, y el explorador comienza a hacer clicks y tipear cosas por si sólo.
Hasta el momento llevamos unos 60 tests automatizados, y creo que todavía nos pueden faltar unos 10 casos más por automatizar. Estos tests se van a ejecutar todos los días en nuestro servidor de alfa (última versión en desarrollo) a la media noche. De esta manera garantizamos que si hay cualquier error podamos detectarlo al día siguiente que se generó.
Cuándo se desarrollen nuevas funcionalidades se le generaran los tests una vez que el desarrollo esté listo y antes de publicarlo para que lo vean los clientes. Estos tests son generados por el área de Gestión Comercial. Adicionalmente el área de Operaciones tambien genera los tests que considere necesarios para aprobar el pase a producción de una versión nueva.
Esto es parte importante de nuestra metodología XP (Extreme Programming) y probar constantemente todo lo que se desarrolla. Estoy convencido que esto nos va a ayudar disminuir los errores que llegan a producción (ambiente utilizado por los clientes) y de esta manera poder mejorar nuestro servicio.