12/10/2020

Pruebas automatizadas: Mecanismos para un mantenimiento más rápido y sencillo

COMPARTIR EN:

  • Linkedin Logo
  • Twitter Logo
  • Facebook Logo
  • Mail Logo

Cuando automatizamos pruebas Web a través de la UI, sabemos que a medida que la aplicación crece, es muy probable que aumente la cantidad de elementos en la interfaz gráfica y que los localizadores que utilizamos para interactuar con ellos sufran cambios constantes.

Durante el mantenimiento de las pruebas automatizadas, la actualización de los localizadores de los elementos web es una actividad recurrente que insume un tiempo considerable.

Auto-reparación (self-healing)

El concepto de auto-reparación (self-healing) es una solución que varias herramientas de automatización de pruebas han implementado para resolver el desafío de los cambios constantes en los elementos de la UI web en las aplicaciones. Esta capacidad para autorreparar los localizadores ofrece una ventaja al equipo de pruebas, reduciendo los tiempos y el esfuerzo de mantenimiento de las pruebas, asegurando que las mismas corran fluidamente y minimizando las interrupciones durante  su ejecución.

¿Cómo funciona este mecanismo?

A grandes rasgos, los scripts automatizados están formados por una serie de comandos o pasos que en conjunto representan el flujo completo de cada prueba. Estos comandos se ejecutan sobre los elementos de la UI web del sistema bajo pruebas utilizando la información de localización correspondiente a cada elemento, lo que comúnmente llamamos localizadores. Así es como estos scripts de prueba dependen de la información de estos localizadores web para ejecutar correctamente cada uno de sus pasos. A medida que la aplicación evoluciona y los elementos de la UI sufren modificaciones, es inevitable que sus localizadores cambien y es necesario actualizar los mismos para evitar que los scripts fallen durante su ejecución.

El mecanismo de auto-reparación pretende solucionar esta problemática identificando cambios en los elementos web a medida que la aplicación evoluciona, detectando los cambios en las propiedades de los elementos y actualizando automáticamente su información con nuevos localizadores para que los casos de prueba automatizados continúen funcionando sin problema.

Beneficios de la auto-reparación

Tener la posibilidad de que los localizadores se actualicen automáticamente y los scripts puedan seguir ejecutándose de forma correcta en cada nueva versión del sistema es claramente el principal beneficio, minimizando así el tiempo y esfuerzo en el mantenimiento de las pruebas y permitiendo al equipo de testing dedicar ese tiempo a crear nuevas pruebas.

Si profundizamos en este punto podemos identificar otros beneficios relacionados que resulta interesante mencionar:

  • Menor cantidad de pruebas fallidas: las pruebas pueden fallar y como automatizadores somos conscientes de eso. Muchas veces la causa raíz de estos fallos es simplemente que la UI del sistema ha cambiado y nuestras pruebas no. Utilizando la funcionalidad de auto-reparación, se reduce el riesgo de que nuestras pruebas fallen por problemas relacionados a los localizadores, promoviendo así una mayor estabilidad durante la ejecución de las pruebas.
  • Mayor estabilidad en la localización de elementos: la inestabilidad de las pruebas es un problema recurrente que enfrentamos como automatizadores, y es difícil determinar cuando los scripts se encuentran estables para comenzar su ejecución. Errores típicos como “NoSuchElementException” es uno de los tantos que causan inestabilidad en las pruebas, que ocurre cuando no se pudo localizar un elemento en la UI y no tenemos mucho control sobre él. Con los localizadores auto-reparables, los scripts se mantienen actualizados con la aplicación, el flujo de ejecución es más estable y con menor tendencia al fallo por problemas de localización de elementos.

El modo auto-reparación en Katalon Studio

Desde la versión Katalon Studio 7.6 se incluyó el complemento “Auto-healing Smart XPath plugin”. Dicho complemento permitía identificar aquellos localizadores que no funcionaban durante la ejecución de las pruebas y sugería acciones al usuario para corregirlos. Como su sucesor, surge esta nueva versión de auto-reparación incluida en el IDE de Katalon Studio.

Este nuevo mecanismo es capaz de determinar el estado de las pruebas, detectar errores en los localizadores, analizarlos y ofrecer una solución para recuperar los scripts de forma totalmente automática, dejando al usuario con la única tarea de aprobar la misma o descartarla y lidiar con el problema manualmente.

Con la opción de auto-reparación habilitada, las pruebas se vuelven aún más inteligentes y los automatizadores se preocupan menos cada vez que ejecutan sus pruebas sobre nuevas versiones del sistema. A su vez, aumenta la confianza en las pruebas ya que cuando un caso de prueba falla, lo hace por una buena razón y esas razones reflejan la calidad del producto desarrollado.

Katalon Studio soporta cuatro métodos de selección al momento de diseñar los scripts automatizados en la UI web, tomando la información de los localizadores cuando se hace uso de las funciones de grabar o espiar.

Estos métodos de selección son XPath, atributos HTML, selectores CSS y reconocimiento por imagen.

En caso de ser necesario, el usuario puede modificar el orden de estos selectores para la ejecución. Particularmente para XPath es necesario realizar algunas configuraciones extras para indicarle a Katalon la forma de recorrer la lista de opciones de localización disponibles cuando el localizador principal falla.

Katalon auto-reparación configuración del proyecto

Por defecto, el modo de auto-reparación está habilitado cuando creamos un nuevo proyecto. El usuario puede habilitar o deshabilitar el modo en la opción Project > Settings > Self-Healing > Web UI y modificar la opción en la ventana Self-healing, o haciendo clic en el ícono de Self-Healing directamente en la barra de herramientas. En caso de ser necesario, también se puede excluir la auto-reparación para determinados objetos utilizando los comandos (keywords) específicos y así prevenir que Katalon Studio los analice y ejecute la auto-reparación sobre esos objetos.

Al ejecutar las pruebas, Katalon Studio intentará localizar los elementos web en base al localizador seleccionado por defecto, y en caso que dicho localizador no devuelva ningún elemento web, Katalon aplicará la auto-reparación intentando localizarlo con la información que posee del objeto.

Tras la ejecución de las pruebas, si Katalon Studio aplicó la auto-reparación sobre algún elemento, la información se detalla en la pestaña Self-Healing Insights. En ella se visualizan  todos los objetos en los cuales se debió reparar su localizador, almacenando su información de forma temporal hasta que el usuario decida qué acción tomar (aceptar o rechazar el cambio).

Katalon ventana Self-Healing Insights

En la pestaña Self-Healing Insights se despliega la siguiente información:

  • ID del objeto: el identificador del objeto cuyo localizador está obsoleto.
  • Localizador comprometido: el localizador que no pudo encontrar el elemento web durante la ejecución.
  • Localizador propuesto: el localizador alternativo que utilizó Katalon Studio para encontrar el elemento web durante la ejecución.
  • Método de recuperación: el método utilizado por Katalon para detectar el objeto.
  • Captura de pantalla: Katalon captura una imagen del elemento web que el usuario puede visualizar para verificar que el localizador alternativo encontró el elemento correcto. La imagen se visualiza al seleccionar la opción “Preview”.
  • Casilla de selección: una casilla de selección múltiple que el usuario puede utilizar para tomar acción sobre varios elementos simultáneamente.

Si el usuario decide aprobar el cambio, el localizador propuesto por Katalon Studio se convierte en el nuevo localizador por defecto del objeto. De lo contrario, si el usuario descarta la sugerencia de Katalon Studio, no se altera la información del objeto.

Cápsula del tiempo (time capsule)

Complementando el mecanismo anteriormente mencionado, Katalon introduce otra herramienta en su versión 7.8 para reducir el costo de mantenimiento de las pruebas, denominado cápsula del tiempo (time capsule).

Esta nueva funcionalidad permite almacenar una vista HTML y CSS de la web en el momento exacto en el que ocurre la falla, de esta manera es posible levantarla en el navegador y localizar el problema de forma inmediata.

¿Cómo funciona?

Un error en la ejecución de un caso de prueba, implica que se debe volver a ejecutarlo hasta llegar al punto en dónde ocurre la falla (ya sea un bug del sistema o un localizador desactualizado), lo que lleva un tiempo considerable.

Con esta nueva funcionalidad en el IDE de Katalon Studio, no es necesario ejecutar todo el caso de prueba manualmente para llegar al momento de la falla, ya que Katalon almacena una vista web al momento del error, generada con el propio HTML y CSS de la página original.

Para acceder a esta vista, basta simplemente con hacer click en la opción “Click here to fix broken Test Object” que aparece en el detalle del visor de registros.

Katalon ventana de reparación de localizadores

Tras hacer click en dicha opción, Katalon desplegará la vista web en el navegador por defecto y automáticamente iniciará el inspector de elementos, con el objeto cuyo localizador no funcionó.

Katalon inspector de elementos

Esto brinda la posibilidad de actualizar rápidamente el objeto con el nuevo localizador sin necesidad de ejecutar nuevamente la prueba fallida o de navegar manualmente hasta llegar a la página donde se produce el fallo.

A su vez, es posible inspeccionar y almacenar otros elementos que estén en la misma vista, aprovechando aún más el tiempo de mantenimiento de las pruebas.

Katalon selector de elementos

En resumen

El nuevo modo de auto-reparación disponible en la última versión de Katalon Studio promete mejorar el alcance de este mecanismo y facilitar la actualización de los localizadores web, brindando una manera mucho más eficaz de hacer frente a los cambios en la aplicación bajo pruebas.

Complementando este mecanismo, Katalon Studio ofrece en su última versión, la funcionalidad de cápsula del tiempo para reducir aún más el esfuerzo de mantenimiento y corrección de los localizadores, en especial en aquellos casos de prueba que tienen muchos pasos.

Estas funcionalidades reducen considerablemente las tareas de mantenimiento de pruebas, disminuyendo la probabilidad de fallo al ejecutarlas e incrementando su estabilidad. Este enfoque de ejecución inteligente y mecanismos más automatizados de corrección de errores permiten a Katalon Studio acelerar los ciclos de desarrollo e integración continua con herramientas cada vez más automatizadas y veloces.

En el siguiente post de Katalon puede ampliar la información.

Revivir el webinar: Katalon Studio 7.8.