Politecnico di Torino (logo)

Integration testing for enterprise web applications

Takla Trad

Integration testing for enterprise web applications.

Rel. Giovanni Malnati. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2023

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview

In today’s fast changing software ecosystem, efficient microservice integration has emerged as a vital problem for software development teams. To guarantee that these scattered components work together seamlessly, the integration process necessitates extensive testing. This thesis aims to provide a thorough examination of automated integration testing within the realm of microservices, with a focus on the use of a ubiquitous language to promote larger test engagement. Throughout this research endeavor, in collaboration with RCS lab, a company looking to improve their integration testing practice, the goal was to create an automated integration testing flow that not only empowers developers but also extends testing capabilities to Quality Assurance team members. The encircling goal is to provide a test suite exemplar that encompasses best practices and concepts allowing successful testing operations. A multifaceted strategy was used to overcome this challenge. Initially, an exploration was conducted on the applications under test, laying the groundwork for microservices integration testing efforts. Subsequently, the focus shifted to the implementation approaches. These techniques include configuring the test environment to accurately reflect the real-world conditions, managing databases for seamless data interactions, and strategically using Testcontainers to ensure smooth test execution while maintaining a high degree of fidelity to the production environment. Testcontainers is a framework that provides throwaway, lightweight instances of test-dependent services wrapped in Docker containers. Emphasis is placed on the value of adopting Cucumber as the selected testing framework. Cucumber is a tool used to test applications written in a Behavior-Driven Development style, which supports a team-centric and cross-functional workflows. Cucumber provides a language abstraction that encourages developer and Quality Assurance collaboration. This collaboration approach fostered a culture of shared testing accountability which increases overall testing involvement. Furthermore, Jenkins, an open-source automation tool equipped with plugins built for continuous integration, was selected to orchestrate the automated execution of the integration tests, providing frequent and timely validation on microservice integrations. Alongside the achievements, one can find discussions revolving the difficulties experienced during the implementation process and the tactics used to overcome them. To review and debate the results of the testing efforts, successful scenarios are outlined, using Cucumber reports and Jenkins pipeline performance metrics, ensuring alignment with the specified objectives. Finally, a comprehensive overview of the study’s achievements is presented, stressing the significance of the chosen technique, and highlighting possible future improvements. This thesis provided a complete grasp of the problems, tactics, and outcomes connected with automated integration testing in the microservices domain. Collaborating with RCS lab produced a helpful resource for future testing attempts, allowing widespread participation to perform tests that ensure the integrity of microservice communications.

Relators: Giovanni Malnati
Academic year: 2023/24
Publication type: Electronic
Number of Pages: 75
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: RCS E T M SICUREZZA SPA
URI: http://webthesis.biblio.polito.it/id/eprint/28677
Modify record (reserved for operators) Modify record (reserved for operators)