tisdag 16 april 2013

Efter traditionell test - en framtidsspaning

I början av 00-talet använde jag uteslutande Windows med Internet Explorer, samt ibland en iMac, för att testa webbapplikationer. För att täcka in webbläsare och operativsystem, var det i allt väsentligt det som behövdes. Ett par år senare dök Firefox upp och följdes snart av Chrome. Livet som testare blev mer komplicerat. Idag måste man som testare, förutom flera olika webbläsare och operativ på vanliga datorer, ta hänsyn till ett väldigt antal olika smartphones och surfplattor (ett år gammal data från maj 2012 visar på närmare 4000 olika kombinationer av Android-OS på olika hårdvaror!). I framtiden kommer detta att eskalera ytterligare. Vi kommer att ha betydligt fler surfbara enheter, t.ex. medialösningar, smarta TV-apparater, spelkonsoler och underhållningssystem i bilar. Våra webbapplikationer vill vi ha tillgängliga och användbara överallt. Som traditionell manuell testare blir det förstås omöjligt att testa mot alla dessa olika plattformar. En tuff utmaning för alla testorganisationer därute!

Samtidigt under dessa år har de agila utvecklingsmetoderna vuxit fram, vunnit allt mer mark och blivit allmänt vedertagna. Gemensamt för de agila metoderna är att man ser förändring och omprioritering som en normal del av utvecklingsprocessen, istället för särfall att hantera i en separat changeprocess. Traditionella teststrategier, med långa startsträckor och dedikerade testfaser fungerar dåligt i kombination med agil utveckling. Allt fler integrationer, ökad komplexitet och kortare utvecklingscykler med täta releaser är andra trender som kommer att förändra testområdet i grunden. Det blir allt svårare, att till rimliga resurser och rimlig tidplan, genomföra bra tester med traditionella testmetoder. Återigen en tuff utmaning!

Inom testvärlden har det börjat viskas om att ”traditionell test är död” och många teknikdrivna företag sätter sin tilltro till testautomatisering. Vad betyder det för testarskrået? Har traditionell test ett ”bäst före”-datum? Vad kommer då istället?

Generella tester med syfte att kontrollera uppfyllnad av funktionella krav, det som de flesta testare ägnar sig åt idag, kommer i framtiden att göras med olika tillvägagångssätt av flera olika personer på olika nivåer. Kravställare börjar exemplifiera med acceptanskriterier som utvecklarna kan luta sig mot. Utvecklarna kommer att behöva testa mera själva och även lösa en stor del av testarbetet med testautomatisering. Manuella tester kommer att göras av produktägare, kravställare, verksamhetsrepresentanter och initierade användare i alfa- och betareleaser. Utökad övervakning och loggning kommer då att vara en viktig del av felrapporteringen och insamling av fel sker till stor del automatiskt. Vanliga funktionella tester och vanlig felrapportering kommer inte att göras av heltidstestare. De personer som kallar sig ”testare”, och testar på heltid, är i framtiden betydligt mer specialiserade än idag. De ägnar sig åt olika områden där det krävs speciell erfarenhet och är ett extra stöd till utvecklingsteamen i kvalitetsarbetet. Det kan röra sig om kvalificerad testning av prestanda, säkerhet, komplexa integrationer och andra icke-funktionella områden. Det kan även röra sig om kontextdrivna utforskande tester som ett komplement till de mer generella funktionella testerna.

Den traditionella testledaren kommer att ha allt mindre betydelse i framtiden. När det inte finns några egentliga testfaser eller testresurser, finns det egentligen ingenting som testledare har att administrera. Framtidens testledare är mer av en testarkitekt som möjliggör effektiv testning genom att se över hantering av testmiljöer, testdata, testverktyg och teststrategi. Testarkitekten är också en mentor som utbildar och coachar inom test på alla nivåer. Det kan röra sig om att kvalitetssäkra krav, utvärdera risker, hjälpa utvecklare med TDD och continuous integration, stödja verksamhetsrepresentanter vid funktionella tester och kartlägga behov av testspecialister. Traditionell testledning kommer främst ha ett syfte vid omfattande systemintegrationstester med många inblandade system. I sådana sammanhang kommer nämligen de administrativa egenskaperna helt till sin rätt i arbetet att koordinera testdata, releaser och testfall.