Inspiration & Kunskap

Testautomatisera strategiskt - så ska du tänka [video]

De senaste åren har det pratats mycket om testautomatisering, vilket inte är så konstigt med tanke på att allting idag görs mer och mer via kod (shift left-trenden). Men hur ska du egentligen tänka strategiskt för att lyckas med automatisering?


hur-ska-man-automatisera-pyramider


Den här bilden är min absoluta favorit av alla bilder jag har sett inom testautomatisering, vilket beror på att den innehåller så mycket information och så många dimensioner. All information som syns på bilden är dessutom matnyttig och användbar i vardagen. I klippet nedan går jag igenom varje pyramid och förklarar vad de olika nivåerna innebär.

Pyramider, textad

Automationsnivå

Den första pyramiden heter automationsnivå och visar enhetstest, API-test och GUI-test. Enhetstest utgör botten av automationsnivåpyramiden eftersom dessa är flest i antal, ofta flera tusen. Här testas de mest atomära, små molekylerna som mjukvaran är uppbyggda av.

API-testerna fungerar ungefär som ett lager för att motionera bakomliggande kod och är färre i antal, snarare hundratals än tusentals. Medan det kan ta sekunder att köra igenom tusentals enhetstester tar det kanske 3-5 minuter att göra igenom 400 API-tester. Det beror på att det är så mycket mer av systemet som körs på den här nivån, till exempel trafik via nätverk och ner i databaser för att plocka fram resultat.

Högst upp i pyramiden finns GUI-skiftet, alltså det grafiska gränssnittet som frontar mot slutanvändare. GUI-testerna utgör toppen av pyramiden eftersom de är minst i antal, men också tar längst tid att utföra. De är mer komplexa, långa och ofta något mer besvärliga att ta sig igenom. 


Affärsprocesstäckning

Nästa pyramid är uppochnervänd och visar affärsprocesstäckningen. Det handlar om hur stor del av arbetet som läggs på värdet som slutkunden får av produkten. Den högsta procenten (70) visas högst upp i pyramiden och är kopplad till GUI-skiktet. Här använder vi samma gränssnitt som slutanvändaren varför det är här det största värdet för slutanvändaren också finns. I lagret under testas istället sådan som saldo, lagersaldo och så vidare, vilket är något längre bort från värdet till slutkunden. I sista lagret testas istället addition, "större än", "mindre än" och liknande. 


Kodtäckning 

Defekter och buggar sitter som oftast i koden. Det finns statistik som säger att på 1000 rader kod finns fyra till fyrtio defekter. Dessa ska hittas, vilket bara går genom att motionera så många som möjligt av dessa rader med kod. Genom enhetstester kommer vi med lätthet åt att exekvera cirka 70 procent av alla kodrader, via API-tester 40 procent och via GUI-tester 5 procent. 

Exekveringstid 

Den fjärde och sista pyramiden visar tiden det tar att ta sig igenom varje testnivå, som nämnt ovan. GUI-testerna som är de mest besvärliga tar timmar, API-testerna som är enklare tar minuter, medan de minsta och enklaste enhetstesterna tar sekunder. 

Så, den slutliga poängen med det här inlägget är att det inte är en viss nivå som är "lagom" eller den bästa, utan att det finns för- och nackdelar med de olika nivåerna. Och för att lyckas automatisera framgångsrikt måste du ha en mix av alla delar utifrån ett strategiskt tänk, ungefär enligt fördelningen på bilden ovan. 

 

Sammanfattning

Genom att arbeta enligt ett strategiskt tänk med en bra fördelning mellan de olika nivåerna kommer det bli enklare för dig att lyckas med automatisering. Ingen nivå är i sig den bästa, eller den som är mest "lagom", det är kombinationen av alla pyramider - automationsnivå, affärsprocesstäckning, kodtäckning och exekveringstid. 


Automatisering är en stor del av continuous, där mycket av arbetet görs just via kod. Vill du veta mer om continuous quality assurance och vad det innebär i praktiken? Ladda ner vår guide! 

Ladda ner CQA-guiden

Skrivet av

Viktor Lazslo

är automatiseringsexpert och har i mer än 22 års tid jobbat med att effektivisera mjukvarutestning och utveckling med hjälp av verktyg, automatisering och processförbättringar både internationellt och i Sverige. Viktor har omfattande kunskaper inom systemutveckling och programmering samt i att ta fram verktyg för funktionella- och prestandatester.

Prenumerera för mer nyheter och inspiration