Testing de aceptación automatizado con selenium


La comunidad de ingeniería del software, está dando cada vez más importancia a las metodologías ágiles, y estas a su vez le dan un sitial de gran importancia al Software Testing de Aceptación Automatizado. Un ejemplo de esta situación es el “Desarrollo Guiado por Pruebas (Test Driven Development)”, método en el que el código de programa es desarrollado de acuerdo a casos de prueba previamente definidos.


Asimismo, Selenium WebDriver se ha convertido en uno de los principales exponentes en la Automatización de Software Testing, por ser esta de código abierto y soportar múltiples lenguajes de Scripting como Ruby, Java, Perl, entre otros.

¿Por qué se necesita automatizar el Software Testing al aplicar metodologías ágiles?
  • Todas las metodologías ágiles implican constantes iteraciones, en las cuales el código de programa se modifica constantemente.
  • En cada iteración, además de expandir las funcionalidades del sistema, podemos realizar Refactorizaciones para optimizar funcionalidad que ya desarrollamos y eliminar deuda técnica.
  • Esto implica la necesidad de realizar constantemente pruebas regresión, dado que al modificar código desarrollado previamente, debemos revisar que continua funcionando adecuadamente.
  • Con frecuencia, esto implica:
    • Constantes pruebas de regresión.
    • Esfuerzo duplicado en pruebas.
    • Todos en el equipo terminan haciendo pruebas manuales, inclusive desarrolladores, Testers y el cliente.

Entonces, ¿Se necesita la automatización de pruebas en metodologías ágiles?

  • La respuesta es un sí definitivo, dado que muchas veces se pueden hacer cambios en la base de código y refactorizaciones, inclusive varias veces al día.
  • Cuando el software es complejo y tiene muchas interfaces con otros sistemas, es imposible seguir el ritmo de las constantes iteraciones sin automatizar las pruebas de regresión.

Como puede ayudarme Selenium WebDriver para esto
  • Una de las principales dificultades al utilizar herramientas de prueba en el TDD, es que el método de registrar (capturar) la acción del usuario y luego reproducirla no puede usarse debido a que el sistema no está implementado al momento de diseñar los casos de prueba.
  • En este sentido, el API de Selenium soporta la implementación manual de casos de prueba, los cuales pueden definirse en lenguajes de programación como Ruby, Java, entre otros, de esta manera, el desarrollo de los casos de prueba automatizados se puede realizar antes que el software que se va a probar esté implementado.
  • Casos de prueba escritos en un lenguaje de programación determinado, se pueden transformar a otros lenguajes, de esta forma, se puede integrar Selenium por ejemplo con JUnit.
  • Es importante destacar que Selenium está específicamente diseñada para probar solamente aplicaciones web.

Selenium en el ciclo de Test Driven Development (TDD)

Selenium WebDriver intervendría en el ciclo de Desarrollo TDD como se muestra en la figura.

Publicar un comentario

0 Comentarios