1. Introduktion
Test af user stories er en kritisk aktivitet i agile udviklingsmetoder. Det sikrer, at kravene til systemet er forståelige, entydige og testbare. I modsætning til traditionelle kravspecificeringer er user stories ofte mere uformelle, hvilket kræver en struktureret tilgang til test for at minimere misforståelser og sikre funktionalitet.
Agile teams arbejder iterativt og inkrementelt, hvilket betyder, at test af user stories sker kontinuerligt gennem udviklingsprocessen. Testerne spiller en aktiv rolle i at analysere user stories, definere testcases og samarbejde tæt med udviklere og produktejere for at forbedre kvaliteten.
2. Formål med at teste user stories
Formålet med at teste user stories er:
- At validere forståelsen af kravet – Sikre, at alle teammedlemmer har en fælles forståelse af, hvad der skal udvikles.
- At identificere manglende eller uklare acceptancekriterier – Testning afslører huller i kravene og mulige edge cases.
- At verificere funktionalitet – Sikre, at implementeringen stemmer overens med kravene.
- At understøtte automatisering – Tidlig testdesign gør det nemmere at implementere automatiserede tests.
- At reducere fejl senere i udviklingsforløbet – Jo tidligere fejl opdages, jo billigere er de at rette.
3. Forudsætninger for test af user stories
For at kunne teste user stories effektivt skal følgende forudsætninger være opfyldt:
a) Kvaliteten af user stories
En god user story bør følge INVEST-kriterierne:
- Independent (Uafhængig): Skal kunne udvikles og testes isoleret.
- Negotiable (Forhandlingsbar): Ikke en kontrakt, men et udgangspunkt for dialog.
- Valuable (Værdiskabende): Skal give værdi for brugeren.
- Estimable (Estimerbar): Skal kunne vurderes ift. udvikling og test.
- Small (Lille): Skal kunne implementeres i én iteration.
- Testable (Testbar): Skal have klare acceptancekriterier.
b) Acceptancekriterier
Acceptancekriterier er afgørende for test af user stories, da de definerer de betingelser, der skal være opfyldt, for at en user story kan betragtes som færdig. De bør være:
- Specifikke: Tydelige og præcise.
- Målbare: Kan verificeres via test.
- Forståelige: Letforståelige for både forretning og teknik.
c) Samarbejde mellem roller
Effektiv test af user stories kræver tæt samarbejde mellem udviklere, testere og produktejere. En fælles forståelse skabes ofte gennem Three Amigos-møder, hvor disse tre roller gennemgår og diskuterer user stories.
4. Fremgangsmåde
a) Gennemgang af user story
- Gennemlæs user story og acceptancekriterier.
- Identificér manglende informationer eller uklare krav.
- Identificér edge cases og risikoområder.
b) Definering af testcases
- Funktionelle tests: Sikrer, at funktionaliteten virker som forventet.
- Negative tests: Tester uventede input og fejlscenarier.
- Non-funktionelle tests: Test af ydeevne, brugervenlighed og sikkerhed.
- Testteknikker:
- Ekvivalenspartitionering: Opdeling af input i grupper med samme adfærd.
- Grænseværdianalyse: Test af værdier tæt på grænserne.
- Beslutningstabeller: Test af komplekse logiske sammenhænge.
- Exploratory testing: Ad hoc test for at opdage uventede fejl.
c) Testafvikling
- Testcases udføres manuelt eller automatiseres.
- Fejlrapportering sker med detaljerede beskrivelser af fundne problemer.
- Regressionstests sikrer, at ændringer ikke bryder eksisterende funktionalitet.
d) Automatisering
- Automatiserede tests kan dække regressionstest af user stories.
- Testframeworks som Selenium, Cypress eller Playwright kan bruges til UI-test.
- Unit tests i udviklerens kodebase kan hjælpe med at validere logik.
e) Feedback og iteration
- Testresultater deles med udviklingsteamet.
- User stories opdateres efter behov for at afspejle nye læringer.
5. Stærke og svage sider
Stærke sider:
- Tidlig validering: Tester krav, før de udvikles.
- Forbedret samarbejde: Styrker dialogen mellem udvikling, test og forretning.
- Mere præcise krav: Acceptancekriterier bliver mere skarpe.
- Automatiseringsvenlig tilgang: Strukturerede tests kan let automatiseres.
Svage sider:
- Afhængig af gode acceptancekriterier: Dårligt definerede user stories giver uklare tests.
- Kan være tidskrævende: Test af user stories kræver grundig analyse.
- For mange små stories kan skabe overhead: Hvis user stories opdeles for meget, kan det give mere testarbejde end nødvendigt.
6. Eksempler på test af user stories
Eksempel 1: Test af login user story
User Story:
Som bruger vil jeg kunne logge ind med mit brugernavn og password, så jeg kan få adgang til mine personlige data.
Acceptancekriterier:
- Brugeren skal kunne logge ind med et gyldigt brugernavn og password.
- Brugeren skal få en fejlmeddelelse ved forkert brugernavn eller password.
- Efter 5 fejlede loginforsøg skal kontoen låses i 5 minutter.
Testcases:
- Log ind med gyldige credentials (positiv test).
- Log ind med ugyldigt brugernavn eller password (negativ test).
- Forsøg at logge ind 5 gange med forkerte credentials og verificér låsning.
Eksempel 2: Test af en søgefunktion
User Story:
Som bruger vil jeg kunne søge efter produkter i en webshop, så jeg kan finde det, jeg leder efter.
Acceptancekriterier:
- Brugeren kan søge ved at indtaste søgeord i søgefeltet.
- Systemet viser produkter, der matcher søgeordet.
- Systemet viser en besked, hvis ingen produkter findes.
- Systemet skal kunne håndtere store datamængder effektivt.
Testcases:
- Søgning med et gyldigt søgeord.
- Søgning med et ugyldigt søgeord (ingen resultater).
- Søgning med specialtegn.
- Søgning med store datamængder for at teste performance.
7. Afslutning
Test af user stories er afgørende for at sikre software af høj kvalitet i agile projekter. Ved at bruge strukturerede testteknikker og tæt samarbejde med udviklingsteamet kan testere hjælpe med at identificere fejl tidligt og forbedre kravspecificeringen.
For at få mest muligt ud af test af user stories bør teams fokusere på klare acceptancekriterier, automatisering og løbende feedback. Dette fører til mere præcise krav, færre fejl og et bedre slutprodukt.
Ingen kommentarer:
Send en kommentar