Durães, João António Pereira AlmeidaAraújo, Filipe João Boavida de Mendonça Machado deNeves, Rui Jorge da Silva2026-03-102026-03-102025-07-11http://hdl.handle.net/10400.26/62086O aspeto de confiabilidade dos sistemas modernos tornou-se num dos mais importantes em termos de qualidade de software, com o aumento do número de sistemas e utilizadores, um desafio à sua estabilidade. De forma a preparar para estes desafios, os desenvolvedores dedicam uma quantidade de tempo considerável a criar mecanismos e técnicas para melhorar a resiliência e a robustez do sistema em desenvolvimento. Isto geralmente inclui técnicas de injeção de falhas para garantir que o sistema possa ser testado num ambiente com adversidades e provocar estados internos inválidos, em vez de esperar que estes ocorram naturalmente, já que geralmente estes problemas são raros. Apresentado neste trabalho, o Defektor é uma ferramenta já em desenvolvimento que foi aprimorada e testada para demonstrar a possibilidade de se aplicar a qualquer projeto. A ferramenta atua como um gestor de campanhas, configurado para controlar múltiplas máquinas, usar diferentes ferramentas externas, interagir com sistemas alvo e obter dados que podem ser analisados. O Defektor recebe uma série de parâmetros que lhe permitem automatizar a execução da campanha, o que torna os resultados mais consistentes e facilita a replicação de experiencias. O Defektor executa essas ações por meio de integrações com ferramentas de injeção de falhas que interferem nos sistemas alvo, ferramentas de tracing e logging para obter dados e containers Docker que executam workloads, mantendo-se agnóstico em relação a ferramentas, sistemas e infraestruturas.The reliability and dependability aspect of modern systems has become one of the most important in terms of software quality, with an increase in the number of systems and individual users, challenging their stability. To better prepare for these challenges, developers spend a considerable amount of time creating mechanisms and using techniques to improve the resilience and robustness of the system in development. This usually includes techniques of fault injection to ensure that the system can be tested in an adverse environment and provoke invalid internal states, instead of waiting for them to naturally occur, as it can take much longer. Presented in this work, Defektor is a tool already in development that has been improved and tested to show its real-world applicability. It acts as a campaign manager, which is configured to control multiple machines, use different external tools, interact with a target system, and collect that that can be analyzed. It receives a series of parameters that allow Defektor to completely automate the campaign execution, which makes results more consistent and easier to replicate experiments. Defektor performs these actions through integrations with fault injection tools that interfere with the target systems, tracing and logging tools to collect the data, and Docker containers that execute workloads, staying agnostic regarding external tools, systems, and infrastructuresengChaos engineeringInjeção de falhasCloudMicroserviçosDefektor : a chaos engineering campaign orchestratormaster thesis204216486