LA CONTRIBUCIÓN DE LAS IA EN LAS PRUEBAS DE SOFTWARE - ENTREVISTA CON BRUNO LEGEARD

            Por
            4 minutos de lectura

            En los últimos años, las innovaciones en materia de aprendizaje automático e inteligencia artificial han contribuido a la evolución de muchos sectores de actividad. El mundo de las pruebas es uno de ellos. Pero, ¿cómo puede la IA formar parte de la automatización de pruebas? ¿Cómo puede ayudar a los equipos empresariales a entender mejor este campo? ¿Cuáles son sus beneficios, riesgos y limitaciones? Descubra la respuesta a estas preguntas en nuestra entrevista con Bruno Legeard.

            Bruno Legeard es un experto en automatización de pruebas que lleva varios años trabajando en el uso de la IA para facilitar las pruebas de software. Como profesor de Ingeniería de Software en la Universidad de Franche-Comté, dirige varias tesis doctorales sobre este tema. También es uno de los cofundadores de Smartesting, que desarrolla herramientas de automatización de pruebas basadas en IA, y contribuyó a la nueva certificación AI Testing dentro del ISTQB.

            Has dado una charla sobre el uso de las trazas de ejecución para optimizar las pruebas de regresión automatizadas con IA, ¿puedes contarnos un poco más sobre eso? 

            Desde el momento en que somos conscientes de esta necesidad de automatización de las pruebas, la pregunta es: "¿cómo hacerlo? Las prácticas actuales que se basan en la codificación de scripts automatizados son prácticas que plantean dificultades hoy en día porque inducen un esfuerzo de mantenimiento muy importante. Aquí es donde entran en juego la IA y las nuevas tecnologías, para reducir este esfuerzo de mantenimiento, por un lado, y para garantizar que las pruebas automatizadas cubran las rutas clave en producción. Este es el tema que hemos abordado y para el que hemos propuesto una solución basada en la IA, que es el análisis de las trazas de uso del software para completar la cobertura de las pruebas automatizadas. Probar los caminos que importan, saber cómo hacerlo en base al análisis de lo que el usuario está haciendo realmente. 

            michal-parzuchowski-Nh4Sxasye24-unsplash

            Aparte de este esfuerzo de mantenimiento, ¿qué otras ventajas puede aportar la IA a la automatización de pruebas? 

            Hay un conjunto de técnicas que están empezando a surgir, basadas en la IA, en varios temas relacionados con la automatización de pruebas. Por ejemplo, ser capaz de identificar, cuando la prueba automatizada es una prueba clásica (una prueba web de extremo a extremo, por ejemplo), cuando esta prueba simula al usuario, requiere ser capaz de activar objetos en la interfaz. Y a menudo, las pruebas rotas provienen de un cambio en estos objetos gráficos. Y el aprendizaje automático puede encontrar el objeto correcto y modificar automáticamente el script para fijar el localizador, es decir, la ubicación del objeto gráfico que debe activarse durante la prueba. Pero eso es sólo un elemento. 

            El segundo tema es la pertinencia de las pruebas automatizadas , es decir, asegurarse de que los recorridos clave de los usuarios están cubiertos por las pruebas automatizadas. Y hay un tercer tema importante, que es el de la priorización de las pruebas en tiempo de ejecución. Cuando se realizan pruebas de extremo a extremo, que garantizan que los recorridos del usuario funcionan, la ejecución puede llevar tiempo. Una de las soluciones a este problema es poder priorizar la ejecución de pruebas automatizadas basándose en el aprendizaje de resultados anteriores, una predicción de la anomalía que se va a detectar.

            Solicite una demostración

             

            La idea, por lo tanto, es ejecutar escenarios que se eliminará más a menudo para dar un estado rápido de, por ejemplo, una corrección de errores?

            Por supuesto. La magia de la IA y el aprendizaje automático es que no se trata de reglas definidas por los humanos. Es el aprendizaje del modelo, de los algoritmos por los algoritmos, lo que nos permite predecir con buena fiabilidad. Imaginemos que tenemos que realizar 300 pruebas, 17 de las cuales fallarán y revelarán anomalías. Con la predicción, estas 17 pruebas estarán entre las 20 primeras que se ejecuten. Si tiene tiempo para realizar esas 300 pruebas en 3 minutos, no las necesitará, pero la realidad no suele ser esa. La realidad es que las 300 pruebas se ejecutan en 4/5 horas, por lo que nos interesa tener una priorización fiable. Y la IA, en nuestro trabajo, es una técnica de aprendizaje supervisado, el hecho de aprender del historial, del contexto en el que se ejecuta la prueba, de su duración, de los cambios que se han realizado, etc. La IA debe considerarse como un facilitador diario para los probadores. 

            Escenarios de prueba en Sídney

            Por el contrario, ¿cuáles considera que son los límites de la IA en la automatización de pruebas? 

            Dentro de unos años, me parece bastante claro que podremos desarrollar sistemas de prueba inteligentes y autónomos. Hay cosas en el laboratorio que están empezando a aparecer en torno a las pruebas de autoadaptación. El tema número uno son las pruebas de regresión , pruebas difíciles de mantener y de hacer. Apostaría a que dentro de 5 a 10 años tendremos este tipo de robots. Tendremos capacidades que sustituirán la creación de pruebas por parte de los probadores en determinados entornos y de forma automática. Esto también implica perfiles, buen conocimiento del negocio, etc., es un trabajo un poco repetitivo que será sustituido en parte. Pero los probadores tienen un gran valor añadido en el conjunto de las actividades de ingeniería de calidad, y la implementación de robots de prueba inteligentes y autónomos será una ayuda y un refuerzo para sus actividades

            La IA es un tema bastante complejo, ¿qué retos cree que puede plantear en la automatización de pruebas? 

            Cuando se utilizan e implementan técnicas de aprendizaje a partir de fuentes de datos, si éstas no son fiables, los resultados de la IA no lo serán. Si se trata de predecir los índices de anomalía o los riesgos asociados a los diferentes componentes del software basándose en el historial de desarrollo, entonces esos datos del historial tienen que ser archivados, mantenidos y fiables. Esto también es un problema, no será suficiente decir: sólo tengo que usar este motor de IA para obtener este resultado, como hacer una predicción sobre la tasa de error del componente. Si no tienes los datos correctos de antemano, el componente nunca funcionará. Los probadores tienen un papel que desempeñar para garantizar que los datos utilizados por la IA son de buena calidad.

            *Pruebas de extremo a extremo: Pruebas de un sistema integrado completo para verificar que todos los componentes integrados funcionan en el entorno final en las rutas de los usuarios objetivo.

            *Script : Los diferentes pasos a seguir para probar una o varias funcionalidades en una aplicación web o móvil.

            Captura de pantalla 2022-07-06 a las 16.18.40

             

            ¿Qué le ha parecido esta entrevista? Aproveche para descubrir nuestras otras entrevistas con Marc Hage Chahine y Xavier Blanc. 

            Imagen de Mr Suricate

            Mr Suricate

            Autor