Skip to main content

Het doel van elke tester is om door middel van continu testen vertrouwen in de software te hebben. We kunnen 's nachts beter slapen in de wetenschap dat gebruikers minder bugs in producten zullen tegenkomen, omdat er een uitgebreid testproces aanwezig is. Het selecteren van de juiste teststrategieën is minstens zo belangrijk als voldoende testen.

Mij werd ooit gevraagd een testplan te maken voor een complex netwerkapparaat. Het doel was om 100% dekking van verschillende verbindingen en hun combinaties te bereiken. Een snelle berekening wees uit dat het opzetten en uitvoeren van dergelijke tests meer dan 40 duizend jaar zou duren.

Hoe complexer je systemen zijn, hoe belangrijker het is om een teststrategie te vinden die zowel haalbaar als succesvol is.

Twee testperspectieven en testbenaderingen die de laatste tijd vaak naar voren zijn gekomen, staan bekend als end-to-endtesten en regressietesten

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Het doel van regressietesten is controleren of wat gisteren werkte, vandaag nog steeds werkt na eventuele wijzigingen. 

Bij end-to-endtesten wordt een bedrijfsproces als geheel getest, vandaar “van begin tot eind”.

Het is een veelvoorkomende misvatting om deze twee strategieën als hetzelfde te beschouwen, omdat regressietesten vaak ook end-to-endtesten omvatten. Het zou echter een vergissing zijn om aan te nemen dat end-to-endtesten uitsluitend regressietests zijn.

Regressietesten moeten op alle testniveaus plaatsvinden, te beginnen met de unittests. End-to-endtesten omvatten regressietesten, maar end-to-endtesten zijn op de lagere testniveaus zelden mogelijk, omdat alle betrokken onderdelen van het proces aanwezig moeten zijn om het als geheel te kunnen testen. 

Elk type test dient een afzonderlijk en verschillend doel. Elk type heeft zijn eigen voordelen, uitdagingen en kenmerken die het uniek maken voor verschillende softwaredoelstellingen. 

Nu we het toch over unittesten hebben: bekijk onze aanbevelingen voor de 10 beste tools voor unittesten.

End-to-endtesten: wat het is — en wat het niet is

End-to-endtesten betekent dat een workflow van begin tot eind wordt getest. Veel workflows of bedrijfsprocessen strekken zich tegenwoordig uit over meerdere applicaties en systemen. Daarom zijn de traditionele concepten van applicatietesten of systeemtesten alleen niet langer toereikend.

End-to-endtesten meet de functionaliteit en prestaties van het bedrijfsproces. Gezien de aard ervan is het niet altijd mogelijk om end-to-endtesten in een normale testomgeving uit te voeren. In plaats daarvan is vaak een gesimuleerde of echte omgeving na de release nodig.

End-to-endtests brengen voornamelijk problemen, afhankelijkheden en integratieproblemen aan het licht.

Dit type test lijkt misschien op gebruiksacceptatietesten (UAT), omdat testers hiermee het gedrag van eindgebruikers kunnen nabootsen, bijvoorbeeld door een transactie via een website te spiegelen, een veelvoorkomend consumentgericht bedrijfsproces. In moderne ontwikkeling met korte cycli moeten end-to-endtesten echter een continue activiteit zijn in plaats van een gewone acceptatietest. 

Bij het uitvoeren van end-to-endtesten is het cruciaal om een realistische omgeving te simuleren, waarin vaak interacties met databases zijn opgenomen. Overweeg voor een naadloze ervaring eersteklas databasemanagementsoftware te gebruiken.

Get regular tech leadership wisdom for delivering better software and systems.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form

De voordelen en uitdagingen van end-to-endtesten

De meeste bedrijven draaien tegenwoordig zowel in de cloud als daarbuiten, wat een sterke reden vormt om integraties nauwlettend te monitoren. End-to-endtesten zijn doorgaans ideaal voor heterogene systemen, omdat hiermee elk afzonderlijk systeem en elke laag kan worden gecontroleerd, van de front-end en back-end van de applicatie tot de database. 

Hier komen we echter voor de uitdaging te staan dat testers veel langdurige en repetitieve tests moeten maken en uitvoeren, wat een arbeidsintensieve taak is. Een grotere testsuite betekent dat onderhoud meer tijd en inspanning vergt. End-to-endtesters zitten vaak tot over hun oren in het maken en onderhouden van testomgevingen. 

Omdat end-to-endtesten tot doel hebben gebruikersinteracties na te bootsen, kunnen ze niet uitsluitend in de ontwikkelomgeving worden uitgevoerd. De productieomgeving is echter niet altijd beschikbaar en kan gevoelig zijn voor testonderbrekingen, zoals software-updates.

Grootschalige testautomatisering wordt noodzakelijk bij goede end-to-endtesten. Testers moeten hun inspanningen richten op het ontwerpen van tests en het analyseren van de testresultaten, in plaats van op het onderhouden van bestaande tests en het configureren van tools en omgevingen. Een platform voor testautomatisering dat de onderhoudslast vermindert, het instellen van tests automatiseert en parallelle testuitvoering mogelijk maakt, kan veel inspanning en nog meer tijd besparen.

Regressietesten

Regressietesten komen aan bod wanneer het systeem wijzigingen heeft ondergaan. Iedereen die met softwaretesten heeft gewerkt, weet dat wijzigingen op één plek ergens anders een storing kunnen veroorzaken.  

In de praktijk zie je regressietesten na elk van deze scenario’s: de toevoeging van nieuwe functies, bugfixes, updates of nieuwe releases. Testers kunnen een gedeeltelijke of volledige selectie van bestaande testgevallen uitvoeren. 

Neem dit voorbeeld:

Stel je een bedrijfsproces voor dat begint met een consument die iets koopt via een mobiele app. Het bedrijfsproces kan worden beheerd door een Salesforce-toepassing, de betaling kan worden verwerkt door een extern betalingsverwerkingssysteem en de daadwerkelijke bestelling kan worden verwerkt in een  SAP-toepassing. Bij sommige fasen van het proces kunnen mensen betrokken zijn. 

De ontwikkelaars van de betrokken toepassingen kunnen hun onderdelen onafhankelijk van elkaar ontwikkelen, misschien zelfs zonder van elkaars bestaan te weten. Een verbetering in de ene toepassing kan een incompatibiliteitsprobleem in de andere veroorzaken. Dit is waar testen van begin tot eind en regressietesten op een zeer betekenisvolle manier samenkomen.

Regressietesten automatiseren in je releasepijplijn

Regressietesten maken een CI/CD-pijplijn compleet, omdat ze de stabiliteit van het systeem bij elke wijziging evalueren. Niemand wil herstelwerk uitvoeren en ontdekken dat iets verkeerd is gegaan nadat de software al is gelanceerd. 

Maar deze voordelen brengen uitdagingen met zich mee, vooral wanneer software met je bedrijf meegroeit. Oude testgevallen worden samen met nieuwe testgevallen uitgevoerd, waardoor de testsuites groeien en de testcycli langer worden. Automatisering, en uiteindelijk AI, zal helpen bij testuitvoering, onderhoud en analyse.

Testen van begin tot eind versus regressietesten: welke optie is geschikt voor je bedrijf? 

Het antwoord is: beide. Je moet niet kiezen tussen testen van begin tot eind en regressietesten. 

In plaats daarvan moet je bepalen hoeveel testen van begin tot eind je moet uitvoeren, welk deel daarvan regressietesten moet zijn en welk deel uit testen van nieuwe functies moet bestaan. 

Zoals hierboven besproken, verlopen testen van begin tot eind doorgaans traag en vereisen ze complexe testopstellingen. Automatisering toepassen om de doorlooptijden te verkorten is essentieel. 

Maar vanwege de complexe aard van testen van begin tot eind moet automatisering zo worden opgebouwd dat de tijd en inspanning die nodig zijn voor het onderhouden ervan het behaalde voordeel niet tenietdoen. 

Een groot probleem waarmee testers te maken hebben gehad, is dat herhaaldelijk testen met grote testsuites in een heterogene omgeving leidt tot lange testcycli en een arbeidsintensief proces. Maar er is geen ontkomen aan. 

Digitale bedrijfsprocessen blijven groeien, zowel in omvang als in complexiteit. Een geweldig testteam met de juiste, moderne automatiseringstools kan echt bijdragen aan het succes van het bedrijf. We horen ook dat teams verschillende tools nodig hebben om verschillende apps te testen. Daarom kan het nuttig zijn om een tool te vinden die meerdere scenario’s test.

Misschien vind je dit ook interessant: De 10 beste tools voor visuele regressietesten voor QA-teams