Las herramientas de automatización de pruebas "convencionales" han sido y son actualmente fundamentales para sustituir pruebas manuales, especialmente aquellas que requieren un gran esfuerzo humano o que son recurrentes y pueden ser automatizadas de manera eficiente, como, por ejemplo, pruebas de regresión repetitivas donde comprobamos en cada entrega que no se ha roto nada ante cambios y evoluciones en las funcionalidades.
La aplicación de la IA en el concepto de la automatización de pruebas ha impactado positivamente ya que en algunos casos herramientas ya existentes han adoptado capacidades de IA para sumar a las existentes y por otro, han surgido herramientas impulsadas por IA enfocadas en desarrollo “codeless”, lo cual facilita la creación de productos con menor complejidad técnica. En cuanto al tipo, la IA predictiva ayuda en el testing a identificar patrones y predecir posibles fallos antes de que ocurran, mejorando la eficiencia y precisión del proceso de pruebas. La IA generativa por otro lado ayuda a crear automáticamente datos y escenarios de pruebas, así como la generación de scripts y reports inteligentes.
La IA permite implementar enfoques como el análisis visual en interfaces de usuario (UI) y el procesamiento del lenguaje natural (NLP) para interpretar textos y patrones. Además, su capacidad para detectar y autoreparar cambios en la interfaz de usuario, que podrían pasar desapercibidos para las herramientas convencionales, representa un avance sumamente importante en la automatización de pruebas.
Otras capacidades significativas son la generación de datos sintéticos y el reporting inteligente, que permiten, por un lado, crear datos de prueba realistas y detallados para simular interacciones de usuario en la interfaz, y por otro, generar informes inteligentes que sugieren mejoras en el ciclo de prueba realizado (por ejemplo, un ciclo completo e2e que haga un proceso bancario), basándose en el análisis de datos históricos y patrones de uso. Además, el avance continuo de la IA generativa permitirá desarrollar otras capacidades de prueba, como la automatización avanzada de escenarios complejos, la detección proactiva de anomalías (mejorando la autoreparación actual que ya usan algunas herramientas) y la personalización dinámica de casos de prueba en tiempo real. Estas nuevas capacidades no solo optimizarán el tiempo y los recursos necesarios para las pruebas, sino que también permitirán una mayor adaptabilidad a los cambios rápidos en los requisitos del software, siendo estos una constante en los proyectos Agile donde se requiere un incremento continuo.
Además de las capacidades mencionadas, otra igualmente importante es la generación de pruebas mediante IA generativa a partir de especificaciones funcionales, lo que reduce significativamente los costos asociados con su creación manual. En situaciones donde la automatización de pruebas no es viable debido a limitaciones de costos o falta de recurrencia que justifique su uso, la IA permite generar casos de prueba manuales basados en los requisitos funcionales definidos durante el desarrollo o mantenimiento del software. El siguiente fragmento muestra un ejemplo:
In our vwfs.es website we have created the "Servicios para empresas" page, let's check that it is accessed correctly in less than 5 seconds through the menu and we see an area of the screen
El motor de IA implementado permite crear automáticamente la descripción del caso de prueba, las etapas a seguir, los datos necesarios y los resultados esperados. La estructura generada puede además integrarse fácilmente con herramientas de gestión de pruebas a través de pluggins, como Jira X-Ray, facilitando su creación para que los testers manuales solo deban concentrarse en su ejecución.
En un contexto Agile, esta capacidad de IA generativa permite crear historias de usuario que desencadenan casos de prueba con sus respectivas etapas. Estas pruebas pueden adaptarse a un enfoque de desarrollo impulsado por el comportamiento (Behavior-Driven Development o BDD). Herramientas ya maduras como Cucumber son un ejemplo destacado de esta metodología, ya que integran escenarios definidos por el negocio directamente con pruebas automatizadas. El siguiente ejemplo realizado con la herramienta Digital Tester desarrollada por Deloitte©, muestra un fragmento en formato json:
En este contexto, además de obtener los casos de prueba para integrarlos como pruebas manuales en los plugins mencionados anteriormente, estos pueden ser una input efectiva para herramientas como Cucumber que junto a frameworks de automatización como Selenium, Playwright o Cypress por destacar algunas, se encargan de su ejecución. De este modo, el tester puede centrarse exclusivamente en analizar los reportes generados para identificar posibles bugs y contribuir de manera más eficiente al ciclo de calidad.
Por otro lado, la combinación de Visual AI y NLP antes mencionada no solo optimiza la ejecución de pruebas, sino que también potencia capacidades avanzadas como el análisis predictivo y la generación automática de scripts de prueba. Estas funciones permiten identificar riesgos potenciales o áreas críticas en interfaces de usuario (UI) complejas con numerosos componentes gráficos, anticipándose a posibles fallos por ejemplo sobre la posición de los elementos en pantalla que un marco de trabajo de automatización de pruebas tradicional no podría detectar.
En resumen, algunos de los casos de uso que podemos encontrar en el contexto de estas herramientas son:
En el mercado actual, algunas herramientas destacadas en la automatización de pruebas con inteligencia artificial (IA) incluyen Functionize, Mabl y Applitools. Asimismo, herramientas de automatización robótica de procesos (RPA), como UI-Path, han comenzado a integrar capacidades de IA generativa para pruebas automatizadas. Aunque con el auge de la IA generativa, están surgiendo cada vez más soluciones en este ámbito, esto nos plantea la necesidad de madurar, estabilizar estas tecnologías, pero sobre todo valga la redundancia, “testearlas” para confirmar su valor.
Sin embargo, no todo es tan sencillo como parece. Estas nuevas herramientas suelen requerir licencias, a diferencia de muchos frameworks de automatización tradicionales que son de código abierto y gratuitos. Además, la generación de test cases a menudo necesitan una exploración posterior por parte del QA tester, ya que no siempre se alinean de manera uniforme con los requisitos establecidos con los clientes. Incluso en las demostraciones que presentan los proveedores de herramientas, se aconseja revisar y ajustar los casos generados.
Sobre la autoreparación, surgen preguntas clave: ¿Es siempre eficaz? ¿Puede detectar cambios sutiles, como los realizados en el CSS? ¿Es viable confiar plenamente en esta capacidad para las pruebas de regresión automatizadas, asumiendo que reparará todos los elementos que identifique como alterados? Estas limitaciones deben ser consideradas al adoptar estas tecnologías en entornos reales.
En muchos casos, estas herramientas se integran con frameworks de automatización convencionales, pero el éxito de la generación de scripts depende de que sigan correctamente sus especificaciones de código, el ejemplo más notable sería Selenium. Si la propia herramienta no traduce correctamente, será necesario revisar el código manualmente o incluso reescribir partes del mismo, lo que aumenta el esfuerzo requerido.
Más allá de los aspectos técnicos, el éxito de estas herramientas depende en gran medida de la madurez del cliente en términos de calidad del software. Es fundamental que las organizaciones alcancen un nivel mínimo de madurez en el uso de herramientas de automatización tradicionales antes de adoptar soluciones basadas en IA. Introducir estas tecnologías sin una base sólida puede complicar su implementación y limitar significativamente su efectividad. Construiremos siempre la pirámide desde su base e iremos incrementando el conocimiento según confirmemos cada etapa, asegurando así una adopción correcta de las capacidades que ofrece la IA.
En resumen, adoptar la IA para la automatización de pruebas, tanto automáticas como manuales, debería ser un proceso gradual y bien argumentado. Es clave capacitar al equipo de forma continua y asegurar que las herramientas se integren bien con las plataformas que ya usamos ya sean propias de la automatización o para que se integre con el gestor de pruebas usado en la gestión de proyectos. Comprobar la efectividad de uso de las herramientas de IA para cada caso y, si no funcionan (o no lo vemos efectivo), recurrir a las herramientas tradicionales de automatización de pruebas.