Har du fått uppgiften att införa testautomatisering över flera system? Finns det redan öar av färdig automatisering men olika team har olika lösningar, olika ramverk och olika verktyg? Lugn, vi har varit i samma situation flera gånger och vi har en strategi för att hantera situationen! Med vår erfarenhet och vårt lättviktsramverk Tzatziki för vi samman delarna till en helhet och bringar ordning i rapportering och exekvering.

Genom vår strategi för återanvändning, autentisering och testdatahantering låter vi teamen göra det de är bäst på, nämligen sin sak. Portalgruppen som skriver koden för slutanvändarnas webbplats har full koll på gränssnittet och deras regressionstester kan med små medel anpassas till att ingå i ett längre flöde där fakturering och leverans kontrolleras. Faktureringssystemet som är inköpt utifrån har rikligt med integrations-APIer så där får vi skriva vår egen automatiseringskod. Leveranssystemet ligger utanför huset och kräver riktiga adresser för att fungera. I det fallet behöver vi boka testdata inför varje testkörning. Inga problem!

Vad är Tzatziki?

Autentisering

I flöden över flera system blir det snart många identiteter att hålla reda på. När allt ska uttryckas som kod är det frestande att lägga lösenord i koden. Givetvis är det fel väg att gå och i Tzatziki använder vi ett lösenordsvalv för detta. Hashicorp Vault har en lättdriftad och skalbar lösning för hantering av lösenord och andra delade hemligheter som gör det lika lätt att använda vid utvecklingen av testautomatiseringen som vid exekvering från CI/CD. I Tzatziki hanterar vi autentisering mot Vault på ett säkert och sömlöst sätt som minimerar avbrotten.

Återanvändning

Team som utvecklar testautomatisering har olika preferenser vid val av verktyg. Många gånger är framgångsfaktorn just att teamen själva får välja sina verktyg. Gemensamt för bra verktyg är dock att de har stöd för CI/CD och kan köras med olika parametrar i Jenkins Pipelines, GitHub Actions, Azure DevOps Pipelines, eller liknande. Med mindre anpassningar och med hjälp av Tzatziki blir dessa jobb till steg i ett längre flöde och rätt team med rätt kompetenser underhåller rätt delar av testerna.

Testdatahantering

I mer komplicerade flöden i integrerade miljöer blir snart testdata en flaskhals. Data måste ofta hållas synkroniserade i flera system för att helheten ska fungera som det är tänkt och risken att klampa in på kollegans testdata ökar då testerna utförs automatiskt. Strategin i Tzatziki är att hålla en enkel intern databas för testdatat där data kan bokas från externa system, berikas inför testerna och reserveras för olika testfall för att sedan kunna rensas och återlämnas efter användning.

Exekvering

Java är ett krav, men utöver det är stödet från Tzatziki egentligen inte alls beroende av testexekveringsmotorn. Bäst uttryckskraft har vi dock fått med Cucumber som efter decennier har nått en oöverträffad mognad. Genom att välja Cucumber inte bara för enhetstester utan även kravställning, rapportering, utveckling och längre och mer komplicerade testfall över flera system nås en förståelse för innehållet av en större publik i företaget. Stödet för Cucumber är väletablerat i de flesta användbara programspråk och testramverk vilket underlättar både exekvering och rapportering. Tzatziki lämpar sig mycket väl till att komplettera och förenkla testautomatiseringen i Cucumber för Java. Givetvis är det lika lätt att exekvera testerna lokalt för utvecklaren som på byggservern. Sker testerna på uppdrag av en testorganisation snarare än som ett led i en integrerad byggprocess möjliggör Tzatziki även att undvika att exekvera tester givet tidigare status vilket kan underlätta för schemaläggning av hela testsviter.

Rapportering

Jira som har blivit de facto branschstandard är ett bra verktyg för att styra utvecklingsteam, hantera krav och uppföljningar samt med olika tillägg sammanställa testrapporter. Vilket teststyrningstillägg man ska välja är i många fall en fråga om tycke och smak. Vi har fastnat särskilt för XRay som ger lagom mycket flexibilitet och funktionalitet. XRay har givetvis stöd för tester uttryckta i Cucumber-format. Med Tzatziki blir det enkelt att rapportera resultat till flera testplaner beroende på taggningen av testfallen. När Jiras dashboards inte räcker till har Tzatziki stödbibliotek för rapportering direkt till Confluence.

Lättviktigt

Tzatziki är tänkt att vara såsen som kompletterar arbetet med testautomatisering. Givet att teamet redan kan de enkla principerna bakom verktyg som Cucumber för Java och är bekväma med OpenAPI, Selenium, Playwright och andra ramverk så tar Tzatziki hand om det som saknas. Tzatziki är inte ett ramverk som helt tar över och dikterar hur tester ska skrivas och implementeras utan låter teamet koncentrera sig på det som verkligen gäller, nämligen testautomatiseringen.

Vad kan Lemontree erbjuda?

På Lemontree har vi arbetat med principerna bakom Tzatziki under många år i flera former. Vi har vana av att sätta upp och underhålla den infrastruktur som krävs. Vi vet vilka strategier som underlättar underhållet över tid och vi är pragmatiska problemlösare med kompetenser inom både produktutveckling och testning. Tzatziki är ett levande ramverk som hela tiden utökas med stöd för nya delar vartefter vi stöter på teknologier som gynnar många. Erfarenheter från ett projekt kommer andra projekt till godo. Utöver koden i ramverket har vi en utarbetad strategi för modularisering av testkoden, uppdelning av testfall för testdataberikning och återanvändning i flera led.

Expert utveckling och test

Johan Klintholm

Johan Klintholm är mjukvaruutvecklare, testautomatiseringsutvecklare, verktygsarkitekt och säkerhetsexpert med nära 30 års erfarenhet inom branschen och brinner för att hitta och bygga effektiva lösningar. Han brukar också föreläsa inom testautomatisering på olika branschevents.

Kontakta oss för konsultation eller frågor rörande Test och QA

Har du frågor eller behöver hjälp med dina projekt inom test och QA? Tveka inte att höra av dig till oss. Fyll i formuläret så återkommer vi till dig inom kort. Vi finns här för att hjälpa dig att ta nästa steg i din digitala utveckling.