Publication
Systematic review of exploration strategies and evaluation metrics in reinforcement learning using an automated software testing solution
datacite.subject.fos | Engenharia e Tecnologia | |
datacite.subject.sdg | 03:Saúde de Qualidade | |
dc.contributor.advisor | Pereira, Isabel Cecília Correia da Silva Praça Gomes | |
dc.contributor.author | BERTÃO, AFONSO MEIRELES | |
dc.date.accessioned | 2025-09-03T09:33:38Z | |
dc.date.available | 2025-09-03T09:33:38Z | |
dc.date.issued | 2025-07-21 | |
dc.description.abstract | In an era defined by rapid technological evolution, software systems underpin essential domains such as healthcare, finance and digital communication. Central to these systems are REST APIs, which enable seamless interaction across distributed services. However, the increasing complexity and ubiquity of these APIs have elevated concerns surrounding their security and robustness. Vulnerabilities in REST APIs can result in severe consequences, including data breaches, service outages and compromised user trust highlighting the need for intelligent and adaptive testing solutions. This thesis explores the integration of reinforcement learning (RL) into automated software testing, with a focus on algorithmic exploration strategies and evaluation metrics applied within FuzzTheRest, a state-of-the-art REST API fuzzing tool. While FuzzTheRest leverages the Epsilon- Greedy exploration strategy for action selection, its simplistic balance between exploration and exploitation limits its effectiveness in navigating complex API environments and uncovering subtle security flaws. To address these limitations, this review investigates the potential of Boltzmann Exploration, a probabilistic approach that adjusts action selection based on a softmax distribution over Q-values, enabling more nuanced and informed exploration of the test space. The study conducts a comparative analysis of multiple input generation strategies including random, evolutionary and RL-driven techniques evaluating their performance in adaptation to APIs and endpoints with complex parameterization terms, successful total number of HTTP responses, exploration fuzzing metrics and computational efficiency. In particular, the review highlights the impact of exploration strategies like Epsilon-Greedy and Boltzmann on the quality and depth of fuzzing outcomes. By synthesizing current literature and experimental insights, this review lays the groundwork for advancing RL-guided fuzzing methodologies. The findings aim to empower developers, testers and security practitioners with a deeper understanding of how exploration strategies choices influence the effectiveness of automated testing tools, contributing to more secure and resilient software systems. | eng |
dc.description.abstract | Num contexto de rápida evolução tecnológica, os sistemas de software sustentam domínios essenciais como a saúde, as finanças e a comunicação digital. No centro destes sistemas encontram-se as APIs REST, que permitem a interação fluida entre serviços distribuídos. Contudo, a crescente complexidade e generalização destas APIs têm levantado sérias preocupações relativamente à sua segurança e robustez das mesmas. Vulnerabilidades em APIs REST podem resultar em consequências graves, como violações de dados, interrupções de serviço e perda de confiança por parte dos utilizadores o que sublinha a necessidade de soluções de teste inteligentes e adaptativas. Esta revisão sistemática explora a integração de técnicas de aprendizagem por reforço (Reinforcement Learning) no domínio dos testes automatizados de software, com foco nas estratégias de exploração de seleção de ações e métricas de avaliação aplicadas na ferramenta FuzzTheRest, uma solução avançada de fuzzing de APIs REST. Embora o FuzzTheRest utilize a estratégia de exploração Epsilon-Greedy na seleção de ações, a sua abordagem simplista na gestão do equilíbrio entre exploração e exploração limita a eficácia na navegação por ambientes API complexos e na deteção de vulnerabilidades subtis. Para resolver estas limitações, esta tese investiga o potencial da Exploração de Boltzmann, uma abordagem probabilística que ajusta a seleção de ações com base numa distribuição softmax dos valores Q, que permite uma exploração mais informada e precisa do espaço de testes. É realizada uma análise comparativa de diversas estratégias de geração de entradas que inclui abordagens aleatórias, evolutivas e baseadas em aprendizagem por reforço ao avaliar o seu desempenho na adaptação a APIs e endpoints com parametrização complexa, eficácia nas respostas HTTP em diversos cenários, métricas de exploração relacionadas a fuzzing e eficiência computacional. Em particular, destaca-se o impacto de estratégias de exploração como o Epsilon-Greedy e a Exploração de Boltzmann na qualidade e profundidade dos resultados de fuzzing. Ao sintetizar literatura atual e perceções experimentais, esta revisão estabelece as bases para o avanço de metodologias de fuzzing orientadas por aprendizagem por reforço. Os resultados visam fornecer aos programadores, testadores e profissionais de segurança uma compreensão mais aprofundada sobre como a escolha de estratégias de exploração influencia a eficácia das ferramentas de teste automatizado, contribuindo para sistemas de software mais seguros e resilientes. | por |
dc.identifier.tid | 203995341 | |
dc.identifier.uri | http://hdl.handle.net/10400.22/30356 | |
dc.language.iso | eng | |
dc.rights.uri | N/A | |
dc.subject | Reinforcement Learning | |
dc.subject | Fuzzing | |
dc.subject | REST APIs | |
dc.subject | Epsilon-Greedy | |
dc.subject | Boltzmann Exploration | |
dc.subject | Exploration Strategies | |
dc.subject | Automated Software Testing | |
dc.subject | Fuzzing Metrics | |
dc.subject | FuzzTheRest | |
dc.subject | Aprendizagem por reforço | |
dc.subject | Exploração de Boltzmann | |
dc.subject | Estratégias de exploração | |
dc.subject | Testes automatizados de software | |
dc.subject | Métricas de fuzzing | |
dc.title | Systematic review of exploration strategies and evaluation metrics in reinforcement learning using an automated software testing solution | eng |
dc.type | master thesis | |
dspace.entity.type | Publication | |
thesis.degree.name | Mestrado em Engenharia Informática |