El uso de la inteligencia artificial (IA) en la automatización de pruebas es la última tendencia en aseguramiento de la calidad. Las pruebas en general, y la automatización de pruebas en particular, parecen haberse contagiado del “todo mejora con IA”.
Dado que la IA, el aprendizaje automático y las redes neuronales son lo más popular hoy en día, es tal vez inevitable que la IA encontrara su camino en la automatización de pruebas de alguna forma.
Antecedentes en la Automatización de Pruebas
Recuerdo una época, hace algunos años, cuando la automatización de pruebas aún era nueva, en la que uno de mis equipos de aseguramiento de la calidad trabajaba en un proyecto para un gran cliente. Era una aplicación móvil con millones de usuarios y ciclos de lanzamiento mensuales. El equipo de QA solía estar tranquilo durante las dos primeras semanas del ciclo y después trabajaba frenéticamente hasta el lanzamiento, ¡uno de los peculiares efectos secundarios del desarrollo ágil que no se mencionan en los titulares!
Finalmente, uno de los líderes de QA, cansado de perder el tiempo durante las dos semanas tranquilas, comenzó a trabajar en un marco para la automatización de pruebas. Escribió algunos scripts de prueba en Ruby con Selenium / Appium y Jenkins para una canalización rudimentaria, incluyendo algunos informes bastante vistosos con indicadores Rojo / Amarillo / Verde para el éxito o fallo de las pruebas.
Logró hacerlo con éxito durante un par de ciclos de lanzamiento. Fue entonces cuando lo presentamos a nuestro Jefe de Calidad, quien lo propuso a nuestros clientes y los entusiasmó lo suficiente como para pagar por pruebas automatizadas como un subproyecto. ¡Estábamos en la cima, a la vanguardia de la innovación!
La vanguardia adquirió un nuevo significado, sin embargo, pocos meses después, cuando descubrimos aquella verdad fundamental sobre la automatización de pruebas con la que cualquier ingeniero de automatización de QA digno de su oficio lucha hoy en día:

¿Por qué digo esto? Porque muy pronto, nos sentíamos como Alicia en la Tierra de Mordor corriendo como locos junto a la Reina Roja:

Acabábamos de descubrir la fría realidad de la trampa de la automatización de pruebas: uno de nuestros ingenieros de QA tenía que mantener la suite de automatización actualizada con la aplicación casi en cada ciclo de lanzamiento porque ¡los cambios llegaban rápido y en grandes cantidades!
¡Un simple cambio en el nombre de un campo y nuestras pruebas automatizadas de software se perdían en la proverbial madriguera de conejo! El inicio de un nuevo lanzamiento era especialmente problemático, ya que el equipo de desarrollo realizaba muchas adiciones nuevas.
La automatización de pruebas no ha cambiado fundamentalmente desde entonces porque todavía requiere monitoreo y mantenimiento continuos. Cualquier posibilidad de una mejora drástica en el enfoque e implementación solo ha aparecido con los avances recientes en las capacidades de la IA.
Expectativas de la IA vs Realidad
La tecnología de IA en su versión actual consiste sobre todo en usar algoritmos de aprendizaje automático para entrenar modelos con grandes volúmenes de datos y luego utilizar esos modelos entrenados para hacer predicciones o generar algún resultado deseado. Casi toda la IA cabe dentro de esta descripción, aunque sea una visión simplificada. Sin embargo, la gran pregunta aquí es:
¿Podrá la IA realmente ayudar a generar y actualizar automáticamente los casos de prueba? ¿Detectar errores? ¿Mejorar la cobertura de código?
La respuesta a esa pregunta está lejos de ser clara en este momento porque estamos en el punto álgido del ciclo de expectativas sobre la IA. Un subcampo específico, el aprendizaje profundo, ha causado gran parte de esta emoción.

Lo que encuentro más curioso de este gráfico es lo siguiente:
Si Siri se supone que ya superó la curva de expectativas, entonces estamos muy lejos de Kansas, Dorothy!
Quiero decir, conozco a muchos que tienen que repetirse varias veces para que Siri entienda lo que dicen (sin ánimo de ofender a los fans de Siri. En serio 😉).
La curva de expectativas nos dice que hay mucho entusiasmo por el potencial de la IA, que se enfría antes de que todos entren en modo pan de cada día y asunto ordinario. En términos simples, lo que el elegante gráfico de Gartner nos dice es lo siguiente:

Sin embargo, aunque estamos lejos de la singularidad, la IA en su forma actual todavía tiene el potencial de mejorar significativamente la automatización de pruebas.
¿Cómo genera el aprendizaje automático pruebas automatizadas?
- Entrenamiento: En la fase de entrenamiento, el modelo de aprendizaje automático necesita ser entrenado con un conjunto de datos específico de la organización, incluidos la base de código, la interfaz de la aplicación, registros, casos de prueba e incluso documentos de especificaciones. No disponer de un conjunto de datos de entrenamiento suficientemente grande puede reducir la eficacia del algoritmo.
Algunas herramientas cuentan con modelos preentrenados que se actualizan mediante aprendizaje continuo para aplicaciones específicas como las pruebas de interfaz de usuario, de modo que el aprendizaje generalizado pueda utilizarse en una organización concreta. - Generación de resultados / Salida: Dependiendo del caso de uso, el modelo genera casos de prueba, verifica los casos de prueba existentes para la cobertura de código, integridad, precisión e incluso realiza pruebas. En todos los casos, un tester debe revisar la salida generada para su validación y asegurarse de que sea utilizable.
Si usamos la analogía de los coches autónomos, los resultados se asemejan más a una asistencia al conductor que a un coche completamente autónomo. - Mejora continua: A medida que una organización utiliza la herramienta de manera regular, el conjunto de datos de entrenamiento sigue creciendo, lo que potencialmente aumenta la precisión y la efectividad de las redes entrenadas existentes. En resumen, el sistema de IA sigue aprendiendo y mejorando.
Los algoritmos de aprendizaje automático están revolucionando la automatización de pruebas. Para encontrar herramientas que incorporen estos algoritmos avanzados, explora nuestra guía de herramientas de pruebas de software de primer nivel
Aplicaciones de la IA en la automatización de pruebas
Echemos un vistazo más de cerca a algunas aplicaciones de la IA en la automatización de pruebas, incluyendo pruebas unitarias, pruebas de interfaz de usuario, pruebas de API y el mantenimiento de un conjunto de pruebas automatizado.
Creación y actualización de pruebas unitarias
Las pruebas unitarias, que a menudo se utilizan como parte de las pruebas continuas, la integración continua / entrega continua (CI / CD) en DevOps, pueden ser realmente dolorosas… como un cinturón de asteroides.
Por lo general, los desarrolladores dedican una cantidad significativa de tiempo a crear y mantener pruebas unitarias, lo cual no es ni de lejos tan divertido como escribir el código de la aplicación. En este sentido, los productos basados en IA para la creación automatizada de pruebas unitarias pueden ser valiosos, especialmente para aquellas organizaciones que planean incorporar pruebas unitarias tarde en el ciclo de vida del producto.
Beneficios:
- Las pruebas unitarias automatizadas basadas en IA representan un avance significativo frente a la generación de pruebas unitarias mediante plantillas usando análisis estático o dinámico. Las pruebas generadas son código real, no simples esqueletos.
- Las pruebas unitarias generadas mediante IA pueden crearse muy rápidamente, lo que es útil para una base de código existente y extensa.
- Los desarrolladores solo necesitan modificar las pruebas y pueden configurar la suite de regresión unitaria de manera relativamente rápida.
Limitaciones:
- Las pruebas unitarias generadas por IA simplemente reflejan el código sobre el que se construyen. Todavía no pueden adivinar la funcionalidad pretendida del código. Si el código no se comporta como se espera, la prueba unitaria generada reflejará ese comportamiento no intencionado.
Esto es una desventaja significativa porque el propósito de las pruebas unitarias es forzar y verificar un contrato implícito o explícito. - Las pruebas unitarias generadas mediante aprendizaje automático pueden romper pruebas unitarias existentes y funcionales, y depende del desarrollador asegurarse de que esto no ocurra.
- Los desarrolladores deben escribir ellos mismos las pruebas para la lógica empresarial compleja.
Pruebas automatizadas de interfaz de usuario
Este es un campo donde la IA empieza a destacar. En las pruebas de interfaz de usuario basadas en IA, las herramientas de automatización de pruebas analizan el DOM y el código relacionado para determinar las propiedades de los objetos. También utilizan técnicas de reconocimiento de imágenes para navegar por la aplicación y verificar visualmente los objetos y elementos de la interfaz para crear pruebas de UI.
Además, los sistemas de pruebas con IA utilizan pruebas exploratorias para encontrar errores o variaciones en la interfaz de usuario de la aplicación y generan capturas de pantalla para su posterior verificación por parte de un ingeniero de calidad. De manera similar, se pueden verificar los aspectos visuales del sistema bajo prueba (SUT), como el diseño, el tamaño y el color.
Beneficios:
- Las pruebas automatizadas de UI pueden llevar a una mayor cobertura de código.
- Pequeñas desviaciones en la interfaz de usuario no provocan el fallo del conjunto de pruebas. Los modelos de IA del producto pueden gestionar estas situaciones.
Limitaciones:
- En cualquier aplicación moderna, el número de plataformas, versiones de aplicaciones y versiones de navegadores es grande. No está claro cuán bien funciona la automatización de UI basada en IA bajo estas condiciones. Sin embargo, las herramientas de pruebas en la nube pueden ejecutar pruebas en paralelo, ¡así que este será un ámbito interesante de observar!
Uso de la IA para ayudar en las pruebas de API
Incluso sin IA, automatizar las pruebas de API es una tarea compleja, ya que implica comprender la API y luego configurar pruebas para multitud de escenarios para asegurar una cobertura profunda y amplia.
Las herramientas actuales de automatización de pruebas de API, como Tricentis y SoapUI, graban actividades y tráfico de la API para analizarlos y crear pruebas. Sin embargo, modificar y actualizar las pruebas requiere que los testers se adentren en los detalles de las llamadas REST y los parámetros, y luego actualicen el conjunto de pruebas de la API.
Las herramientas de automatización de pruebas de API basadas en IA intentan mitigar este problema examinando el tráfico e identificando patrones y conexiones entre llamadas a API para agruparlas eficazmente por escenario. También emplean pruebas existentes para aprender las relaciones entre las APIs, usan esto para entender cambios en las APIs, y actualizan pruebas existentes o generan nuevas pruebas basadas en escenarios.
Beneficios:
- Para testers principiantes o aquellos sin experiencia en programación, esto podría ser de gran ayuda para que puedan “empezar con fuerza”.
Una vez más, la gestión de cambios sería mucho más sencilla, dado que al menos algunos de los cambios en la API pueden ser manejados por una herramienta de automatización basada en IA.
Limitaciones:
- En general, las pruebas de API son difíciles de configurar, y no muchas herramientas ofrecen capacidades basadas en aprendizaje automático en este campo. Las que lo hacen parecen tener capacidades todavía bastante básicas.
Mantenimiento de pruebas automatizadas
Las herramientas basadas en IA pueden evaluar los cambios en el código y corregir varias pruebas existentes que no se ajustan a dichos cambios, especialmente si estos no son demasiado complejos. Las actualizaciones en elementos de la interfaz, nombres de campos, y similares ya no tienen por qué romper el conjunto de pruebas.
Algunas herramientas de IA supervisan las pruebas en ejecución e intentan variantes modificadas para las pruebas fallidas eligiendo elementos de UI basados en el mejor ajuste. También pueden verificar la cobertura de pruebas y complementar los huecos si es necesario.
Generación de datos de prueba basada en IA
La generación de datos de prueba es otra área prometedora para los modelos de IA. El aprendizaje automático puede generar fácilmente conjuntos de datos, como fotografías de perfil personal e información como edad y peso, basándose en modelos entrenados con conjuntos de datos de producción existentes para aprender.
De este modo, los datos de prueba generados son muy similares a los datos de producción, lo cual es ideal para su uso en pruebas de software. El modelo de aprendizaje automático encargado de generar datos se llama Red Generativa Adversarial (GAN).
Herramientas de automatización de pruebas que emplean aprendizaje automático
Revisa las siguientes herramientas si buscas software que utilice aprendizaje automático para realizar y gestionar pruebas automatizadas. Muchas incluyen opciones de código abierto o sin código para adaptarse a las necesidades de tu equipo de pruebas.
Conclusión
La inteligencia artificial ha tenido un impacto significativo en las herramientas y métodos de pruebas, y especialmente en la automatización de pruebas. Una visión general de las herramientas actuales que prometen IA muestra que, aunque se están agregando muchas características nuevas, varias de ellas aún están en proceso de maduración.
Si te resultó útil este artículo, por favor suscríbete al boletín de The QA Lead y mantente al día con todas las novedades del mundo del testing.
