Een end-to-end-test, vaak afgekort tot e2e, controleert een complete gebruikersreis door je software, van de eerste klik tot het eindresultaat. In plaats van één functie los te testen, bevestigt hij dat de front-end, de back-end, de database en eventuele externe diensten allemaal samenwerken zoals een echte klant nodig heeft.
Stel je voor dat je een auto een proefrit geeft in plaats van de onderdelen los op een werkbank te keuren. Je kunt de motor, remmen en besturing apart checken, maar pas een rondje om het blok bewijst dat ze echt samen werken. Een end-to-end-test is dat rondje. Hij vult een kleinere unittest en een integratietest op middenniveau aan, die elk weer andere soorten problemen opvangen voordat je gebruikers ze vinden.
De meeste teams automatiseren deze met tools die een echte browser aansturen, op knoppen klikken en formulieren invullen precies zoals een mens dat doet. Als een afrekenpagina ineens stuk gaat, springt de test op rood voordat iemand een verkoop misloopt.
Het addertje is dat e2e-tests het traagst en fragielst zijn. Een test die de hele stack raakt, breekt ook voor de hele stack: een betaal-sandbox van een externe partij die plat ligt, een traag netwerk, of een knop die twee pixels verschoof kunnen hem allemaal op rood zetten zonder echte bug. Jaag je achter elk daarvan aan, dan wordt de testset ruis die mensen leren negeren. Het gangbare advies is dus: houd een handvol e2e-tests voor de reizen die geld opleveren, aanmelden, afrekenen, inloggen, en leun voor de rest op snellere tests.
Bij TopDevs schrijven we end-to-end-tests voor de reizen die voor jouw bedrijf het belangrijkst zijn, zodat een kapotte aanmeld- of betaalflow binnen minuten wordt opgemerkt in plaats van via een boze klantmail.