blank
22
Ago

Selenium: Presente y futuro del control de calidad

Selenium: Presente y futuro del control de calidad

Dentro de la validación de pruebas funcionales existen dos maneras de afrontar su ejecución: de forma manual y automática. Entre estas, la automatización presenta una serie de ventajas y utilidades respecto a la manual.

En efecto, la automatización de pruebas funcionales forma parte del presente y el futuro del control de calidad para cualquier tipo de aplicación o software, ya que haciendo una inversión de tiempo en el desarrollo de las pruebas, se consigue reducir drásticamente el tiempo de ejecución respecto a las manuales y aumenta la calidad de producto.

Uno de los frameworks más utilizados para la automatización web es Selenium, que ofrece varias herramientas con las que poder desarrollar test automáticos:

  • Selenium IDE: Con Selenium IDE, podremos grabar directamente el flujo de la prueba y crear un script el cual podemos editar posteriormente para asegurarnos de que se ha grabado correctamente y, tanto el flujo como las validaciones, son correctas.

Este script se genera en un lenguaje propio de Selenium, Selanase. Mediante este lenguaje podremos programar nuestros tests, enviando acciones directamente a los objetos web de la aplicación.

Podremos utilizar tanto la aplicación Selenium IDE como sus correspondientes add-ons en Firefox, Chrome y Edge para grabar los scripts.

  • Selenium WebDriver: El WebDriver controla de forma nativa un cliente web, simulando las interacciones que tendría un usuario real al navegar por nuestra aplicación, por lo que podremos programar un script que simule exactamente el flujo que seguiría un usuario real. Actualmente es compatible con Firefox, Internet Explorer (solo la versión 11), Safari, Opera, Chrome y Edge.
  • Selenium Grid: Con Selenium Grid logramos la ejecución de pruebas en paralelo en distintas máquinas virtuales o reales. Esto nos permite lanzar las pruebas en distintas versiones del cliente web y poder realizar configuraciones centralizadas, en lugar de tener una configuración individual por cada prueba.

Con estas tres herramientas se logra un desarrollo de pruebas muy sólidas y completas para nuestras aplicaciones web, alcanzando una mayor calidad de las mismas.

En la actualidad, Selenium tiene soporte oficial para los siguientes lenguajes: C#, Java, Ruby, Python y JavaScript.

Además, junto con Selenium podremos utilizar Cucumber para diseñar el flujo de nuestras pruebas. Se trata de un framework que utiliza la metodología BDD. BDD es una forma de trabajo en la que estrechamos la brecha entre el departamento de negocio y el técnico dentro de un equipo de software, ya que se define el flujo de trabajo con sentencias cortas y concisas.

Concretamente, esta metodología se aplica en Cucumber creando un flujo para la prueba llamado Scenario. A su vez, estos scenarios se agrupan en un fichero denominado Feature, que sería la funcionalidad que queremos comprobar dentro de nuestra aplicación.

Cucumber utiliza un lenguaje llamado Gherkin, con el que asociaremos una sentencia que describa el comportamiento de la prueba, con el código que simula ese comportamiento en el cliente web.

De este modo, cuando una persona de negocio quiera saber qué hacen las pruebas, este podrá comprender el flujo completo sin necesidad de conocer el funcionamiento interno del test ni el lenguaje de programación utilizado en la automatización con Selenium.

Cabe señalar que dentro del leguaje Gherkin podemos distinguir varias palabras clave:

  • Given: Condiciones que se deben dar para llegar a ejecutar las siguientes acciones
  • When: Acciones que van a ser ejecutadas
  • Then: Resultado de las acciones ejecutadas
  • And: La utilizaremos cuando tengamos la misma palabra clave repetida a lo largo de varios pasos

A continuación, mostramos un ejemplo de un Scenario en Cucumber:

Feature: Inicio de sesión

Scenario: Inicio de sesión y cierre de sesión

Given Navegamos hasta la página web

When Introducimos login con usuario y contraseña

And Hacemos clic en el botón “Iniciar sesión”

Then Validamos la página principal

When Abrimos el menú lateral

Then Validamos que el menú lateral se ha desplegado

When Hacemos clic en la opción “Desconectar”

Then Validamos que hemos cerrado sesión

Asimismo, podemos añadir frameworks que generan reportes con evidencias y el estado de las pruebas ejecutadas. Obtendríamos de este modo desde los reportes más simples, que evidencian por consola en la que ejecutamos el test el resultado de la prueba, hasta los más complejos, reportes interactivos personalizables en HTML.

Uno de los framework más utilizado a este respecto es Extent Report. Extent Report permite generar un reporte personalizado interactivo, en el que podemos añadir capturas de pantalla, gráficas de tiempo, eventos, etiquetas, dispositivos, etc.

Con estos reportes nos será mucho más fácil identificar el motivo de los errores de los casos de prueba fallidos, lo que nos permitirá reducir el tiempo de la búsqueda del error en el código. Estas evidencias también facilitarán el trabajo del departamento de negocio, en tanto que no requieren de un conocimiento técnico para saber interpretar la información del reporte.

En conclusión, tras todo lo expuesto, la automatización web constituye ya el presente dentro de la validación de pruebas, por lo que incluir este tipo de pruebas dentro de nuestras aplicaciones web es sumamente positivo: hará que el producto final tenga una mayor solidez, con lo que podremos detectar errores en estas con facilidad y rapidez en comparación con las pruebas manuales. Además, con la implementación de frameworks adicionales, como Cucumber y Extent Report, reduciremos la brecha entre el personal técnico y de negocio.

Autor/a: Juan Antonio Bujalance García

Sobre Atmira:

Atmira es una compañía que pertenece al sector de la consultoría informática nos dedicamos a dar soluciones técnicas a nuestros clientes trabajando y acompañándolos en su proceso de transformación digital y en la creación de sus productos y servicios.De igual modo también colaboramos con ellos en la estrategia de sostenibilidad de su negocio poniéndole a su disposición nuestra metodología tecnología y todos nuestros procesos a su alcance.