Har du hört talas om ISTQB® -certifieringsutbildningen i testautomatisering?
Förmodligen inte – och det är förståeligt. Trots att den har funnits sedan 2016 är den fortfarande relativt okänd för allmänheten. Kursen är tillgänglig efter att man har klarat ISTQB® Foundation- certifieringen och ger de teoretiska grunderna för testautomatisering. Helst bör man gå kursen innan man påbörjar något praktiskt automatiseringsarbete, för att förstå vad det handlar om innan man dyker in i hur man gör.
Så varför är ISTQB®-utbildningen i testautomatisering användbar?
Nedan följer en kort inblick i kursens innehåll – i hopp om att väcka ditt intresse.
Testautomatisering är varken enkelt eller gratis. Det är ett projekt i sig, som gör det möjligt att förbättra testernas effektivitet, sänka testkostnaderna och samtidigt förbättra testtäckningen.
Problem som är förknippade med testautomatisering:
Dessa problem kan hanteras genom tillämpning av bästa praxis, i synnerhet genom en väl genomtänkt strategi för testautomatisering i kombination med utformningen av en effektiv arkitektur för testautomatisering (TAA) – som är underhållbar, prestandastark och har inlärningsförmåga – , ett fungerande ramverk för testautomatisering (TAF) och ett testsystem (SUT) som går att testa.
På så sätt undviks de viktigaste fallgroparna vid automatisering – se nedan:
Automatisering av testkörningen kräver god förberedelse. Detta innebär en automatiseringsstrategi som är anpassad till testobjektets (SUT) storlek och komplexitet, samt utformning av programvarugränssnitt för testningen. Dessutom sker valet av ett verktyg för testautomatisering, precis som för alla verktyg, genom en utvärdering av testprocessens mognadsgrad och automatiseringsmålen, genom en utvärdering av automatiseringsverktygen (kommersiella, open source eller egenutvecklade), i förhållande till målen och begränsningarna samt genom en utvärdering av verktygets kostnads-nyttoförhållande utifrån ett konkret affärsfall.
Utformningen av den generiska automatiserade testarkitekturen (gTAA) förblir den första viktiga fasen i testautomatiseringen, för att därefter utveckla en testautomatiseringslösning (TAS). gTAA kopplar samman testautomatiseringen med andra processer: projektledning, testledning och konfigurationshantering inom testautomatiseringsramverket.
Testautomatiseringen måste först planeras innan den implementeras, i enlighet med de fyra lagren i gTAA:
Testgenereringslagret definierar hur testerna utformas (manuellt eller baserat på modeller); testdefinitionslagret utarbetar testfall, testdata och testskript utifrån testvillkoren; testkörningslagret (automatiskt) gör det möjligt att följa testresultaten med hjälp av testloggar; slutligen styr anpassningslagret SUT med hjälp av gränssnitt som GUI eller API.
Testautomatiseringen måste därefter även övervägas med avseende på automatiseringens innehåll (vilka aktiviteter ska automatiseras? vilka testnivåer ska automatiseras? vilka typer av tester ska automatiseras?) samt testrollerna inom organisationen.
Slutligen varierar tillvägagångssättet för automatisering av testfall beroende på organisationens mognadsgrad. Ju högre mognadsgrad, desto högre abstraktionsnivå. Här presenteras olika metoder för skriptskapande med deras respektive egenskaper: inspelning/uppspelning, linjärt skriptskapande, strukturerat skriptskapande, datadrivet skriptskapande, nyckelordsbaserat skriptskapande samt skriptskapande baserat på modeller eller affärsprocesser.
Utvecklingen av den automatiserade testlösningen (TAS) är alltså ett resultat av en väl genomtänkt utformning av TAA och sker i faser och i samverkan med det system som testas (SUT). Precis som för alla projekt kommer utvecklingen av den automatiserade testlösningen (TAS) att genomföras i flera faser: först i ett pilotprojekt och därefter stegvis i hela organisationen.
Pilotprojektet måste väljas ut på rätt sätt: varken ett kritiskt projekt eller ett trivialt projekt. Syftet med pilotprojektet är att verifiera att TAS-lösningens löften infrias, till exempel när det gäller automatisering av icke-regressionstester, samtidigt som man är medveten om att automatiseringen är en långsiktig investering, och att lönsamhetströskeln kommer att nås efter en rimlig tidsperiod (som ska fastställas i början).
Införandet av TAS sker stegvis i alla företagets projekt: utbildning av användare, framtagning av användarhandböcker för TAS, stöd till test- och utvecklingsteamen för TAS, uppföljning av användning, fördelar och kostnader för TAS, kontinuerlig förbättring med retrospektiver … är god praxis för den allmänna införandet av TAS i hela organisationen.
Den TAS som på detta sätt skapats och sedan införts måste vara lätt att underhålla: den är modulär, skalbar, dokumenterad, tillförlitlig och testbar. Det måste också vara möjligt att verifiera TAS (precis som för alla mjukvaruprojekt), genom verifiering av den automatiserade testmiljön och verifiering av den automatiserade testsuiten. Slutligen måste det vara möjligt att följa och övervaka automatiseringsaktiviteterna genom effektivitetsmått för TAS (t.ex. feldensitet i TAS-koden …), samt mätvärden för påverkan på dessa aktiviteter (t.ex. arbetsinsatsen för att automatisera eller underhålla ett test, arbetsinsatsen för att analysera ett misslyckat test…).
Syftet med att använda TAS är att i slutändan skapa en automatiserad testmiljö utifrån befintliga manuella tester. Eftersom inte alla manuella testfall behöver automatiseras krävs kriterier för att avgöra vilka manuella testfall som ska automatiseras. Dessa kriterier för lämplighet för automatisering är användningsfrekvens, automatiseringens komplexitet, testprocessens mognad, den automatiserade miljöns hållbarhet och kontrollbarheten hos det system som testas (SUT). Manuella tester förblir dock alltid viktiga och nödvändiga.
Regressionstester och bekräftelsetester är lämpliga kandidater för automatisering.
Slutligen, precis som för alla mjukvaruprojekt, ingår kontinuerlig förbättring i de bästa metoderna för automatisering. Även om den främsta prioriteringen vid automatisering är att få den att fungera, bör man därefter göra ytterligare förbättringar av TAS eller SUT:
TAS och SUT måste faktiskt hållas synkroniserade under hela programvarans utvecklingscykel.
Detta är de viktigaste punkterna som behandlas i denna ISTQB® Advanced -utbildning – Testautomatisering: bästa praxis inom automatisering. Utbildningen är upplysande på flera sätt och bör – enligt min mening – övervägas INNAN man påbörjar något automatiseringsprojekt.