Testautomation som förutsättning för Continuous Delivery

När man arbetar enligt Continuous Delivery blir testautomation en förutsättning för att leverera hög kvalitet över tid. Det beror på att testautomation blir den sista utposten för att hitta regressioner och bevisa att systemet fungerar som förväntat. Utan väl fungerande testautomation blir systemets kvalitet därför lidande och företagets förtroendekapital riskerar att ta skada. Att lyckas med testautomation är inte trivialt men det finns flera orsaker som vi kan påverka för att öka chanserna att lyckas.

I den här artikeln behandlar jag en av orsakerna, den styvmoderliga hanteringen av arkitekturen på testautomationslösningar.

På testautomationsfronten intet nytt

Viljan att arbeta med testautomation fanns redan innan Continuous Delivery myntades som begrepp och fick ett uppsving med de agila metodernas intåg. Det som förändrats sedan Continuous Delivery kommit fram som ytterligare ett steg för att bli mer agil, är att testautomation har gått från nice-to-have till must-have. En Deployment Pipeline utan fungerande testautomation resulterar i falsk säkerhet vad gäller release-kandidatens kvalitet och är därför att betrakta som en stor kvalitetsrisk.

Arkitekturera mera

Kravet på en automatiserad lösning bär stora likheter med produktionskod. Det måste gå att skapa nya värdefulla tester på ett enkelt sätt, samtidigt som kostnaden för underhållet av befintliga tester måste hållas på en minimal nivå. Eftersom testautomation med få undantag resulterar i kod, måste vi börja hantera det på sätt som vi vet passar för kod. Därför krävs det kontinuerligt arktiekturellt arbete, kodstandard, enhetstester, versionshantering och andra hygienfaktorer som hör kod till. 

I mjukvaruindustrin högaktar vi de personer som kan konstruera system, system som uppfyller kundernas krav, men som också är elegant konstruerade. System som håller över tid, är lätta att förvalta och vidareutveckla kan vara en stor konkurrensfördel.

Tyvärr har angreppssättet för att bygga testautomatiseringslösningar inte fått samma arktiekturella uppmärksamhet, utan snarare fått en styvmoderlig behandling. För att lyckas med testautomation så krävs att lösningens kodbas behandlas som produktionskod och att arbetet med testautomation får högre status inom organisationerna.

Utan ett sådant arbete kommer vi sannolikt inte se fler lyckade testautomationslösningar än vad vi har idag och därmed ha stora svårigheter att framgångsrikt arbeta med Continuous Delivery.

 

Martin Johansson
martin.johansson@metrical.se