Return to search

Contract Testing: Ensuring Reliable Integrations with Isolated Tests : Support for teams to test in isolation

Mikrotjänstarkitektur är den senaste trenden inom mjukvaruutveckling som gör det möjligt att bygga komplexa system från mindre tjänster utformade för att vara självförsörjande och fokuserade på en specifik affärsfunktionalitet. Dessa kan utvecklas, testas, driftsättas och skalas oberoende av varandra, vilket gör att team kan vara mer autonoma och leverera värde till kunder snabbare. Bolagsverket är i processen att övergå till en arkitektur baserad på mikrotjänster men dess långa historia av omfattande end-to-end-tester som är komplexa att sätta upp, långsamma att köra och kräver mycket resurser gör det svårt att testa att integrationerna fortsätter att fungera efter att ändringar har införts. Contract testing underlättar denna verifiering. Studien implementerar Consumer-Driven förhållningssättet till tekniken med ramverken Pact och Spring Cloud Contract med syftet att undersöka hur integrationen mellan två tjänster som kommunicerar via ett REST API kan testas isolerat, samtidigt som man säkerställer att de kommer att fortsätta att interagera som förväntas när den faktiska integrationen testas. De kvantitativa och kvalitativa resultaten från fem semistrukturerade intervjuer visar att Bolagsverket i genomsnitt skulle kunna minska tiden det tar att leverera en funktion med 24 %, öka frekvensen av distribution med 42 % och minska infrastrukturkostnader med 52 %. Det här skulle göra det möjligt att ersätta end-to-end tester tidigt i utvecklingscykeln med kontraktstester och att ha en enda testmiljö med fullständiga integrationer innan driftsättning till produktion. Tekniken har emellertid vissa inneboende kostnader och garanterar i sig inte alla fördelar med en mikrotjänstarkitektur / Microservices architecture are the latest trend in software development enabling to build complex systems from smaller services designed to be self-sufficient and focused on a specific business functionality. These can be developed, tested, deployed, and scaled independently, allowing teams to be more autonomous and deliver value to customers faster. The Swedish Companies Registration Office, Bolagsverket, is in the process of transitioning toward a microservices architecture but its long history of extensive reliance on end-to-end tests that are complex to set up, slow to run, and require plenty of resources makes it difficult to test that the integrations continue to work after changes are introduced. Contract testing facilitates such verification. The study implements the Consumer-Driven approach to this technique with the frameworks Pact and Spring Cloud Contract with the objective of investigating how the integration between two services communicating via a REST API can be tested in isolation, while ensuring that they will continue to interact as expected when the actual integration is tested. The quantitative and qualitative results from five semi-structured interviews show that, on average, the agency could decrease the time it takes to deliver a feature by 24%, increase the deployment frequency by 42%, and reduce infrastructural expenses by 52%. This would allow to replace end-toend tests early in the development cycle with contract tests, and to have a sole test environment with complete integrations before deploying to production. However, the technique has some inherent costs and on its own does not guarantee all the benefits of a microservices architecture

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:miun-48570
Date January 2023
CreatorsHernandez, Christian
PublisherMittuniversitetet, Institutionen för data- och elektroteknik (2023-)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0018 seconds