Testare är vi allihopa!

Detta är historien om hur vi förändrade vår testprocess. Hur vi som team tog gemensamt ansvar från första kodrad till att vår kod har nått ut i produktionssystemet. Hur vi blev testare allihopa!

När jag började som testare i mitt team för ca 3 år sedan hade vi en release och regressionstestcykel på nästan 4 veckor. Vi jobbade enligt Scrum så det innebar att vi testade, utvecklade parallellt i ca 4 veckors iterationer och efter 2-3 iterationer var det dags att släppa ut nästa release till produktionssystemet. Då hade vi vad vi skulle kunna kalla en testskuld som vi var tvungna att arbeta bort. Denna testskuld bestod t.ex. av att vi inte hade regressionstestat hela systemet under varje iteration och att vi inte haft möjlighet att göra lasttester. Funktionstesterna av de nya funktionerna hade vi dock gjort tillsammans inom teamet i varje iteration. Att arbeta bort denna testskuld tog ungefär 4 veckor. Detta var testarnas arbete och testare från varje team hjälptes åt.

Problemet som uppstod varje gång vi skulle ha release var att alla testare var upptagna med allt arbete som releasen innebar medan alla utvecklare fortsatte utvecklingsarbetet inom varje Scrum team med nästa funktion. Detta gjorde att testarna hamnade efter i utvecklingsarbetet mer och mer. Ett vanligt problem som jag upplevt på flera arbetsplatser. Vi prövade olika metoder för att komma åt detta problem. T.ex. att bara vissa testare arbetade med releasen medan andra stannade i sina team för att hålla jämn takt med övriga. Ingenting fungerade dock speciellt bra.

För ca ett års sedan bestämde vi oss för att en gång för alla ändra på detta. Varför skall bara testarna vara involverade i releaseprocessen? Hela teamet borde känna ansvar för att det som vi tillsammans har utvecklat faktiskt når vårt produktionssystem. Med detta som grundtanke bestämde vi oss för att ändra på vårt arbetssätt. Vid denna tidpunkt hade alla team gått över från att arbeta i iterationer till att istället försöka visualisera sitt arbetsflöde på en Kanban tavla. Vi gjorde helt enkelt så att när vår produktägare tyckte att vi hade tillräckligt många färdiga user stories så bestämde han att nu är det dags för en release. Alla team som då hade något som var färdigt och incheckat blev involverade i releaseprocessen. Det innebar att vi kunde ha allt från ett till fyra team som var involverade i varje release. Vi hade fortfarande denna testskuld att ta hand om men istället för 1-2 testare från varje team var vi nu ca 5-20 personer som tillsammans kunde hjälpas åt.

Testarna ansvarade för att ta fram en teststrategi för releasetestningen. Göra en riskbedömning och avvägning av vilka testfall som skulle köras och vilka delar som skulle få extra testning. Tillsammans identifierade vi alla uppgifter som behövde göras i releasefasen. Testfall och uppgifter skrev vi sedan ner på vita kort som kunde sättas upp på tavlan. Alla involverade team bildade sedan ett stort releaseteam. Tillsammans estimerade vi varje uppgift och kunde sedan leverera ett estimat till vår produktägare på när vi trodde att vi skulle vara klara med allt releasearbete.

Sedan kickade vi igång arbetet. Det visade sig att väldigt många uppgifter som vi gjorde i release och regressionstestfasen gick att parallellisera. Många saker var enkla men kunde ta lång tid. Som t.ex. installera och pröva vår klient på flera olika operativsystem och browserversioner. I början var det såklart inte helt lätt för alla. Som utvecklare kan man vara specialiserad på en viss del eller funktion i systemet och kanske inte ha kunskap om helheten. Detta gav upphov till en del missnöjda miner i början. Något som är självklart för en testare är såklart inte alltid självklart för en utvecklare. Men med tiden så lärde vi oss och började bli vana. Vi prövade olika tekniker för att visualisera vår progress. Både Jira, wiki och vår tavla. Tillslut landade vi på att tavlan nog ändå var bäst för oss. Torts att det medförde lite svårare för våra kollegor i utlandet att se vår progress (2 av teamen sitter utanför Sveriges gränser).

Nu ett år senare kan vi konstatera att vi mer än halverat vår release och regressionstestningstid. Vi har fortfarande en testskuld men vi har minskat den. Vanligtvis klarar teamen av att gå från att checka in och testa de sista delarna av en User Story till att vara klara för produktionssättning på en vecka. Det tar sällan mer än två. Vi har lyckats sprida kunskaperna om systemet inom hela gruppen. Alla kan nu installera ett nytt bygge i testmiljön. Testarna känner inte att de hamnar på efterkälken utan kan fokusera på samma saker som utvecklarna. Vi har blivit testare allihopa!

Therése Ressel
IGT Interactive

About Therese Janlén Ressel

Therése har mer än 8 års erfarenhet av testning i roller som testare, testledare och testchef. De senaste två åren även som Scrum Master. Therése brinner för agil testning och de utmaningar som testare ställs inför i agila projekt.