Resumen
El software es un pilar fundamental en sectores como la banca, los videojuegos y la salud. Las pruebas de software son el método más empleado para garantizar la calidad y fiabilidad de estos sistemas. Al someter los sistemas a pruebas rigurosas y recopilar evidencias, este proceso permite tomar decisiones informadas sobre la calidad del producto.
Los testers humanos son fundamentales en las pruebas de software, aportando intuición, creatividad y comprensión profunda. No obstante, los esfuerzos de los testers no deben centrarse en la ejecución manual y repetitiva de interacciones con el software, ya que ello implica una carga de trabajo excesiva, frustración y fatiga, lo que genera falta de atención y limitación en el tiempo de realización de pruebas.
Scripted testing es un enfoque para automatizar pruebas de software con scripts secuenciales y oráculos de prueba, reduciendo el esfuerzo manual y ayudando a mantener la calidad del software al detectar fallos de regresión. Sin embargo, la necesidad de mantener un número incontrolable de scripts, requeridos para sistemas grandes y complejos, hace que las pruebas basadas en scripts resulten insuficientes.
Scriptless testing es un enfoque automatizado complementario que no depende de scripts, sino que explora el software de manera dinámica mediante acciones no secuenciales. Este enfoque introduce aleatoriedad, lo que permite descubrir estados y fallos no identificados por pruebas manuales o con scripts.
TESTAR es una herramienta de automatización de pruebas sin scripts de código abierto que ha demostrado ser eficaz en la cobertura y detección de fallos al probar aplicaciones de escritorio y web industriales, a través de la Interfaz Gráfica de Usuario (GUI).
La arquitectura modular de TESTAR permite seguir mejorando la herramienta para:
(1) conectarse con otros sistemas software complejos,
(2) incorporar algoritmos exploratorios para mejorar la efectividad y eficiencia de las pruebas,
(3) integrar diverso de oráculos de prueba para cubrir una amplia variedad de características y detectar sus fallos, y
(4) ser validada en proyectos industriales y de código abierto bien conocidos.
En esta tesis, hemos colaborado con socios industriales y proyectos de código abierto para mejorar TESTAR, integrando marcos tecnológicos para conectar con aplicaciones de escritorio, web, móvil y de Realidad Extendida (XR); añadiendo algoritmos exploratorios para mejorar la efectividad y eficiencia de los mecanismos de selección de acciones; e integrando nuevos oráculos de prueba para la detección automatizada de fallos. Estas nuevas extensiones se han evaluado con proyectos industriales y de código abierto bien establecidos.
Nuestros resultados empíricos demuestran una mejora significativa en las capacidades de TESTAR. Primero, TESTAR puede conectarse y probar aplicaciones de escritorio, web, móvil y juegos de XR. Segundo, la implementación de procesos de inferencia de modelos de estado, un enfoque de inferencia distribuida, reglas de selección de acciones basadas en gramáticas y un algoritmo interactivo para juegos, mejoran significativamente la efectividad y la eficiencia de la exploración sin scripts. Tercero, la integración de oráculos de prueba y detección de cambios delta permiten a TESTAR detectar diversos tipos de fallos en el software e identificar cambios en la GUI entre versiones delta de la misma aplicación. Cuarto, TESTAR ha demostrado ser una solución complementaria a enfoques de pruebas manuales y scripts en la industria. Finalmente, hemos realizado una colaboración implementando un enfoque de Desarrollo Guiado por Comportamiento (BDD) para automatizar pruebas de regresión de un juego XR industrial.
Esta tesis concluye que usar una herramienta scriptless como TESTAR puede mejorar significativamente el proceso de aseguramiento de la calidad (QA) en aplicaciones de escritorio, web, móviles y XR, al aumentar la cobertura y detectar fallos inesperados.