Agil testning – en aktivitet

Det finns många olika definitioner om vad agil testning är för något men samtidigt är det sällan man får ett svar som känns tillfredställande. För mig är det viktigt att skilja på test och agil testning. för mig är agil testning en aktivitet som kan utföras av alla, på olika sätt i alla led. För att utveckla begreppet agil testning så måste vi börja med att undersöka vad vi menar med agilt och vad vi menar med test.

Jag försöker se agilt som en ideologi, ett sätt att leva efter när man arbetar med mjukvaruutveckling. En del vill använda begreppet mindset eller kanske filosofi men jag tycker att ideologi passar bättre.

Ideologi är en samling idéer som utgör ens mål, förväntningar och handlingar. Ideologi är en vision oftast en utopi och ett system för ens abstrakta tankar att appliceras på det vardagliga rummet. Att vara anhängare av en ideologi betyder alltså att man accepterar dess verklighetsbeskrivning, delar dess grundläggande värderingar och stöder dess handlingsprogram.

Agilt är ett ramverk med riktlinjer i form av värderingar och grundprinciper. Det är själva tanken med det agila, det vill säga agilt är inte syftet utan ett stöd för att uppnå de värderingar som finns i manifestet. Scrum, Kanban och XP är handfasta metoder för att realisera den abstrakta agila tanken för att uppnå målet i praktiken. Exempelvis är inte Scrum agilt förrän den agila ideologin finns i organisationen. Innan du lyckats införa detta tankesätt så är dessa agila verktyg enligt mig bara en nerbantad projektmetod.

Nästa steg är att definiera vad begreppet test är. Test kan ha många betydelser och tolkningar. Exempelvis finns det en rad olika typer av test: integrationstest, systemtest, prestandatest, automatiserad test. Det finns även en rad olika faser, så som acceptanstestning på det har vi olika roller som testledare, funktionella testare, testare, testanalytiker, testautomatiserare etc. Så vad är test, eller snarare vad är test i din organisation och vad vill ni att test ska vara?

Då det finns så många olika tolkningar av begreppet test så har jag valt en mer generell beskrivning. Syftet med test är att säkerställa och/eller höja kvalitén på det som utvecklas. Test är inte en roll, person eller en fas i ett projekt. Det går inte att testa in kvalitet men det går inte heller att veta vilken kvalitet man har utan test.

Idén att utgå från test som en aktivitet är en bra början. Jag tror själv att det behövs testare i ett agilt arbetssätt även om rollen kanske inte är en klassik definition av en testare (vad det nu är). Inom agilt så är test så pass viktig att man inte boxar in den i en projektfas eller lägger ansvaret hos en specifik person eller grupp. Test är något som genomförs av alla i teamet på olika sätt, agil testning är en aktiveter som görs kontinuerligt på olika nivåer med olika tekniker av olika personer.

Testning kan vara många olika saker och här är några exempel på testaktiviteter:

  • Kravgranskning
  • Parprogrammering
  • Kodgranskning
  • Kontinuerliga byggen
  • Refaktorering
  • Användarberättelser
  • Riskplanering
  • BDD
  • TDD
  • Kodstandard

De skickligaste programmerarna som jag arbetat med har lagt stor vikt på att försöka skapa kvalité genom att testa in egen kod på olika sätt där parprogrammering, kodgranskning, TDD, automatisera regressionstestning, granska kravspecifikationer, utveckla lite i taget är några testtekniker som används. Min roll i teamet har istället varit att skapa acceptanskriterier, hjälpa till att lokalisera riskområden, informera om vanliga fallgropar och ta användarnas perspektiv.

Alla tekniker ovan är testtekniker, att parprogrammera är en sätt att testa koden, inte bara skriva koden. En agil testare ser kvalitet i ett större perspektiv. En testare kan oftast se helheten och ta användarens perspektiv på ett sätt som inte alla programmerare alltid klarar av eller vill göra. En agil testare fokuserar på att både stödja programmerarna med test som att vidareutbilda organisationen inom kvalitetssäkring. Genom att coacha, utbilda och stödja övriga i teamet behöver inte test blir en trång sektor, test kommer istället bli en aktivitet som alla känner ansvar för att utföra.

En agil testare ska arbeta för att se till att medvetenheten runt kvalitet och test höjs i alla led. Att alla förstår sitt ansvar i att leverera kvalitetssäkrad kod utifrån de krav som organisationen ställer, de krav som intressenterna ställer och de krav som marknaden ställer.

När du börjar se testning på detta sätt och börjar leva efter den agila ideologin så tror jag att du närmar dig vad Agil testning bör vara enligt min definition.

 

 – Jagannath Tammeleht, OnTrax AB

About Jagge

IT - Konsult hos Claremont – Partner, styrelseledamot och bloggare på TestZonen - Styrelseledamot i SAST - Utbildare för Röda korset For more information contact me on linkedin.com/in/jagge