Blog

Adopción del testing basado en inteligencia artificial: una nueva era

¿Cómo la inteligencia artificial puede mejorar las pruebas de software?

Fuente: Imagen de Gerd Altmann en Pixabay

La tecnología ha evolucionado drásticamente durante la última década. Muchas innovaciones han influido profundamente en nuestras vidas, como smartphones, bitcoin, autos eléctricos y blockchain, pero la inteligencia artificial (IA) definitivamente encabeza la lista.

La inteligencia artificial se ha vuelto vital para analizar una gran cantidad de datos no estructurados e identificar diferentes patrones, relaciones y realizar la optimización de procesos en varios dominios, incluido el reconocimiento de voz, los vehículos autónomos, la visión por computador, la atención médica, las tecnologías financieras y ahora en las pruebas de software.

En la actualidad, tenemos la capacidad de predecir el comportamiento futuro y descubrir patrones que se pasan por alto a simple vista con la ayuda de modelos complejos que analizan grandes cantidades de datos. Esto se vuelve aún más importante con la necesidad de respaldar los últimos desarrollos en pruebas de software relacionadas con los procesos ágiles, DevOps y las prácticas de integración continua y entrega continua (CI/CD).

En esta era digital, las organizaciones se ven obligadas a encontrar un equilibrio en el costo-beneficio, en cuanto al rápido tiempo de comercialización y una buena experiencia de usuario se refiere. El objetivo actual de las organizaciones es ejecutar más pruebas, encontrar incidentes rápidamente y liberar productos más prontamente. La Inteligencia Artificial puede ayudar a lograr este objetivo.

¿En qué consiste el testing basado en Inteligencia Artificial?

El testing basado en inteligencia artificial puede tener un impacto positivo en varias facetas de las pruebas de software, especialmente en la automatización de pruebas. Han surgido tantas herramientas y frameworks diferentes tratando de resolver diversos tipos de problemas relacionados con la automatización de pruebas, pero un problema que ha sido un desafío constante hasta la fecha, es el aspecto del ‘mantenimientO’. Una de las principales razones de esto es el uso de localizadores estáticos.

Con los localizadores estáticos, usamos solo un atributo de un elemento para identificarlo de manera única en una página y, si esto cambia, la prueba se interrumpe y, como testers, terminamos dedicando una cantidad considerable de tiempo a tomar el problema y solucionarlo. Según investigaciones, aproximadamente el 30% del tiempo de los testers se consume solamente en el mantenimiento de las pruebas. ¿Puede imaginarse el costo de oportunidad asociado con este esfuerzo? ¡Es alucinante! El tiempo de los testers es valioso y es mejor invertirlo en explorar la aplicación y proporcionar información para ayudar a las partes interesadas a tomar decisiones informadas sobre el producto. Con el testing basado en inteligencia artificial podemos superar dicho problema mediante el uso de localizadores dinámicos. 

Los localizadores dinámicos o ‘Dynamic Locators‘ es un concepto en el que usamos múltiples atributos de un elemento para ubicarlo en la página en lugar de un solo atributo. De esta manera, incluso si cambia un atributo, el elemento aún se puede ubicar con éxito con la ayuda de otros atributos que ya han sido extraídos del DOM (Document Object Model) por la inteligencia artificial.

aprendizaje automático GIF

Ahora, con inteligencia artificial, puede conectar sus aplicaciones de producción al ciclo de prueba. Esto significa que podemos crear pruebas basadas en los flujos reales realizados por el usuario en producción. Además, la inteligencia artificial puede observar y encontrar pasos repetidos y agruparlos para hacer componentes reutilizables en sus pruebas. Por ejemplo: escenarios de inicio de sesión, cierre de sesión. Además, cuantas más pruebas ejecute, más capaz se volverá la inteligencia artificial en términos de identificar pruebas inestables, optimizar las esperas entre pasos y también solucionar problemas de manera proactiva antes de que ocurran, debido a su mecanismo de auto reparación.

El campo de la automatización de pruebas ha sido históricamente una comunidad centrada en los testers técnicos. Este estigma también puede cambiar con la inteligencia artificial, ya que trae el concepto de colaboración en la automatización de pruebas. Lo que esto significa es que los recursos no técnicos ya no necesitan temer al código y la tecnología, sino que la inteligencia artificial ayudará a cerrar la brecha entre el conocimiento técnico y la creación y ejecución de las pruebas, lo que facilita el trabajo de los equipos.

El papel del tester en el testing basado en Inteligencia Artificial

La inteligencia artificial ha demostrado su capacidad para funcionar con más inteligencia colectiva, más velocidad y mayor escalabilidad, que incluso los equipos de aplicaciones mejor financiados actualmente.

Con el Desarrollo Continuo marcando un ritmo cada vez más competitivo, y la presión combinada de la automatización inspirada en la inteligencia artificial, los robots y los chatbots, aparece la pregunta que surge en la mente de todos los testers de software: ¿Están los equipos de pruebas y control de calidad bajo asedio? ¿Están los roles de QA en peligro de ser eliminados o reemplazados, de manera similar a la industria manufacturera?

Durante la última década, las tecnologías han evolucionado drásticamente, se han producido muchos cambios en el espacio tecnológico, pero un aspecto constante es la interacción de los testers humanos con ellas y cómo las usamos para nuestras necesidades. Lo mismo se aplica también a la inteligencia artificial. En segundo lugar, para entrenar la inteligencia artificial, necesitamos buenas combinaciones de input/output (que llamamos conjunto de datos de entrenamiento). Entonces, para trabajar con software moderno, debemos elegir este conjunto de datos de entrenamiento con cuidado, ya que la inteligencia artificial comienza a aprender de esto y comienza a crear relaciones basadas en lo que le entregamos. Además, es importante monitorear cómo está aprendiendo la IA a medida que brindamos diferentes conjuntos de datos de entrenamiento. Esto también será vital para cómo se probará el software. Todavía necesitamos de la participación humana en el entrenamiento de la inteligencia artificial.

Por último, es importante asegurarse de que, al trabajar con inteligencia artificial, los aspectos éticos, de seguridad y de privacidad del software no se vean comprometidos. Todos estos factores contribuyen a una mejor capacidad de prueba del software. También necesitamos humanos para esto.

Continuaremos haciendo testing exploratorio manualmente, pero también usaremos IA para automatizar procesos. Al igual que las herramientas de automatización que no reemplazan las pruebas manuales, lo complementarán.

Raj Subramanian, Tech Career Strategist, Autor & Keynote Speaker

Entonces, contrariamente a la creencia popular, el panorama no es del todo “pesimista”; ser un humano real tiene sus ventajas.

Por ejemplo, los testers humanos pueden improvisar y probar sin especificaciones escritas, diferenciar la claridad de la confusión y detectar cuándo el ‘look and feel’ de un componente on-screen está ‘off’ o es incorrecto. El reemplazo completo de los testers manuales solo ocurrirá cuando la inteligencia artificial exceda esas cualidades únicas del intelecto humano. Hay una gran cantidad de áreas que requerirán testing en profundidad para garantizar la seguridad, la protección y la precisión de toda la tecnología y las aplicaciones basadas en datos que se crean a diario.

En este sentido, la utilización de la inteligencia artificial para el testing de software todavía está comenzando y tiene el potencial de tener un impacto enorme.

¿Cómo la Inteligencia Artificial está conformando el futuro?

Futuro de las pruebas de software y la inteligencia artificial

Hemos discutido las diversas formas en que la inteligencia artificial influirá en el campo del testing de software y ayudará a resolver algunos de los mayores desafíos respecto a la automatización de pruebas. En el futuro, la forma en que realizamos la automatización de pruebas cambiará significativamente en términos de adoptar un enfoque más basado en riesgos para el testing de software.

La inteligencia artificial tiene la capacidad de aprender de diferentes flujos de usuarios y crear casos de prueba basados ​​en datos reales del usuario. Ya no tenemos que dedicar mucho tiempo a crear datos de prueba basados ​​en usuarios de producción, ya que la Inteligencia artificial lo hace automáticamente por nosotros. Esto ayuda a aumentar la cobertura de las pruebas y hace que la pruebas automatizadas sean mucho más efectivas, ya que se han creado basándose en flujos de usuarios reales.

Reemplazar los localizadores estáticos por localizadores dinámicos hará que las pruebas sean más estables y, como resultado de esto, la creación y ejecución de las pruebas será mucho más rápida. Por ejemplo, digamos que tenemos un botón “Pagar” y cambiamos su nombre a “Comprar”, las pruebas que hubieran fallado antes debido al uso de un solo atributo para ubicar el elemento ya no fallarán porque comenzaremos a usar localizadores dinámicos, y a hacer uso de múltiples atributos para el mismo elemento. Incluso si el nombre del botón cambió, la inteligencia artificial irá al siguiente mejor atributo para ubicar el elemento en la página en lugar de invalidar las pruebas. Esto ahorra una cantidad considerable de tiempo en el mantenimiento de las pruebas automatizadas.

Además, cuantas más pruebas ejecuta el usuario, más datos recopila la inteligencia artificial sobre la pruebas y más estables se vuelven las mismas durante un período de tiempo. Por ejemplo, en función del número de ejecuciones de prueba, la inteligencia artificial puede comenzar a optimizar los tiempos de espera en las pruebas para adaptarse a los diferentes tiempos de carga de la página en la aplicación.

Finalmente, la automatización de pruebas ya no es una tarea centrada en el desarrollador.

Gracias a la IA, todos los miembros del equipo pueden participar en la elaboración de pruebas automatizadas, ya que su creación y ejecución se vuelven realmente simples.

Raj Subramanian, Tech Career Strategist, Autor & Keynote Speaker

Los usuarios pueden registrar las pruebas por su cuenta y también utilizar las pruebas que la inteligencia artificial crea automáticamente, para crear conjuntos de pruebas automatizadas eficaces. De esta manera, incluso las personas sin conocimientos técnicos, pueden crear y aumentar la cobertura de las pruebas de software.

Conclusión

Pese al constante progreso que se está logrando con la inteligencia artificial, la verdad es que imitar el cerebro humano no es una tarea fácil. Los seres humanos somos los usuarios de las aplicaciones y las innovaciones tecnológicas que se están creando y hay que tener en cuenta que, el entendimiento, la creatividad y la contextualización humana, son rasgos necesarios para asegurar un producto de calidad. Dicho esto, las pruebas manuales siguen siendo esenciales y deberían complementar la automatización y la inteligencia artificial. Son funciones distintas y diferentes que, en lugar de ser comparadas, deben apalancarse de acuerdo con sus respectivas fortalezas.

En lugar de que las soluciones de la IA reemplacen a los equipos de control de calidad, la inteligencia artificial puede aumentar la cobertura de las pruebas de software.

Raj Subramanian, Tech Career Strategist, Autor & Keynote Speaker

Lo que está claro es que los líderes en la industria de la tecnología continuarán disolviendo fronteras, descubriendo e innovando con el machine learning y la inteligencia artificial.

A medida que los equipos de control de calidad continúan adoptando la automatización y dan la bienvenida a la IA en sus prácticas de testing de software, los resultados contribuirán a nuevas soluciones y formas de trabajar, reinventando lo que es posible.


Sobre el Autor

Raj Subramanian

Raj Subramanian es un ex desarrollador que pasó al área de testing para centrarse en su pasión. Raj trabajó como desarrollador evangelista para Testim.io, y contribuye activamente a la comunidad de pruebas al participar como Speaker en conferencias, escribir artículos y publicar frecuentemente en su canal de YouTube. Actualmente reside en Chicago y se puede seguirlo en Twitter, leer sus blogposts en Testim.io y en su web personal. Asimismo, sus videos sobre testing, liderazgo y productividad se pueden encontrar en su canal ChaiLatte Consulting.


Otros contenidos relacionados

World Quality Report 2021: lo más destacado

4 desafíos comunes de la Automatización de Pruebas: ¿cómo enfrentarlos?

58 / 256