fredag 27 juli 2012

JAM & ACT - precis som i källarbandet


Jag har valt förkortningarna JAM och ACT till min testprocess eftersom de påminner om all tid som jag tillbringat i att spela i olika källarband. I den norrländska småstaden där jag är uppväxt fanns det inte så mycket att göra under tonårstiden och utbudet begränsades i stort till att spela hockey eller i rockband. Den mesta tiden höll man till i replokalen och jammade tillsammans. Vi hade väldigt kul medan vi prövade nya sånger och riff. Det gjorde ingenting om ett gitarrsolo blev för utdraget eller om vi hamnade i otakt. Allt var tillåtet och vi kände att vi kunde göra misstag för att lära oss.

Helt annorlunda var de få gånger som vi fick uppträda framför publik. Det var inga större spelningar utan oftast bara inför de närmaste kompisarna på folkparken eller för gamlingarna på pensionärshemmet. Vid dessa tillfällen måste allt vara perfekt. Vi behövde veta vad vi höll på med och prestera på topp för annars riskerade vi att göra bort oss.

Samma känsla försöker jag införa i mina testteam. Det finns tillfällen att lära, öva och förfina. Det finns också tillfällen då det inte finns utrymme för misstag och då testeamet ska prestera på toppen av sin förmåga. Precis som ett källarband har testeamet sin korta tid i rampljuset.   

torsdag 26 juli 2012

Presentation at Testingforum, Copenhagen

I will talk at Testingforum in Copenhagen, September 26th. The conference is arranged by FYI and the topics are agile, test automation and the economics in testing. I'll present a concrete example of my JAM & ACT-method. The presentation is called "From backlog to production in two weeks".

Hope to see you there...

Presentation på Testingforum, Stockholm

Jag kommer att tala på Testingforum i Stockholm, 28e augusti. Konferensen arrangeras av Talentum och handlar om agile, säkerhet och användartester. Min presentation är om fyra hörnstenar i agil testning: testare i teamet, context driven, testautomatisering och continuous integration.

Hoppas vi ses där...

onsdag 25 juli 2012

JAM & ACT

Den här blogposten handlar om min JAM/ACT-metod  för systemtester i agila utvecklingsteam. Målet med JAM/ACT är att kunna utföra old-school systemtester men samtidig stödja proaktiv agilt testning. Denna dualitet representeras av två kompletterande testnivåer, ”Joint Agile Mode” (JAM) och ”Agile Contol Test” (ACT), som utförs i varje utvecklingscykel. Resultatet är en agil testmetod men med kontrollen hos traditionella systemtester.
Det här är hur JAM och ACT kopplas till utvecklingscykeln. Enskilda utvecklingsaktiviteter verifieras i frekventa releaser under JAM. ACT sker under en kort kodfrys i slutet. Det är viktigt med återkoppling mellan utvecklare och testare under hela processen.
Joint Agile Mode genomförs parallellt med utveckling. JAM startar så snart som det finns färdiga utvecklingsaktiviteter att verifiera (i den agila världen är något ofta klart redan under den första utvecklingsdagen). JAM slutar när alla planerade utvecklingsaktiviteter är klara, har testats och en potentiell releasekandidat är färdig.

Det övergripande målet med JAM är att starta testandet tidigt och att arbeta tillsammans med utvecklarna med att öka systemkvalité redan tidigt under utveckling. En sidoeffekt är att testarna får gott om tid att bekanta sig med systemlösningen, testmiljöerna, -data, -verktyg. Fokus är att testa isolerade utvecklingsaktiviteter så snart som de har färdigställt av utvecklarna. Ofta tar det tid innan tillräckligt med funktionalitet har levererats för att uppfylla ett komplett testfall. Men när testfallet väl kan köras finns det stora chanser att det går vägen om alla ingående utvecklingsaktivteter har testats tidigare.


Tester under JAM är typiskt utforskande med lite dokumentation. Felaktigheter kommuniceras direkt till utvecklarna istället för via komplicerade ärendehanteringssystem. Systemlösningen är ju under utveckling och därför kan man tillåta sig att vara informell.


En annan egenskap hos JAM är hur testerna kan experimentera med systemlösningen. Det finns tid för kreativitet och att lära sig om systemet. Låt testare och utvecklare diskutera implementation tillsammans. Det ger värdefulla insikter om varandras arbeten, potentiella svagheter och enar teamet.


När det inte finns utvecklingsaktiviteter att testa så kan testarna arbeta med testfall, testautomatisering, förbättringar i testmiljöerna, -data, -verktyg inför ACT-nivån.


Agile Contol Test är ett kondenserat och mycket effektivt systemtest. Det övergripande målet är genomgående test av en potentiell releasekandidat och informera om systemlösningens kvalité. ACT påminner mycket om ett vanligt systemtest men det skiljer i den korta genomförandetiden. ACT görs i slutet av utveckingscykeln alldeles innan leverans. Utvecklingsteamet behöver så många dagar som möjligt för att implementera funktioner. Därför är det inte mycket tid kvar för ostörda systemtester. ACT påbörjas när det finns en potentiell releasekandidat. Teamet signalerar kodfrys då alla funktioner är utvecklade och inga förändringar, förutom buggrättningar, får förekomma. Eftersom alla utvecklingsaktiviteter har testats under JAM så kan vi förvänta oss att systemet är i hyfsat bra skick.


ACT är mer formellt än JAM. Tester görs utifrån förberedda testfall och krav. Testfallen kan vara väldigt enkla och i formen av checklistor för testtäckning. Fel rapporteras mer formellt än under JAM och på en form som underlättare för utvecklare att fokusera på rättningar och för testarna på uppföljning och rapportering. Testrapportering görs i en enkel rapport eller muntligen på sprintdemo eller ”go/no go”-möte. 


Med den korta tiden tillänglig för ACT är det viktigt att ha gjort alla förberedelser. Testmiljö, -data, -verktyg ska finnas redo. Testarna ska veta hur alla funktioner ska testas. Processer för fel- och releasehantering ska finnas på plats. Under ACT är testerna mycket tajtare och prestigefulla än under JAM. Från testarnas synvinkel är det här man ska arbeta på toppen av sin förmåga. Alla vet att det snart är uppenbart om det blir succé eller fiasko. Eftersom ACT är ganska kort så kan alla (testare, utvecklare, kravställare och projektledare) fokusera på systemkvalité.
 
Jam, JAM, jam, Jam, JAM, JAM, jam, jam, jam, jAm, JAM, jaM, jam, jam, jam…
ACT!!!
  • Start testing early and get experienced about the system
  • Testing of isolated development activities
  • Exploratory testing
  • Write test stories and work on test automation, test environments/-tools/-data
  • Experimental, teaching, informal, improves quality, forgiving, unites the team, funny
  • Goals is to test the software thoroughly to evaluate quality
  • Run prepared tests stories and report errors
  • Competitive, prestigious, perfection, tight, “on top of our feet – eyes are on you”