Införande och underhåll av testautomatisering

2009-03-16 Artikelbanken Test Läst 7831 gånger

Testautomatisering väcker hopp men leder alltför ofta till frustration och besvikelse. I denna artikel får du tips för att framgångsrikt införa och förvalta automatiserad testning. Framförallt kommer jag att ta upp ett antal frågeställningar som är viktiga att ta itu med innan automatisering införs. Du kommer att få veta mer om framgångsfaktorer och vanliga fällor vid utveckling och underhåll av automatiserad testning.

Analys och planering för införande

Det första steget är att utföra en nulägesanalys med syftet att lyfta fram och sammanställa behovet inom organisationen. Resultatet av analysen ligger till grund för val av olika alternativa vägar framåt. Nu behöver ett antal frågor besvaras:

  • Vilka intressenter finns?
  • Vilka förväntningar finns?
  • Hur ser affärsmålen ut?
  • Hur ser tidplanen ut?
  • Vilka möjliga verktyg finns?

Med dessa frågor besvarade är det nu möjligt att skriva rekommendationer för tillvägagångssätt. För att skaffa ledningens stöd kan det nu vara viktigt att beräkna hur man räknar hem den investering det innebär att införa och driva testautomatisering.

Eftersom automatisering av test kostar tid och resurser är det viktigt att från början vara medveten om att berörda resurser initialt kommer att få mer arbete. Besluta tidigt vilka tester som ska utföras manuellt och vilka som ska automatiseras. Redan vid kravställning av testobjektet bör man definiera hur tester skall utföras för alla testnivåer, t ex komponent-, integrations-, system-, och acceptanstest.

Automatiserade tester kräver uthållighet innan vinsterna med införandet börjar visa sig. Det är även viktigt att räkna med att plattformen kommer att behöva underhåll för att alltid vara aktuell.

Välj ut testfall för automatisering

Vilka testfall som skall automatiseras har varit en av de vanligaste frågorna under många år och åsikterna går fortfarande isär bland experterna men det finns ett antal grundläggande sätt att värdera vilka testfall som är värdiga att automatisera.

Värderingen av om ett testfall lämpar sig för automatisering görs med avseende på flera faktorer som framgår av listan nedan:

  • Tidsbesparing gentemot manuell körning
  • Antalet gånger testfallet ska utföras
  • Antal varianter av indata
  • Manuellt kända tester
  • Enkelhet, kända indata och resultat
  • Hur viktigt testfallet är
  • I vilken mån testfallet kan återutnyttjas

Automatisera mer än det uppenbara

Höj gärna blicken och se till helheten av arbetet som skall utföras. Det finns många fler aspekter av automatisering utöver de mest uppenbara såsom regressionstester. Något som enligt min åsikt ofta förbises är att även preparering av testdata, rapportering och konfigurering starkt bidrar till framgångsrik automatisering. Genom att integrera testadministration och automationsramverk kan resultatet ifrån testkörningar återmatas till verktyg för administration av testerna. Därmed sparas mycket tid.

Aktiviteter vid automatisering

Automatiseringsarbetet kan grovt delas in i följande aktiviteter:

  • Spela in script
  • Skriva script
  • Skriva om/anpassa testfall
  • Anpassa testdata
  • Anpassa och integrera testverktyg
  • Hålla ihop testvara (testware), till exempel testfall, testplan, testrapport, och verktyg

Underhåll

Att underhålla/förvalta testerna är en viktig del av automatiseringsarbetet. Innan man lägger till nya testfall bör man fundera på vad testfallet kommer att tillföra för helheten och hur mycket arbete som blir följden i form av underhåll. En framgångsfaktor är att ett testfall måste ge noggrann felutpekning då det annars tenderar till att öka arbetsbelastningen i form av analys av resultatet.

Även testdata kräver underhåll för att vara relevant. Stora mängder testdata leder inte enbart till att tiden för underhåll av testdata ökas. Även själva hanteringen tar längre tid, till exempel att replikera en stor databas.

Beroende på vilket testramverk som väljs, kan det även tillkomma underhåll av ramverket som testerna körs med. Till detta kommer också underhåll av egna bibliotek av gemensamma funktioner.

Val av verktyg

Valet av verktyg beror mycket på behov och budget och dessutom på vilka förväntningar som finns för automatiseringen. Det finns en mängd olika verktyg på marknaden, allt ifrån omfattande verktyg som tillhandahåller stöd för stora datavolymer och ger stöd för stora organisationer, till produkter som är öppen källkod och som ofta är specialiserade på någon delmängd inom automatiseringsområdet.

Det är klokt att väga in hur valet av verktyg påverkar utvecklingsprocessen, eftersom införande av ett verktyg ofta medför ett större mått av struktur och standardisering. I en organisation där arbetet i dag utförs ostrukturerat, kan formalism och struktur upplevas som positivt. Om organisationen å andra sidan har en fungerande process kan införandet av struktur kännas som ett hinder eller en begränsning.

Införande av verktyg

Vid införande finns det några vanliga ”sanningar” om hur det ska gå till. Jag rekommenderar att de personer som utför de manuella testerna involveras för att skapa ett förtroende för automatisering inom hela QA-organisationen. På detta vis kan man få testarna att se ett införande av automatisering som en utmaning och något som i slutänden innebär vinster, t ex att testarna får möjlighet att utföra mer kreativa tester.

En viktig framgångsfaktor är att planera testerna gemensamt för manuella och automatiserade tester för att hitta en optimal fördelning av testfall. Tänk även på att automatisering av tester inte ersätter manuella tester utan bör ses som ett komplement. Börja smått och låt den automatiserade delen öka gradvis. Automatiserade testfall kräver planerad tid för underhåll för att alltid vara aktuella.

Använd mätetal

Etablera mätetal för testerna redan innan automatiseringen startar så att det finns en utgångspunkt. Frågor som mätetalen bör kunna besvara:

  • Tidsåtgång för exekvering jämfört med manuellt (räkna även in tid för analys).
  • Testtäckning för automatiserat jämfört med manuellt.
  • Kostnad för automatisering jämfört med manuellt.
  • Andel testfall som är möjliga att automatisera.
  • Funna defekter som endast kan hittas via automatisering (responstid, prestanda etc).

Många mätetal går att automatisera och detta medför även att delar av rapporteringen underlättas. Exempel på mätetal som lämpar sig att automatisera:

  • Kodtäckning
  • Procent hittade fel

Eftersom mätetal även används i vidare sammanhang, hänvisar jag till en separat artikel i Faktabanken om mätetal: ”Använd mätetal och styrtal för att bedöma testernas lönsamhet”.

Beräkning av ROI

Det är inte lönsamt att automatisera allt. Tester som utförs många gånger och som tar mycket manuell tid att utföra är ofta lämpliga att automatisera. Därför väljer många att automatisera regressionstesterna. Det är svårt att beräkna ROI (return on investment, avkastningsgrad) för automatisering. Många faktorer påverkar beräkningarna, till exempel hur mycket tid som kan tjänas in vid regressionstester och hur mycket tid som går åt för underhåll. Återkommande manuella regressionstester blir lätt slentrianmässigt utförda och automatiserade tester utförs konsekvent, därför går det att uppnå högre kvalitet på de automatiserade testerna. Exempel på olika sätt att beräkna ROI:

  • Kostnadsbaserad – Beräkning av den kostnadsbesparing som uppnås genom att automatisera en testsvit jämfört med att utföra testerna manuellt.
  • Tidsbaserad – Beräkning av tidsvinst vid automatiserad exekvering jämfört med att utföra samma testsvit manuellt.
  • Kvalitetsbaserad – Beräkning av möjlig besparing med avseende på ökad testtäckning och minskad risk för fel i produktion.

Av dessa metoder rekommenderar jag den sistnämnda. De andra beräkningarna brukar ofta leda till förväntningar som är allt ifrån svåra till omöjliga att nå.

Nästa steg

  • Boken Test och kvalitetssäkring av IT-system av Ulf Eriksson behandlar processen för att välja och införa testverktyg.

Länkar

 

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln