Många har svårt att visa fördelarna med testautomatisering och får aldrig den i julklapp av sina chefer. Hur gör man för att få börja med testautomatisering? Tjänar vi något på den eller är den bara en rolig leksak för tekniknördar, som kostar pengar?
Gör så här för att visa nyttan med en testautomatisering:
Ett: Sätt upp mål
t.ex. Målen med testautomatiseringen är att:
- · Kraftigt reducera personalbehovet för regressionstester
- · Att genomförda regressionstester har en större testtäckning än vad de har idag
- · Möjliggöra en ökad frekvens på genomförandet av regressionstest. På systemtestnivån är målet att köra de automatiserade testerna en gång per arbetsdag (normalt på natten). På acceptanstestnivån är målet att köra regressionstest efter varje kodleverans till miljön.
Två: Gör en kalkyl
På kort sikt kostar det att introducera en testautomatisering, men man vinner på längre sikt, genom att spara personalkostnader, eller man får färre fel i produktion. Nedan följer två exempel på kostnadskalkyler.
Figur 1 Kostnad ackumulerad i halvårssteg 2009 till 2012
Figur 2 Kostnad per halvår 2009 till 2012
Tre: Visa vad man vinner vi med testautomatiseringen
Exempel:
- · Mer frekventa och omfattande regressionstester kan göras
- · Det genomförs konsekvent samma uppsättning av tester, dag och natt
- · Relativt tråkiga arbetsuppgifter blir testpersonalen förskonade från
- · Testpersonalen stannar längre, för att den har roligare uppgifter
- · Hitta fel snabbare i regressionstester
- · Snabbare feedback till utvecklare om en release kvalitet
- · Lätt och tidseffektivt att köra om tester vid behov
- · Tar bort tråkiga, rutinmässiga testaktiviteter för manuella testare och frigör därmed tid för kreativa testaktiviteter
- · Har en lägstanivå på vad som testas
- · Vinner ny duktig testpersonal genom en intressant arbetsmiljö utan tråkiga uppdrag
Fyra: Påvisa en stegvis införande och uppföljning
Exempel:
Inför testautomatiseringen stegvis, börja med testerna för ett system och utöka sedan med ett system till osv. Välj och prioritera testfall.
Under de första sex månaderna av den nystartade testautomatisering bör arbetet följas upp månadsvis. Dessutom bör man ha en beslutspunkt var tredje månad om det är värt att gå vidare eller inte.
För att kunna bedöma nyttan med testautomatiseringen behöver en noggrannare uppföljning införas. En utförlig rapportering av viktiga mätvärden rekommenderas, exempelvis:
- · Nedlagd arbetstid på att utföra manuell regressionstest
- · Nedlagd arbetstid på ny automatisering
- · Nedlagd arbetstid på underhåll av automatisering
- · Uppnådd automatiseringsgrad inom de olika områdena (i förhållande till specificerade regressionstestfall)
- · Om möjligt någon typ av mått på testtäckningen i systemen
Notera att nedlagd tid på aktiviteter som testfallsbeskrivningar, preparering av testdata, underhåll av testmiljö osv. bör redovisas var för sig.
Fem: Definiera en organisation
Den minsta möjliga organisationen består av en testautomatiseringsspecialist och en testautomatiseringskunnig. Undvik att starta utan en specialist med lång erfarenhet av utveckling och förvaltning av automatiserade tester.
Vad förlorar vi med testautomatisering?
Det enda som vi har att förlora är tråkiga arbetsuppgifter som hela tiden återkommande regressionstester.
Lycka till!
Bra artikel! Detta ämne känns ganska hett just nu och jag skulle vilja lägga till:
* Inte bara regressionstestfall/checkar är föremål för automatisering. En mycket kraftfull kombination och i mitt tycke viktigare satsning är “halv-automatisering” där man testar manuellt utforskande men med hjälp av testautomatisering så som SQL-script, funktioner för automatiskt filskapande, dynamiska web service-anrop, compare-funktioner etc.
* Det finns en viss övertro på (hel)automatisering så analys av värde/kostnad/risk måste göras löpande för all automatisering.
* GUI-automatisering i all ära men störst värde/kostnad får man oftast om man lägger tyngdpunkten för automatisering på modulnivå om systemet är bra designat (minimalt med affärslogik i (G)UI-lagret).
Tack för bra synpunkter Stefan och jag håller med:
1. manuella testare ska använda tekniska verktyg så som du beskriver dem och de gör det i allt större utsträckning också, bra
2. helt rätt att se över värde/kostnad/risk med automatiseringen löpande
3. jag ser automatisering på modulnivå som ett bra komplement av GUI-automatisering, test-driven-development ger ytterligare kostnadsbesparingseffekter
Håller med om att det är en bra artikel som fick mig nyfiken att veta mer.
Det första som jag blir nyfiken på är organisationen. Varför krävs dessa två personer? Håller med om att det måste vara minst en som är riktigt duktig på automatisering för att få till ett fungerande system. Men vad är anledningen till att det krävs två som kan automatisering i någon grad?
Tror jag hellre hade bytt ut den andra mot någon som kan domänen och applikationen/systemet som ska testas ifall man bara ska ha två personer i organisationen.
/Johan
Tack Johan. Jag ser en stor risk med ett personberoende på bara en person och det är samma problem som i övriga roller eller kunskapsområden. Jagtycker det är bra att man har en backup som kan underhålla och genomföra testerna under en övergångsperiod och till man får en ersättare, ifall testspecialisten skulle falla bort, är sjuk eller på semester etc.
En bra liten introduktion. Jag skulle dock vilja lyfta även de fällor man kan hamna i när man vill automatisera (för att kunna undvika dem). Jag har själv arbetat i en miljö där automatiseringen var i världsklass men där allt fokus hamnade just på automatiseringen och man glömde själva testandet. Detta gjorde att de scenarios som testades i automatiseringen fungerade klockrent men det fanns många fel när man ändra scenariot lite och vi fångade inte upp dessa.
Jag rekommenderar varmt att även läsa James Bachs artikel “Test Automation Snake Oil” (http://www.satisfice.com/articles/test_automation_snake_oil.pdf). Där lyfter Bach fram flera olika fällor som man bör undvika när man vill automatisera.
Tack för dina synpunkter och helt rätt Martin. Testautomatiseringen kan aldrig ersätta manuella tester utan bara komplettera dem. Testautomatiseringen gör att våra testare har tid över att testa kreativt t.ex. enligt Bachs Exploratory testing, och datorn kör de tester som är tråkiga och repetitiva. Så gör alla det de kan bäst.