Repository logo
 
Loading...
Thumbnail Image
Publication

Implementação e Automação de Testes de Desempenho

Use this identifier to reference this record.
Name:Description:Size:Format: 
Tese_5794.pdf13.51 MBAdobe PDF Download

Abstract(s)

No dinâmico panorama do desenvolvimento de software, a automação de testes de desempenho é uma necessidade crucial para equipas que operam sob metodologias ágeis e práticas de DevOps. Contudo, a ausência de abordagens padronizadas e eficientes representa um desafio significativo, comprometendo a fiabilidade dos sistemas e a experiência dos utilizadores. Esta dissertação propõe uma solução inovadora para integrar e automatizar testes de desempenho em pipelines CI/CD, visando melhorar a eficiência operacional e a precisão na validação de serviços. A proposta de desenvolvimento consistiu na criação de um script de testes de carga com a ferramenta k6, genérico e personalizável, acompanhado do desenvolvimento de uma aplicação modular para visualização e validação automática dos resultados. Esta aplicação extrai métricas relevantes dos serviços (como latência, tráfego e saturação), gera relatórios e integra-se com ferramentas colaborativas como Confluence e Slack. A solução inclui ainda um ambiente de testes isolado com WireMock, garantindo a reprodutibilidade dos testes. Toda a arquitetura foi desenhada de forma genérica e reutilizável, facilitando a sua aplicação em múltiplos contextos. O estado da arte aborda os conceitos fundamentais de testes de desempenho, integrando técnicas de monitorização e análise para maximizar a eficácia dos sistemas. São exploradas as questões éticas e os desafios técnicos associados à implementação em ambientes de desenvolvimento reais, destacando práticas que promovem a escalabilidade e a confiabilidade. A recolha e integração contínua de feedback também desempenham um papel crucial no refinamento iterativo das soluções propostas. As respostas às questões de investigação fornecem conclusões fundamentadas sobre os critérios de seleção de ferramentas, as melhores práticas de integração e o impacto da automatização na melhoria da qualidade do software. Este trabalho contribui para o avanço da automação de testes de desempenho, proporcionando uma abordagem inovadora e fundamentada para as equipas que operam em contextos tecnológicos diversificados. A solução foi aplicada num serviço real, demonstrando ganhos significativos na deteção de regressões, uniformização de processos e melhoria do tempo de feedback às equipas. As contribuições técnicas desta dissertação reforçam a fiabilidade e rastreabilidade no desenvolvimento contínuo de software. Conclui-se que a abordagem proposta oferece uma base sólida, escalável e adaptável para a automação de testes de desempenho, promovendo maior qualidade e confiança no ciclo de entrega de software.
In the dynamic landscape of software development, performance test automation is a crucial necessity for teams operating under agile methodologies and DevOps practices. However, the lack of standardized and efficient approaches poses a significant challenge, compromising system reliability and user experience. This dissertation proposes an innovative solution to integrate and automate performance testing within CI/CD pipelines, aiming to improve operational efficiency and accuracy in service validation. The proposed development involved creating a generic and customizable load testing script using the k6 tool, accompanied by the development of a modular application for the automatic visualization and validation of results. This application extracts relevant service metrics (such as latency, traffic and saturation), generates reports, and integrates with collaborative tools such as Confluence and Slack. The solution also includes an isolated test environment using WireMock, ensuring the reproducibility of tests. The entire architecture was designed to be generic and reusable, facilitating its application across multiple contexts. The state-of-the-art review covers the fundamental concepts of performance testing, integrating monitoring and analysis techniques to maximize system effectiveness. Ethical considerations and technical challenges associated with implementation in real development environments are explored, highlighting practices that promote scalability and reliability. Continuous feedback collection and integration also play a crucial role in the iterative refinement of the proposed solutions. The answers to the research questions provide well-founded conclusions regarding tool selection criteria, best integration practices, and the impact of automation on improving software quality. This work contributes to the advancement of performance test automation, offering an innovative and grounded approach for teams operating in diverse technological contexts. The solution was applied to a real-world service, demonstrating significant improvements in regression detection, process standardization, and feedback turnaround time for development teams. The technical contributions of this dissertation enhance reliability and traceability in the continuous development of software. It is concluded that the proposed approach offers a solid, scalable, and adaptable foundation for the automation of performance testing, promoting higher quality and confidence in the software delivery lifecycle.

Description

Keywords

test automation performance CI/CD regression DevOps Automação de testes Desempenho Regressão

Pedagogical Context

Citation

Research Projects

Organizational Units

Journal Issue

Publisher

CC License

Without CC licence