End-to-end acceptatietesten

End-to-end testing zorgt ervoor dat je software betrouwbaar blijft in elke stap van het proces.

Een essentieel onderdeel van het waarborgen van kwaliteit is grondig testen. Testen helpt om fouten vroegtijdig op te sporen en te voorkomen dat deze in een productieomgeving terechtkomen, wat de betrouwbaarheid en veiligheid van de software verhoogt. Een manier om deze kwaliteitseisen te waarborgen is door middel van geautomatiseerde testen, waaronder end-to-end testen. Door dit uit te voeren vóór elke release, kan een release worden geblokkeerd als een van de testen faalt. Zo wordt de kwaliteit bewaakt en worden potentiële problemen vroegtijdig aangepakt.

End-to-end testen

Deze testen simuleren het gedrag van de eindgebruiker en verifiëren dat de applicatie als geheel correct functioneert. Dit omvat ook de front-end UI, back-end services, databases en zelfs externe integraties.

De tests worden uitgevoerd door een browser te starten en verschillende scenario's door te lopen, zoals een eindgebruiker dat zou doen. Dit kunnen scenario's zijn zoals inloggen, formulieren invullen, op knoppen klikken, mails controleren, tekst controleren en andere interacties die een gebruiker zou doen.

Wanneer voer je deze testen uit?

In onze workflow (OTAP-model) worden de tests automatisch gestart, zodra er wijzigingen klaar worden gezet voor de acceptatie-omgeving. Het is verplicht dat alle uitgevoerde tests succesvol worden doorlopen. Als dat niet het geval is, kan de release niet worden doorgezet.

Wanneer voer je deze testen uit?

Scope van de testen

Hoe uitgebreider deze tests zijn, des te beter de kwaliteit kan worden gegarandeerd. Het is minimaal aan te raden om de belangrijkste functionaliteiten te testen, wat natuurlijk per platform kan verschillen. Voor een vacaturesite kan dit bijvoorbeeld het solliciteren of het zoeken naar vacatures zijn, terwijl het voor een applicatie eerder draait om het invullen van een contactformulier.

De voordelen

  1. Identificatie van samenwerkingsproblemen
    Ze helpen bij het opsporen van problemen die kunnen optreden wanneer verschillende onderdelen van het systeem samenwerken. Deze problemen blijven vaak onopgemerkt bij andere vormen van automatisch testen (unit testen), waar de gehele nadruk ligt op het individueel nalopen van losse componenten.

  2. Waardevolle feedback voor ontwikkelaars
    Ze bieden ontwikkelteams essentiële feedback over hoe het systeem functioneert in een realistische omgeving, waardoor teams sneller verbeteringen kunnen doorvoeren en met meer zekerheid de algehele kwaliteit van de software kunnen verhogen.

  3. Ondersteuning bij grote en complexe updates
    Bij omvangrijke updates, zoals een framework-upgrade in Symfony, bieden deze testen houvast. Ze helpen bij het controleren van integraties die opnieuw moeten worden opgebouwd en geconfigureerd en bij het herschrijven van code. Hoewel handmatig testen nog steeds nodig kan zijn, dekken geautomatiseerde testen al een aanzienlijk deel van de mogelijke problemen af.

  4. Vermindering van risico's en verbeterde stabiliteit
    Door potentiële problemen vroegtijdig te detecteren en op te lossen, verkleinen acceptatie- en E2E-testen de kans op fouten of downtime na een release. Dit resulteert in stabielere releases en verhoogde klanttevredenheid.

  5. Documentatie van domeinkennis
    Deze tests documenteren ook domeinkennis, door vast te leggen wat er van het systeem wordt verwacht, hoe het zou moeten werken, en hoe dit wordt gecontroleerd.

  6. Efficiëntie en kostenbesparing
    Ze kunnen automatisch worden uitgevoerd vóór een release, waardoor er geen handwerk bij komt kijken.

Aandachtspunten

  1. Investering
    Hoewel de investering in End-to-End testen zich uiteindelijk altijd terugbetaalt, is het belangrijk om in het begin een solide basis neer te zetten. Dit omvat het koppelen en configureren van de onderliggende technieken en het integreren van de testen in het release protocol. De eerste tests zijn doorgaans duurder om op te zetten dan de daaropvolgende, omdat deze gebruik kunnen maken van de logica en infrastructuur die bij eerdere tests is opgebouwd.

  2. Afwijking van de werkelijke situatie
    De tests worden meestal uitgevoerd in een browser (dus ook met ondersteuning van JavaScript) om de workflows te doorlopen. Echter, de applicatie moet soms anders worden geconfigureerd voor testdoeleinden. Bijvoorbeeld, het is vaak nodig om functies zoals Google reCAPTCHA uit te schakelen tijdens het uitvoeren van de tests, omdat deze anders het testproces zouden onderbreken.

  3. Doorlooptijd voor ontwikkelaars
    Hoewel acceptatietesten automatisch draaien, moeten ontwikkelaars toch wachten tot de tests succesvol zijn voltooid. Als er bijvoorbeeld 50 tests zijn die samen 15 minuten duren, betekent dit wellicht een extra doorlooptijd voordat de release kan worden doorgezet.

Voorbeeldscenario

Download hieronder een voorbeeldscenario. Deze test beschrijft een situatie waarin een gebruiker een geneesmiddelenonderzoek zoekt met behulp van filters en zich uiteindelijk inschrijft voor deelname aan dit onderzoek.

Download PDF

Onze digital experts staan klaar voor je!

End-to-end testing zorgt ervoor dat je software betrouwbaar blijft in elke stap van het proces. Wil je meer weten of kunnen wij je helpen met het uitvoeren van een end-to-end acceptatietest? Neem contact op met Sam!

Afbeelding Sam
Contact! Let's talk!