Na elke update van een webshop ging er iets mis in de betaalstap. Ik zette een testaanpak op die fouten vindt voordat klanten ze tegenkomen.
Dit is een voorbeeldcase. Het project is verzonnen om te laten zien hoe ik een case opbouw; mijn eigen werk volgt binnenkort.
Rol
QA engineer
Context
Opdracht voor een webshop
Fases
Testen, automatiseren
Duur
8 weken
Team
3 developers, de product owner
Tools
Robot Framework, Jira, BrowserStack
De uitdaging
De webshop bracht elke twee weken een update uit. Bijna elke keer brak er iets in de checkout: een kortingscode die niet werkte, of een betaalmethode die verdween. Klanten merkten het eerder dan het team.
Testen gebeurde met de hand, op het laatste moment, en kostte twee volle dagen per release.
Wanneer is het geslaagd?
Geen kritieke fouten meer in de checkout na een release.
Een regressietest die binnen een uur klaar is.
Bugs komen bij het team binnen met genoeg informatie om ze direct op te lossen.
Mijn bijdrage
Wat ik deed
Risicoanalyse van de checkout, samen met het team
Testplan en 64 testcases voor de belangrijkste routes
40 geautomatiseerde tests in Robot Framework die bij elke nieuwe versie draaien
Exploratieve testsessies en bugrapporten in Jira
Wat het team deed
De developers losten de bugs op en hielpen de tests in de bouwstraat te zetten
De product owner bepaalde samen met mij de prioriteit van bugs
Een collega-tester reviewde mijn testcases
Aanpak
Risico's in kaart brengen
Samen met het team bepaalde ik welke delen van de checkout het meest gebruikt worden en het vaakst kapotgaan. Daar begon het testen.
Testplan en testcases
Ik schreef 64 testcases voor de belangrijkste routes: betalen met iDEAL en creditcard, kortingscodes, verzendopties en foutmeldingen.
Automatiseren met Robot Framework
De 40 belangrijkste testcases zette ik om naar geautomatiseerde tests die bij elke nieuwe versie vanzelf draaien.
Exploratief testen
Naast de vaste tests zocht ik in korte sessies gericht naar wat niemand had bedacht, zoals een mobiele browser die het adresformulier anders invult.
Belangrijkste keuze
Welke tests automatiseer je eerst, als je niet alles tegelijk kunt doen?
Niet gekozen
Alles automatiseren wat kan. Veel dekking, maar het duurt maanden voordat het team er iets aan heeft.
Gekozen
Eerst de routes met het meeste risico: betalen, kortingscodes en verzenden.
Waarom:Uit de risicoanalyse bleek dat bijna alle fouten van het afgelopen jaar in die drie routes zaten. Door daar te beginnen, ving de eerste versie van de testset na twee weken al een echte bug.
Bewijs uit het proces
Een geanonimiseerde testcase, het bugrapport dat eruit volgde en de uitkomst van een regressierun.
TC-CHK-014Mislukt
Kortingscode op een product dat al in de aanbieding is
Voorwaarde
Er ligt een product met 20% korting in de winkelwagen.
Stappen
Ga naar de checkout.
Vul de kortingscode WELKOM10 in.
Klik op Toepassen.
Verwacht resultaat
De code wordt geweigerd, met de melding dat hij niet te combineren is met andere acties.
Werkelijk resultaat
Beide kortingen worden toegepast: de klant krijgt 30% korting.
BUG-231Ernst: hoog
Kortingscode stapelt op de aanbiedingsprijs
Omgeving
Acceptatie, versie 2.14, Chrome en Safari
Gevonden met
TC-CHK-014
Verwacht resultaat
De code wordt geweigerd, met de melding dat hij niet te combineren is met andere acties.
Werkelijk resultaat
Beide kortingen worden toegepast: de klant krijgt 30% korting.
Status
Opgelost en hertest in versie 2.15
Regressierun versie 2.15
Duur: 25 minuten
38 geslaagd
2 mislukt
Beide mislukte tests waren bekende problemen met een eigen bugrapport.
Hier komt een afbeelding: een testrapport uit Robot Framework met geslaagde en mislukte tests.
Resultaat
Wat ik opleverde
Een testplan met risicoanalyse
64 testcases, waarvan 40 geautomatiseerd in Robot Framework
23 bugrapporten en een korte handleiding om de tests zelf te draaien
Gemeten effect
25 minvoor de regressietest, in plaats van twee dagen
23bugs gevonden vóór de livegang
0kritieke fouten in de checkout na drie releases
Gemeten over de drie releases na de start van de geautomatiseerde tests, op basis van Jira en de testrapporten.
Het team brengt nu updates uit zonder angst voor de checkout, en de tests draaien automatisch mee bij elke wijziging.
Reflectie
Wat goed ging
Beginnen bij de risico's. Daardoor leverde de testset al vroeg iets op en kreeg ik het team mee.
Wat ik anders zou doen
Ik zou de testdata eerder regelen. De eerste weken faalden tests soms door een lege testomgeving in plaats van door echte bugs, en dat kostte vertrouwen.
Wat ik meeneem
Een goed bugrapport is net zo belangrijk als de bug vinden. Met duidelijke stappen, schermafbeeldingen en het verwachte gedrag losten developers fouten veel sneller op.
Een project in gedachten?
Stuur me een bericht. Ik reageer meestal binnen twee werkdagen.