Agil test med värmekartor

2015-06-23 Artikelbanken Test Läst 2576 gånger

I denna artikel kommer jag presentera tekniken "Värmekarta" som jag har tagit fram som stöd för planering, prioritering och visualisering av test utifrån principer från riskbaserad testning.

Bakgrund

Jag arbetade med en grupp på tio personer som arbetade i en agil miljö med kontinuerlig utveckling och testning. Testarna i den gruppen brottades med hur de skulle balansera mellan att testa det nya som utvecklades och allt i den existerande produkten som kan ha påverkats av de nya förändringarna. De hade också andra ganska vanliga utmaningar som att prioritera sitt arbete, dela upp testarbetet mellan individerna i gruppen och att synliggöra status på testningen. Tidigare hade jag arbetat med koncept från riskbaserad testning och tagit fram en kategorisering och visualisering av introducerade risker och med hjälp av dessa hanterat utmaningarna. I och med att denna grupp hade en ny utmaning så gjorde jag om konceptet lite och kom fram med vad vi kallade Värmekarta. Här kommer en förklaring om hur tekniken fungerar och används, hur den hjälper din grupp att kontinuerligt hantera planeringen och utförandet av testningen på ett riskmedvetet och effektivt sätt samt hjälper till att balansera testningen mellan en förändring i sig och eventuella följder som förändringarna introducerar i andra delar.

Värme

Värme i detta sammanhang representerar osäkerhet om hur din produkt beter sig. Varje gång produkten förändras ökar osäkerheten och varje gång produkten testas minskar osäkerheten. Detta är väldigt likt konceptet risk, men några anledningar till att använda konceptet värme i stället för risk är följande:

  1. Värme kan ackumuleras över tiden
  2. Värme behöver inte logiskt förklaras
  3. Värme är ett nytt koncept

Vad gäller ackumulering ökar osäkerheten varje gång en ändring görs. Vad gäller värme är det naturligt att tänka att det blir varmare till skillnad från risk där det är naturligare att tänka att nya risker införs. Eftersom konceptet värme är ovanligt att använda i detta sammanhang följer det inte med en massa bagage vilket bland annat tillåter att lägga till värme baserat på "det här känns inte bra". Risk däremot är starkt associerat till sannolikhet och allvarlighetsgrad vilket kan leda till situationer där osäkerheten nedvärderas på grund av att det inte är sannolikt eller så allvarligt. Med värme är det lättare att vara lite frikostigare. Om det senare visar sig att osäkerheten var överskattad innebär det bara att man sänker värmen. I och med att vi inte har så många associationer till värme vad gäller test så är det lättare att skapa sig en ny uppfattning, om konceptet kan användas.

Vad enheten Värme innebär är upp till varje grupp att komma överens om, huvudsaken är att alla involverade har samma förståelse om vad enheten innebär i termer av förändringar och testning. En bra utgångspunkt är hur lång tid det tar att testa bort värme, till exempel 3 värme testas bort under 1 timmes testning, men som sagt det är upp till varje grupp att komma överens. En annan viktig aspekt när det gäller enheten är att centralt i konceptet är att tillåta förändringar att införa värme som inte direkt testas bort, utan som kräver fler ändringar för att ge upphov till testning. Därför är det viktigt att enheten lämnar utrymme för detta. Åter igen är värmen till för att hjälpa planera vad som behövs göras nu och vad som kan göras senare. För att underlätta detta så måste det vara möjligt att ha värme på en nivå som innebär att det inte behöver testas just nu. Inom agil utveckling är Definition of Done är vanligt koncept där gruppen bestämmer vad alla menar när de säger att de är klara med uppgiften. Här är det viktigt att gruppen också lägger in hur de hanterar värme som är kvar på kartan. Det är särskilt viktigt att svara på frågan hur mycket värme får lämnas kvar och ändå anses som klart.

Kartan

Kartan representerar här en presentation och en kategorisering av din värme. Exakt hur den ser ut är inte lika viktigt som att alla medlemmar i gruppen förstår den på ungefär samma sätt. Olika grupper och olika produkter kan representeras med olika kartor. Det viktigaste är att det är tydligt för alla när en ändring är gjord, vilka delar av kartan som värme lagts till och vad det innebär att testa den delen av kartan. Det är bra att tänka på att kartan antagligen kommer behöver ändras över tiden i och med att produkten som den representerar ändras. Över tid är det också möjligt att se över valet av karta. Några varningstecken på att kartan kanske inte är helt ändamålsenlig är om gruppen kontinuerligt har diskussioner om var värme ska hamna, om det samlas mycket värme på samma del i kartan och om olika typer av förändringar typiskt genererar samma värmemönster. För att få lite inspiration till hur en karta kan se ut så följer här två olika förslag.

Matrisen

Värmekartor

En typ av karta är en tvådimensionell matris med olika kategorier i kolumner och rader. Olika kategorier som kan användas är delsystem, produkter, personas, testområden, produktområden, kundsegment med flera. Exakt vilka kategorier som används beror mycket på hur produkten ser ut samt hur gruppen vill arbeta med testningen. Det är också sannolikt att alla rutor i din matris inte är tillämpbara eftersom just den kombinationen inte är rimlig, men om det är för många sådana rutor kanske det är läge att använda andra kategorier.

I exemplet skulle värme kunna avläsas som att Produkt A i System A är väldigt varmt och behöver testas och Produkt B i System C är varmt och kan testas. Alla rutor i din matris behöver inte vara tillämpbara och det kan vara svårt att testa en ruta isolerat från övriga. Några saker att leta efter i valet av denna karta är en produkt som består av flera delsystem och som har testområden som spänner sig över flera delsystem eller om organisationen har inarbetade produkter som sträcker sig över olika delsystem. Andra aspekter som skulle kunna vara på axlarna är Personas och Produkter. Det behöver inte heller vara två dimensioner. En dimension kan vara lämplig ibland och med lite kreativ fysisk representation av kartan så kan det ibland kännas som att det behövs tre.

Systemkartan

VärmekartorSystemkartan är en representation av hur systemet ser ut, med logiska komponenter, tjänster, konsumenter och kommunikationsvägar. Kartan kan anpassas till de aspekter som är mest centrala för en given produkt och inom mjukvaruarkitektur finns det olika systemkartor att måla upp. Värmen kan här läggas till på olika delar i kartan för att representera olika saker. Om det till exempel läggs på en tjänst innebär det att tjänsten har värmen. Om det läggs på kommunikationslänken mellan en tjänst och en konsument av tjänsten innebär det att protokollet eller integrationen mellan dessa har osäkerheten i sig. Några saker att leta efter i valet av denna karta är en produkt med många integrationer mellan olika system och när gruppen redan inarbetat en systemkarta som de arbetar med i andra sammanhang. Några saker att reagera på att det kanske inte är den optimala kartan är om mycket värme hamnar i en liten del av kartan.

Exempel

För att illustrera hur användandet av en värmekarta kan se ut så följer här ett litet exempel. Gruppen består av fyra utvecklare, två testare och en produktägare och de ska tillsammans lägga till ett nytt spel till en befintlig spelplattform. Det är planerat att ta fram en första version av spelet som ska levereras, men flera funktioner av spelet är planerade att levereras i omgångar efter första leveransen. I och med att de kommer utveckla spelet iterativt samt att de kontinuerligt vill veta att befintliga spel inte omedvetet ändras och även hantera delar av spelet de utvecklat i tidigare iterationer så har de valt att använda sig av en värmekarta för att effektivt hantera dessa ändringar under tiden som de utvecklar. Eftersom produkten består av flera integrerade delsystem så har de valt att representera sin karta i en tvådimensionell matris med delsystem på ena axeln och områden på den andra axeln. Enheten värme kan beskrivas som att 1-2 är ljummet; de behöver inte testas omedelbart utan helst ska dessa bli lite varmare för att testningen ska vara effektiv. 3-4 är varmt vilket innebär att dessa kan testas på en gång, men att det är acceptabelt att vänta med dessa också. Allt över 5 är hett och ska testas så snart som möjligt. Att testa bort 5 värme tar ungefär 4 timmar.

VärmekartorI utgångsläget är kartan utan heta områden. Efter en förändring har gruppen uppdaterat "Spel A". Gruppen kommer överens om hur mycket värme som genererats med denna ändring; det sker genom att en utvecklare och en testare tillsammans diskuterar vilken ändring det gällde och vad som har gjorts i produkten. Den nya genererade värmen läggs till kartan. Två områden har nu nått kritisk hetta och de två testarna tar tag i det direkt, de delar upp dessa och tar varsitt område. De kommer också överens om att det är lämpligt att ta ett ljummet område eftersom det är väldigt associerat med ändringen i sig.

VärmekartorNär de är klara tar de bort värme från kartan. Det sker genom att de presenterar vad de testat tillsammans med produktägaren och utvecklarna i samband med att de också demonstrerar den nya funktionaliteten för produktägaren. Alla är också medvetna om att värme som genererades som en effekt av ändring är fortfarande kvar på kartan.

VärmekartorNästa ändring som görs är att "Spel B" läggs till. Först väljer hela gruppen att lägga till "Spel B" till sin karta. Eftersom det kommer ske mycket arbete i detta område och det är en stor ny del av produkten. Precis som för förra ändringen kommer de överens om hur mycket värme som ska läggas till. Denna gång har tillräckligt mycket värme genererats i ett annat område för att gruppen ska välja att lägga till en uppgift att testa även detta område utöver de två delar av kartan som genererat hetta direkt från ändringen. Och precis som tidigare tas värme bort från kartan när testningen är klar.

Efter många liknande iterationer börjar det till slut närma sig release av produkten. Gruppen lägger då till lämpliga uppgifter för att testa bort allt som är varmt, men man beslutar tillsammans med produktägaren att lämna alla ljumna områden. I samband med releasen tar man en bild av sin värmekarta så man vet var man stod inför de kommande planerade förändringarna.

Sammanfattning

Genom en visuell presentation av gruppens uppfattning om osäkerhet i produkten representerad på en lämplig karta kan gruppen balansera mellan att testa det omedelbara med det eventuellt påverkade i en produkt. Samtidigt får de hjälp att prioritera och dela upp sitt arbete och redogöra aktuell status på ett tydligt sätt. Hur kartan ser ut beror till stor del på organisationen och produkten och till en liten del på tycke och smak. Det viktiga är att alla som berörs har en gemensam förståelse för kartan, precis som för vad enheten värme innebär. Även om verktyget fungerar för att primärt prioritera och hantera uppdelningen så är det framtaget för att hjälpa till att skjuta en del av testningen framåt. Därför är det viktigt att gruppen vill och accepterar detta. Om de har en Definition of Done så är det väldigt lämpligt att där ta upp hur de hanterar uppskjutningen av testningen.

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