Genom hela mitt yrkesliv som testare har jag nästan uteslutande i varje projekt blivit tillsagd att vi skall testa så tidigt som möjligt, för att sedan om och om igen bli den funktion som är satt sist i utvecklingsprocessen och som får tumma på scopet och kvalitén på testningen. Det är endast inom den agila världen som man blir en mer central funktion, men även här, aldrig en primär. Aldrig den som går först!
Min åsikt är att den viktigaste och dyraste delen av en levererad produkt är kraven. Det är dessa som man förhoppningsvis skriver ner först, använder för att producera en produkt och använder för att se att samma produkt levererar korrekt beteende.
Varför då inte börja med att kombinera framtagandet av krav med strukturbaserad testning?
En sådan kombination lämpar sig väl för funktionella krav och leder i sin tur till en bättre förståelse för den sammansatta kravbilden samt verifierade och mer sammanhängande krav. Utvecklare och testare kan nu starta sina aktiviteter med vetskapen om att grunden för deras fortsatta arbete är rätt. Vi vet ju alla att det är både snabbare och billigare att göra rätt från början. Modellbaserad testning (MBT) skapar dessa förutsättningarna.
MBT inför en bra grund genom ett standardiserat sätt att verifiera att kraven fungerar tillsammans, är kompletta och går att verifiera. Metodiken ger även möjlighet till att automatiskt skapa testfall och i sin förlängning automatiserade testfall för alla verifierade och modellerade krav som man tagit fram.
Vikten av detta kan även synligöras i att testningen kommer ligga i fas med utvecklingen, istället för att komma i andrahand, som det så lätt blir när man fortlöpande måste designa och skriva testfall för de krav som implementeras.
Med MBT har man möjligheten att automatisera de kravsamband som är verifierade manuellt, generera manuella testfall för ny funktionalitet samt exekvera automatiskt genererade regressionssviter som verifierar tidigare implementerad funktionalitet.
Jag skulle vilja se ett projekt som tar till sig vetskapen om att det är kraven som skall komma i första hand, prioriterar kravkvalitet genom MBT och på så sätt kan testa sin produkt redan innan den finns. Detta är vad min erfarenhet säger mig är det starkaste kortet för framtiden av säkrare leverans av slutprodukter som blir det man faktiskt hade för avsikt att producera.
Kan du ge ett exempel på hur man gör MBT ?
Kan ju börja med att säga att det inte bara finns ett korrekt sätt att göra MBT på. Men i grund och botten handlar det oftast om att kunna bryta ner dina krav till sekvenser av verifierbara tillstånd som i sin tur binds samman av de olika händelser som påverkar ditt system. När du väl kartlagt dessa kravsamband, med eller utan ett verktyg till din hjälp, kan du skapa testfall, hitta luckor i kraven och så vidare.
Personligen lutar jag mot att använda verktyg som gör det möjligt för mig att snabbt anpassa mitt test scope till problemområden eller specifika krav med högre estimerad risk.