De achtbaan van testen
Eindeloze testen zorgen voor veilige achtbanen. Achtbaanongelukken zijn zeldzaam. Wat kan software leren van deze thrillride?
Je zou het misschien niet verwachten, maar software zou als een achtbaan moeten zijn. Niet omdat ze beide door hoogte- en dieptepunten gaan. Ook niet omdat ze allebei door een storing stil kunnen liggen. Een goede achtbaan is soepel, snel en geeft een lekkere adrenaline rush. Goede software moet ook soepel en snel werken, terwijl het tegelijkertijd een prettige werkervaring is. Het grote verschil is dat een achtbaan vrijwel zeker veilig is en jouw software dat waarschijnlijk niet is. De manier waarop betrouwbaarheid en veiligheid in een achtbaan worden afgedwongen zou een voorbeeld voor alle softwaremakers moeten zijn.
Dodemansritjes in een kamikaze treintje
Software lijkt het (bijna) altijd te doen, je klikt ergens op en er gebeurt iets. Toegegeven, iedereen weet dat er iets verkeerd kan gaan. En toch gaan we er allemaal vanuit dat software altijd werkt. Maar wat er onder de motorkap van jouw programma’s (of apps) draait, dat weet je meestal niet. En er is (bijna) niemand die jou vertelt of en waarom jouw software veilig en betrouwbaar is. Of als ze eerlijk zijn, dat de software dat helemaal niet is.
Dat brengt ons terug bij de achtbaan. Want is het niet vreemd dat we een ongeteste achtbaan simpelweg niet accepteren, maar dat met software wel doen? Een ongeteste achtbaan is een recept voor rampspoed. Dodemansritjes in een kamikaze treintje. Dankzij vele controles weet je zeker dat de beugels in een looping gesloten blijven. Uitgebreide testen garanderen dat de treintjes keer op keer de heuvels over komen.
Veiligheid van vooruitzien
Iedereen snapt dat een ritje in een adrenalinefabriek alleen veilig en betrouwbaar is door strenge testen en dagelijkse controles. Om nog te zwijgen over slechte nieuwsberichten over een pretpark bij een ongeval. Pretparken weten als geen ander dat veiligheid vooruitzien betekent. Testen geven een kijkje in de toekomst waardoor je kan anticiperen op wat er kan gebeuren. Vanaf het eerste ontwerp worden testsimulaties uitgevoerd. Gedurende de bouw worden losse onderdelen zoals wielen, bouten en baandelen getest, gevolgd door eindeloze testrondjes met crashdummies. Om nog maar te zwijgen over de dagelijkse controles tijdens gebruik.
Ook in software moeten we (als ontwikkelaar en opdrachtgever) streven naar honderd procent veilig en betrouwbaar. Dat is misschien een droom. Nieuwsberichten bewijzen dat zelfs achtbanen gebreken hebben. Maar dankzij alle testen en controles zijn zware ongevallen en structurele storingen ontzettend zeldzaam. Dit is een grote tegenstelling met softwarenieuws waar regelmatig datalekken en diefstal van bedrijfsgegevens, ransomware enzovoort voorbij komen. En dan halen de meeste incidenten het nieuws niet eens! We moeten allemaal ernaar streven dat cyberongelukken ook een zeldzaamheid worden. Daarvoor moeten we verder vooruit kijken en accepteren dat testen tijd kost. Want als één ding duidelijk is, is dat door software net zo grondig te testen als dat we achtbanen testen, we ontelbare risico’s kunnen voorkomen. Met als resultaat dat je met vertrouwen kan zeggen dat je software veilig en betrouwbaar is en gebruikers kunnen genieten van een soepele, snelle en prettige software ervaring.