En los últimos años, las APIs REST han ganado notable relevancia en la comunicación y el intercambio de datos por su simplicidad, escalabilidad, y compatibilidad con los estándares web. Sin embargo, garantizar la fiabilidad de estas mediante pruebas rigurosas ha supuesto un reto significativo debido a la complejidad de sus operaciones, parámetros, entradas, dependencias y secuencias de llamadas.
Con el propósito de mejorar este escenario, se ha desarrollado MUCOR EST, un enfoque innovador basado en aprendizaje por refuerzo (RL) diseñado específicamente para las pruebas de APIs. Aprovechando el algoritmo de Q-learning, MUCOR EST busca maximizar el coverage de código y de salida, incrementando así la detección de errores en las APIs. La idea es que, al alcanzar estos objetivos inmediatos en lugar del abstracto de maximizar fallos, se puedan descubrir áreas críticas del código y comportamientos diversos de las APIs con mayor eficacia.
El papel del agente de RL en MUCOR EST es generar y ejecutar llamadas API que maximicen el descubrimiento de errores mediante la maximización de la cobertura de código y de salida. Por ejemplo, recompensas positivas se otorgan al identificar códigos de estado 4xx y 5xx, que indican solicitudes fallidas a menudo causadas por errores en las APIs. Los resultados experimentales en un banco de pruebas de 10 servicios demostraron que MUCOR EST supera significativamente a las metodologías de prueba de API más avanzadas, logrando un 11.6% a 261.1% más de errores descubiertos.
Entre los errores bajo otras técnicas, MUCOR EST logró identificar de 12.17% a 64.09%, reflejando su eficiencia en lograr resultados comparables o superiores usando un menor número de llamadas. Como ilustración, mientras otras herramientas requerían 7,500 llamados para hallar 90 errores, MUCOR EST lo lograba con tan solo 5,000.
El éxito de MUCOR EST radica en su enfoque de proximidad, centrado en la ejecución de áreas de código críticas y la exploración de comportamientos API diversificados, lo que dota al agente de una mejor capacidad para detectar errores no descubiertos previamente. Esto se logra recompensando al agente basándose, no solo en el número de líneas de código nuevas cubiertas, sino también en la diversidad de las salidas de las APIs.
La conclusión es que MUCOR EST representa un salto significativo en las pruebas automatizadas de APIs, sugiriendo que el enfoque de aprendizaje por refuerzo y objetivos más inmediatos puede servir como una táctica efectiva en la mejora del descubrimiento de fallos API, lo que podría inevitables integrarse cada vez más en la práctica de aseguramiento de calidad del software.