Een knop die verdwijnt. Data die niet opslaat. Features die opeens stoppen met werken. Dit soort bugs zijn frustrerend, vooral als je ze pas ontdekt wanneer je de app zelf gebruikt.

Tests zijn de oplossing. Kleine stukjes code die automatisch checken of alles nog werkt. Elke keer als je iets aanpast, drukken ze op alle knoppen en controleren ze of de app zich gedraagt zoals verwacht. Vandaag schreef ik er 106.

Tijd besteed: ik 15 minuten, Claude anderhalf uur.


De verdwenen knop

Het begon met een irritatie. Ik wilde mijn ochtendroutine aanpassen, maar de “Bewerk” knop was nergens te bekennen. Gewoon… weg.

Na wat speurwerk bleek: de knop verstopte zich als de app dacht dat er geen “complete” data was. Maar de definitie van “compleet” was te streng. Als je niet op de exacte juiste manier had opgeslagen, telde het niet.

De fix was simpel: check of er überhaupt iets is ingevuld, niet of alles perfect is ingevuld. Vijftien minuten later was de knop terug.


Waarom tests?

Stel je voor: je repareert de voordeur, maar breekt per ongeluk een raam aan de achterkant. Zonder tests merk je dat pas als het regent.

Met tests krijg je direct een melding: “Hé, dat raam is kapot.” Voordat je het zelf ontdekt. Voordat een gebruiker het ontdekt.

Ik had al wat tests, maar de dekking was… bescheiden:

OnderdeelGetest
Data opslaan0%
Tijdlogica15%
Data beheer0%

Dat is geen vangnet. Dat is een illusie van een vangnet.


De test-marathon

Claude schreef test na test. “Wat gebeurt er als je ongeldige data opslaat?” Test. “Wat als het 8 uur ’s ochtends is?” Test. “Wat als de data leeg is?” Test.

Het lastige: sommige functies hangen af van de tijd. “Toon de ochtendsectie” werkt alleen tussen 6 en 10 uur. Hoe test je dat om middernacht?

De truc: doe alsof. Vertel de code dat het 8 uur is, ook al is het 23:00. Zo kun je elk scenario testen, ongeacht wanneer je de tests draait.


De resultaten

Daarvoor: 51 tests

Daarna: 157 tests

OnderdeelWasNu
Data opslaan0%84%
Tijdlogica15%100%
Data beheer0%25%

Die 100% op tijdlogica voelt goed. Elke mogelijke situatie getest. Als daar iets breekt, weet ik het binnen seconden.


De echte winst

Tests schrijven is niet sexy. Je ziet er niks van als gebruiker. De app ziet er precies hetzelfde uit.

Maar de volgende keer dat ik iets aanpas en per ongeluk iets anders breek? Dan krijg ik een waarschuwing. Niet volgende week als ik de app open. Nu. Voordat de code ooit mijn telefoon bereikt.

Dat is de echte winst: rust in je hoofd. Weten dat 157 kleine controles elke wijziging bewaken.


Geen nieuwe features vandaag. Wel een steviger fundament. Soms is dat precies wat nodig is.