Testautomatisering i agila projekt

2009-10-05 Artikelbanken Test Läst 9437 gånger

I agila projekt kan testautomatisering vara svårt att bemästra och här handlar det om att se det som en uppgift där hela teamet kan vara delaktigt. I det agila teamet gäller det att hitta rätt mix av samspel och kommunikation mellan utvecklare och mer QA-inriktade individer. Det finns olika typer av uppgifter att utföra som gynnas av olika typer av kompetens och samarbete. När man betraktar hur testarbetet ska fördelas, är det viktigt att först veta vad som är en lämplig fördelning mellan olika typer av tester inom ett agilt projekt.

I bilden representerar storleken på kugghjulen mängden tester av varje kategori och vilken kompetens som är lämplig.

Enhetstester

Enhetstester byggs oftast av utvecklarna och skall gå snabbt att exekvera så att de kan genomlöpas vid varje bygge. Dessa tester är i huvudsak isolerade tester som testar och definierar små delar av funktionalitet och inte är beroende av några externa system eller filer. Enhetstesterna ska verifiera att systemet är byggt på rätt sätt. Denna kategori av automatiserade tester är idealt de flesta till antalet.

Funktionella tester som komponent-, integrations- och acceptanstester

Funktionella tester som komponent, integrations- och acceptanstester syftar till tester som testar att rätt funktion är byggd och beskrivs utifrån affärsregler eller krav. Dessa tester tar hänsyn till hela funktioner och/eller integrationer mellan delar. Modellbaserad testning och acceptansramverk är exempel på metoder som stödjer automatisering av dessa tester.

I modellbaserad testning bygger testaren grafiska modeller som representerar flöden som senare kan exekveras mot systemet som skall testas. Modellerna är i många fall återanvändbara då dessa inte innehåller information om implementationen. Till exempel kan delar av en modell utgöra grunden för nästa modell eller så finns ett flöde i flera delar av systemet och kan byggas som en submodell som används på många platser.

Acceptansramverk som till exempel Fit/FitNesse används för att beskriva flöden och regler som sedan kan användas för automatisering. Precis som för modellbaserad testning är testfallen i ett acceptansramverk ofta återanvändbara. Båda dessa metoder ger ytterligare en fördel då testerna beskriver krav och affärsregler på en nivå så att det inbjuder till kommunikation mellan kravställare, utvecklare och testare. Alla kan förstå och vara delaktiga. Denna nivå av tester ska visa att det är ”rätt system” som utvecklats. Med dessa testfall är det även möjligt att skapa en grund för automatiserade tester för användargränssnitt. I detta fall kan ett gränssnitt bestå av till exempel en kommandorad eller en webbsida.

Automatiserade UI-tester

Test av användargränssnitt testar det användargränssnitt som tas fram. Tyvärr är dessa tester dock oftast långsamma och passar bäst att köra över natten. För att skapa automatiserade tester för användargränssnitt används oftast någon form av inspelnings- och uppspelningsverktyg. Beroende på vilket verktyg som används måste olika strategier användas. Vanligtvis är det en god strategi att ta fram gemensamma bibliotek av funktioner som mappar mot användargränssnittet för att skapa testfall som är hållbara i längden. Denna strategi förenklar underhåll. En del av verktygen är även användbara för att skapa tester för användargränssnitt på enhetstestnivån. Dessa kan med fördel köras exempelvis varje natt.

Manuella tester

Automatiserade tester bör kompletteras med utforskande tester för att kunna hitta mer komplicerade problem som det inte lönar sig att skapa automatiserade tester för. Till de utforskande testerna kan man gärna ta hjälp av de verktyg som används för UI-tester för att skapa delautomatiseringar som snabbar upp processen att starta vid rätt läge.

Förbättra hela processen

Vidare i ett agilt projekt så är det viktigt att inte enbart automatisera testerna utan även på att snabba upp andra delar av utvecklings- och testprocessen med små automatiseringspaket som kan utföra andra uppgifter som vanligvis utförs manuellt. Dessa lite mindre uppgifter kan i många fall automatiseras av i stort sett vilken individ som helst men ofta brukar det handla om att skapa egna verktyg eller att hitta ett externt verktyg. Exempel på sådana aktiviteter som kan automatiseras: insamling och preparering av testdata, framställning/generering av testfall, installation, konfigurering, rapportering och dokumentation.

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