Det är viktigt att som testare träna på sin förmåga att ifrågasätta och utreda för att utvecklas i sin specialitet. Jag försöker ta varje chans att öva och sedan reflektera, ett viktigt steg för att tillgodogöra sig kunskapen. Häromdagen föll en uppgift i mitt knä att testa en serverloggläsare. All info jag hade till förfogande var en rosa post-it på vilken det stod att läsa:
IDÉ: Sida att läsa loggfiler på. PK
Så, hur skulle jag testa detta? Jag ville ju kunna flytta den rosa post-it lappen från min rad på scrum-tavlan, redo för test, till den mer befriande raden klar inom rimlig tid för att hinna med även de andra rosa lapparna och sedan de övriga 3 projekten. Pressad tidsram alltså..
Nummer 1 var uppenbarligen att ta reda på vem som byggt funktionen och var jag kunde hitta den. Lyckligvis betyder initialerna PK någonting för mig eftersom jag varit involverad i projektet och jag kunde enkelt få en URL på testmiljön där funktionen fanns.
Så vidare till steg nummer två i ordningen! Ta reda på tillräckligt med information om funktionen för att kunna skapa vettiga testfall. Tillräckligt med information är visserligen subjektivt och kräver lite erfarenhet för att kunna avgränsa. Men hade jag siktat på all information om funktionen hade jag inte kommit till något testande inom rimlig tid. Det smidigaste sättet ansåg jag vara att besöka URL:en, klämma på funktionen, utvärdera och sedan ställa frågor till skaparen.
Funktionen visade sig inte vara så avancerad och den snabba utvärderingen lämnade mig vid slutsatsen funktionen för att ställa i vilket datumintervall data skulle hämtas från var den mest logikberoende och därmed känsligaste delen av funktionen.
Efter lite dividerande med PK om hur dagens datum räknades ut och därigenom vilket år som skulle visas kröp det fram att han gjorde lite egna beräkningar och inte kunde säga att han var helt säker på att det fungerade. Han hade alltså inte testat det ordentligt!
Med uppspelta steg tog vi sikte på hans dator för att börja leka med serverns klocka för att på det viset kunna utföra tester.
Vi började med att ställa om året till 2009 – inga konstigheter – därefter provades ett senare datum 2009 – inga konstigheter – sedan provade vi ett datum tidigt 2010 – inga konstigheter.. eller?!
Jag insåg plötsligt att vi inte tittade på hela intervallet! Data skulle visas från angivet datum till ett slutdatum… men ingenting visades. Servern datum var 2010-01-01 och datumintervallet sa 2010-01-01 – 2010-12-31. Vi visste att det fanns data för den senaste månaden i databasen, det hade vi sett. Rimligtvis borde det datat visas i listan?
Bugg!!
Det är en bra känsla att hitta en bugg på det här viset och det kändes som ett skolboksexempel på snabb, utforskande testning där jag fick använda
- utforskande för att skapa mig en modell av funktionen
- erfarenhet för att avgränsa testinsatsen och hitta troliga felkällor, riskområden
- utforma testfall genom fantasifullhet och testkunskap
- uppmärksamt iakttagande för att se buggen när den visade sig
Testning när det är som roligast! Och skaparen gav mig faktiskt en hi5 för insatsen