Praktijk ervaring: Automated end-to-end testing

5 min read

Testen: een vereiste voordat je websites gaat publiceren. Je wil tenslotte weten of de meest belangrijke functionaliteiten overeind blijven staan en of het project vrij is van “bugs”. Het moet alleen niet teveel kostbare ontwikkeltijd wegsnoepen en het liefst niet door teveel mensen gedaan worden. Dus hoe pak je dit het beste aan in zo min mogelijk tijd met het beste resultaat?

Het testing framework Cypress

End-to-end testing betekent dat je een bepaalde functionaliteit van een website of app van begin tot eind test. Je doorloopt alle stappen en test of er ergens iets fout gaat. Wij zijn continue op zoek naar verbeteringen in onze processen en moedigen onze developers aan om nieuwe technologieën in te zetten. Voor end-to-end testing maakt Oberon gebruik van Cypress, een end-to-end testing framework specifiek gemaakt voor JavaScript. Hiermee kunnen wij tests schrijven die de kern functionaliteiten van een app of website volledig geautomatiseerd testen. Voor bijvoorbeeld onze partner VVV Texel hebben wij automated end-to-end testing gebruikt. Op deze website is de kern functionaliteit het zoeken en boeken van een vakantiehuisje. De test kan dus bijvoorbeeld beginnen op de homepagina, vervolgens een reisgezelschap en gewenste datums kiezen, een vakantiehuisje selecteren en alle gegevens invoeren in de checkout. Dit gebeurt allemaal volledig automatisch, razendsnel en er komt geen handmatig testwerk meer bij kijken.

Achter de schermen

Maar hoe werkt het eigenlijk? Hoe schrijven wij deze tests?

Wij maken onder andere gebruik van “Cucumber” en de “Gherkin” syntax. Dit stelt ons in staat om leesbare stappen te schrijven voor de functionaliteiten die getest moeten worden. Deze stappen zetten wij bij elkaar in scenario’s, simpelweg een volledige beschrijving van de test. Dit helpt ons om eerst in duidelijke taal neer te zetten wat er nou eigenlijk moet gebeuren in een test. En dit is eenvoudiger dan je denkt: als je naar de (pseudo)code kijkt is het praktisch een verhaal over welke handelingen er verricht worden achter de schermen. Vervolgens schrijven wij deze stappen uit in Cypress code, wat dan weer een stuk technischer in elkaar zit.

BDD example

Wat zijn de voordelen?

Het testen met Cypress levert een enorme tijdwinst op: een test draait op meerdere browsers tegelijk, denk aan Chrome, Firefox, Edge, en meerdere scenario’s achter elkaar. Als je dit handmatig laat doen is een tester hier makkelijk een dag aan kwijt, terwijl de geautomatiseerde test dit in een paar minuten doet. Daarnaast hebben wij ervoor gezorgd dat de test ook elke keer draait zodra nieuwe code, oftewel nieuwe “features” of wijzigingen aan bestaande code, gepubliceerd wordt door de developers. Mocht er iets stuk gaan, dan worden de developers hier direct van op de hoogte gebracht en kunnen wij actie ondernemen!

Conclusie

Tests draaien razendsnel op meerdere browsers tegelijk (minuten ipv uren), vangen fouten op die met handmatig testen over het hoofd kunnen worden gezien en nog wel het meest belangrijke: het geeft ons de garantie en het vertrouwen dat de projecten die wij opleveren maximaal “bug vrij” zijn. Hoe ga jij om met testing? Wil je eens brainstormen over dit onderwerp, neem dan contact met ons op. We delen onze ervaringen en aanpak graag met je!