Conjunto de pruebas automáticas para optimizar el proceso de desarrollo de «software»
Antes de que una aplicación de «software» pueda comercializarse, primero debe ser totalmente validada, un proceso que implica pruebas exhaustivas y caras. Aunque existen muchas herramientas y métodos para realizar automáticamente pruebas a nivel de unidad y de integración, la prueba de sistema sigue siendo una tarea esencialmente manual. En consecuencia, las pruebas de sistema son un obstáculo caro en el proceso de desarrollo de «software». Para ayudar, el proyecto financiado con fondos europeos AST, cuyo trabajo recibió el apoyo del Consejo Europeo de Investigación, ha desarrollado una herramienta precomercial que puede generar de manera eficaz y automática casos de prueba para aplicaciones de «software». Leonardo Mariani, catedrático de la Universidad de Milán-Bicocca y coordinador del proyecto AST, explica: «Hoy en día, un ingeniero de "software" debe dedicar una cantidad de tiempo considerable a verificar la exactitud de las aplicaciones que desarrolla y mantiene. Al validar rápidamente varias situaciones, los casos de prueba automáticos garantizarán que estos ingenieros puedan concentrar su tiempo en los casos más sutiles que deben verificarse manualmente».
Una solución de prueba automática
Al combinar varias técnicas diferentes, como la inteligencia artificial, el proyecto creó con éxito una solución de prueba automática. Como explica Mariani: «Nuestra solución automática de generación de pruebas utiliza el aprendizaje por refuerzo para aprender de forma progresiva cómo se comporta el "software" que se está probando. Según lo que aprende, mejora gradualmente la efectividad de las pruebas generadas». Según Mariani, cuando una solución se ejecuta en paralelo en varias máquinas, el proceso de aprendizaje resulta aún más rápido. Y añade: «También abordamos el problema de obtener automáticamente valores de entrada significativos, como el nombre de una dirección real para acceder a una aplicación. Para hacerlo, creamos una solución que reutiliza los repositorios de datos existentes, como las bases de datos de prueba y producción, que normalmente están disponibles dentro de una organización».
Un buen comienzo para la automatización de las pruebas
Cuando la pandemia de COVID-19 frenó el trabajo del proyecto, el equipo realizó cambios rápidamente y encontró una manera de acceder de manera remota a los servidores y al «software». Mariani señala: «Trabajar de manera remota y llevar a cabo solo reuniones virtuales no es lo mismo que trabajar juntos de forma presencial, pero aun así logramos lo que nos habíamos propuesto: crear soluciones tecnológicas que generen casos de prueba de manera eficaz para las aplicaciones web complejas». Aunque la herramienta AST representa un buen comienzo para la automatización de las pruebas, aún queda mucho trabajo por hacer. Como tal, actualmente el equipo del proyecto está ampliando la herramienta para que pueda abordar sistemas de «software» cada vez más complejos y grandes. Los investigadores también están trabajando para garantizar que la herramienta pueda reconocer el creciente número de problemas que podrían afectar al «software» durante las pruebas. «Ampliamos nuestra base de conocimientos en el área de automatización de pruebas y lanzamos herramientas que se pueden utilizar tanto para impulsar la investigación en pruebas web como para estudiar la aplicación industrial de la generación automática de casos de prueba», concluye Mariani.
Palabras clave
AST, «software», desarrollo de «software», aplicaciones de «software», ingeniero de «software», pruebas de sistema, inteligencia artificial, automatización de pruebas