Naar de inhoud

Blog

Waarom we testen voordat iets live gaat

Door Mart Broer, oprichter

Een test is een klein programma dat controleert of iets nog werkt. Omdat we met hulp van AI bouwen, kan er bij één wijziging veel tegelijk veranderen. Bij een nieuwe versie lopen daarom alle tests opnieuw, na een kleine reparatie de tests van dat deel. Zijn die goed, dan leest een aparte AI-hulp alles nog eens na. Live gaat het pas na het akkoord van je broer.

Dit is deel 4 van de reeks zo werken onze systemen. Nu gaat het over de vraag: hoe weet je dat een nieuwe versie niet stuk is, voordat je klanten hem zien?

Eerst even: wat is een test?

Denk aan een piloot. Voordat hij opstijgt, loopt hij een checklist af. Brandstof? Klopt. Kleppen? Werken. Instrumenten? Doen het. Dat doet hij voor elke vlucht opnieuw, ook als hij al duizend keer gevlogen heeft. Niet omdat hij het vliegtuig wantrouwt, maar omdat een vergeten punt in de lucht veel meer kost dan op de grond.

Een test is zo'n checklist, maar dan voor software. Het is een klein programma dat een ander programma nakijkt. Het opent bijvoorbeeld een pagina en kijkt: staat de prijs erop? Werkt de knop? Past alles op een telefoon? Klopt het, dan schrijft de test "OK". Klopt het niet, dan schrijft hij "FOUT" en zegt hij wat er mis is.

Het verschil met een mens: een test wordt niet moe en slaat niets over omdat het laat is. Hij kijkt steeds precies hetzelfde na, en dat in korte tijd.

Waarom testen juist nodig is als je met AI bouwt

We bouwen met hulp van AI. Hoe dat werkt, lees je in AI die programmeert. Het grote voordeel: AI typt in een paar minuten wat een mens een dag kost. Maar daar zit ook het risico.

  • Er verandert veel tegelijk. Vraag je de AI om één knop aan te passen, dan kan hij ongemerkt ook iets anders veranderen. Op de pagina die je bekijkt, ziet alles er goed uit. Op een andere pagina is ineens iets kapot.
  • AI klinkt zeker, ook als het niet klopt. Code van AI ziet er netjes uit. Dat zegt nog niets over of hij doet wat de bedoeling is.
  • Alles met de hand nalopen houdt niemand vol. Onze eigen site heeft tientallen pagina's, een beheer en een administratie. Dat na elke wijziging met de hand nalopen, lukt een mens niet goed.

Tests lossen dat op. Bij een nieuwe versie lopen ze allemaal opnieuw, ook over de delen waar niemand aan dacht. Een fout die de AI ergens anders maakte, komt zo boven voordat een bezoeker hem ziet.

De AI helpt ook bij de tests zelf. Tests schrijven is nuttig maar saai werk, en AI doet het snel. Wij zeggen wat er zeker moet werken, en kijken of de juiste dingen worden getest.

Wat we echt testen

Een voorbeeld uit ons eigen werk: de site die je nu leest, broercollective.com. Daarvoor staan ruim honderd testbestanden klaar, in vier groepen: de site, het beheer, de bezoekcijfers en de administratie.

Op de site zelf kijken de tests onder meer naar deze punten:

  • De pagina's in een echte browser. De tests openen Chrome, de bekende browser, maar dan zonder scherm. Zo zien ze een pagina zoals een bezoeker hem ziet.
  • Telefoon en computer. Pagina's gaan op verschillende breedtes langs: een groot scherm van 1280 beeldpunten breed, en een telefoon van 390 en van 320 beeldpunten breed. Die laatste is een kleine telefoon.
  • Niets schuift zijwaarts. Op een telefoon wil je alleen omhoog en omlaag scrollen. Steekt er iets uit, dan schuift de hele pagina opzij. Een test meet of de pagina niet breder is dan het scherm.
  • Geen fouten in de scripts. Kleine stukjes code in je browser maken een pagina levendig, zoals een vraag die openklapt. Die code heet JavaScript. Gaat daarin iets mis, dan merkt een bezoeker vaak alleen dat een knop niets doet. De test vangt die foutmeldingen op.
  • Links die ergens heen gaan. Een link naar een plek verderop op dezelfde pagina heet een anker. Die moet naar iets wijzen dat er echt is. De tests kijken ook of de links op de voorpagina naar een pagina gaan die bestaat.
  • Geen prijscode op de pagina. Onze prijzen staan op één plek in het beheer. In de teksten staat een code, en de site zet daar de echte prijs voor in de plaats. Blijft er ergens een code staan, dan ziet een bezoeker rare tekst in plaats van een bedrag. Een test zoekt op elke pagina naar zulke resten. Een andere test verandert in het beheer een prijs, en kijkt of de nieuwe prijs op de pagina staat en de oude niet meer.
  • Niets van buiten. De letters op onze site komen van onze eigen server. Een test kijkt of de site niets ophaalt bij Google of een ander adres buiten onze server.
  • De lijst voor zoekmachines. Zoekmachines krijgen een lijst met alle pagina's van de site. Die heet de sitemap. Een test kijkt of elke pagina die vindbaar moet zijn erin staat, en een verborgen pagina niet.
  • De cookiemelding. Pas na Ja komt er een cookie. Kies je Nee, dan krijg je geen cookie en tel je alleen mee in de gewone aantallen.

Ook het beheer, waar teksten en prijzen worden aangepast, heeft eigen tests. Wat gebeurt er als je typt terwijl de pagina aan het opslaan is? Als je een prijscode intypt die niet bestaat? Als je een te groot bestand kiest? Als je uitgelogd raakt met werk dat nog niet is opgeslagen? Voor elk van die vragen is er een test.

In de administratie gaan de tests over rekenwerk. Een voorbeeld: typt iemand 1.234.567,89, dan moet dat ook echt dat bedrag worden. Typt iemand per ongeluk 1.250.50, dan is dat geen bedrag. De test controleert dat het systeem daar een melding van geeft, in plaats van stil een verkeerd getal te bewaren.

Ook Nummerbordcheck.nl en Lichthoek hebben hun eigen tests.

Testen met verzonnen gegevens

Onze tests werken met verzonnen gegevens. Elke test start een nieuwe, lege versie van de site, alleen voor die test. De test maakt zelf wat hij nodig heeft, zoals een verzonnen klant, een verzonnen factuur of een verzonnen blogbericht. Waar dat nodig is, zet hij daarna alles terug.

Ook de systemen waar de site mee praat, worden nagebootst, zoals het voorraadsysteem. Mail gaat niet echt de deur uit, maar komt in een map terecht. Er gaat niets naar de betaaldienst, naar Google of naar het echte voorraadsysteem. Bij Lichthoek testen we een betaling in een proefstand van de betaaldienst, zonder echt geld.

Waarom zo? Gegevens die jij in je site of systeem bij ons zet, delen we niet met de AI-hulp waarmee we bouwen. En begint een test steeds gelijk, dan weet je bij een fout dat het aan de code ligt, en niet aan de gegevens.

De verzonnen gegevens hebben wel dezelfde vorm als de echte: een bedrag is een bedrag, een datum is een datum. Moet er toch naar echte gegevens gekeken worden, dan doet je broer dat zelf.

Van test naar live: zo gaat een uitrol

Een uitrol is het moment waarop een nieuwe versie live gaat. Bij broercollective.com gaat dat in stappen:

  1. De tests lopen. Op onze eigen computer, niet op de server waar je site live staat.
  2. Het pakket wordt vastgezet. De bestanden die live gaan, zetten we apart in een map die daarna niet meer verandert. Van elk bestand maken we een vingerafdruk. Dat is een korte code die uit de inhoud van het bestand wordt berekend, met een rekenmethode die sha256 heet. Verandert er één letter in het bestand, dan krijg je een heel andere vingerafdruk. Zo zien we of wat op de server komt precies is wat getest is.
  3. Een aparte AI-hulp leest na. Daarna leest een aparte AI-hulp, in een eigen gesprek, het pakket nog eens na. Vindt die iets wat niet goed is, dan gaat het eerst terug om te herstellen, of je broer beslist.
  4. Het akkoord van je broer. Zonder ja van je broer gaat het niet live.
  5. Eerst een reservekopie en een weg terug. Voordat de nieuwe versie erop gaat, bewaren we de vorige versie. Zo kunnen we terug als de nieuwe niet goed is. Gaat het om de administratie, dan maken we eerst ook een kopie van de gegevens.
  6. De uitrol zelf. Op de server meten we de vingerafdrukken opnieuw. We meten alle bestanden voor en na de uitrol: alleen wat zou veranderen, mag veranderd zijn. En we kijken of de andere sites op de server nog hetzelfde antwoorden als ervoor.
  7. Een nacontrole in de browser. Daarna kijken we de live site nog eens na in een browser, op een telefoonbreedte en waar nodig op een computer. Met een instelling waardoor ons eigen bezoek niet meetelt in de bezoekcijfers.

Een test ziet niet alles

Een test kijkt alleen naar wat je hem vraagt. Hij weet niet wat mooi is of wat slordig staat.

Een voorbeeld van 21 oktober 2026. We zetten toen een paar nieuwe dienstpagina's live, waaronder Python-ontwikkeling. De test zei: op een telefoon van 320 beeldpunten breed schuift er niets zijwaarts. Dat klopte. Maar bij de nacontrole zagen we iets anders. De kop van die pagina brak daar af op één losse letter. Er stond "ontwikkelin", en op de regel eronder alleen een "g". Technisch was er niets kapot. Het zag er alleen niet goed uit.

De nacontrole zag het, de test niet. In de ronde erna hebben we het opgelost. Een kop met een te lang woord wordt op een smalle telefoon nu net iets kleiner, en lange woorden mogen daar netjes worden afgebroken. Bij de nacontrole daarna stond de kop heel.

Daarom volgt na een uitrol ook een nacontrole in de browser. En daarom is er een weg terug. Tests maken de kans op een fout een stuk kleiner, maar niet nul. Ook daarna houden we in de gaten of alles draait, en grijpen we in als het nodig is.

Wat jij als ondernemer moet weten

Je hoeft zelf geen tests te schrijven. Wel kun je je eigen bouwer of hoster deze vragen stellen:

  • Zijn er tests, en lopen ze bij elke wijziging? Of alleen als er tijd is?
  • Wordt er getest op een telefoon? En ook op een kleine telefoon, niet alleen op het scherm van de bouwer?
  • Met welke gegevens wordt er getest? Verzonnen gegevens, of die van je klanten?
  • Wie geeft akkoord voordat iets live gaat? Is dat iemand anders dan wie het bouwde?
  • Is er een weg terug? Kan de vorige versie terug als de nieuwe niet goed is, en hoe snel?
  • Kijkt iemand na de uitrol nog naar de live site? Of hoor je het pas van een klant?
  • Wordt er getest na een update? Ook updates van bouwstenen van anderen kunnen iets veranderen. Meer daarover lees je in Bouwstenen van anderen.

Een eenvoudige site die weinig verandert, kan zonder veel tests. Heb je een webshop, koppelingen of een eigen systeem dat vaak verandert, dan wil je ze wel.

Wat het bij ons kost

Op onze prijzen staat geen aparte regel voor testen. Testen hoort bij hoe we bouwen: elke wijziging gaat pas live na onze tests. Daarna leest een aparte AI-hulp alles nog eens na, en live gaat het pas na het akkoord van je broer. Dat geldt voor nieuw werk en voor de updates die wij doen.

Een website op maat kost vanaf € 1.250, plus € 15 per maand voor hosting en beheer. Hosting en beheer zitten ook in elke broer. Kleine broer is vanaf € 19 per maand, plus eenmalig bouwen vanaf € 495. Grote broer is vanaf € 68 per maand, zonder opstartkosten. Alle bedragen zijn exclusief btw, en je krijgt eerst een offerte.

Vaak gevraagd

Testen jullie met de gegevens van mijn klanten?

Nee. Onze tests werken met verzonnen gegevens in dezelfde vorm als die van jou. Moet er toch naar echte gegevens gekeken worden, dan doet je broer dat zelf.

Betekent testen dat er niets meer mis kan gaan?

Nee. Een test kijkt alleen naar wat je hem vraagt. Daarom volgt na een uitrol ook een nacontrole in de browser, en bewaren we de vorige versie zodat we terug kunnen.

Kan ik zelf meekijken voordat iets live gaat?

Ja. Tijdens het bouwen kijk je mee op een voorbeeldadres achter een wachtwoord. Zo zie je het eerst zelf, voordat je klanten het zien.

Wat merk ik als klant van al dat testen?

Zo min mogelijk. Je merkt het vooral aan wat er niet gebeurt: een knop die na een update ineens niets meer doet, of een pagina die op je telefoon opzij schuift.

De reeks zo werken onze systemen

Werk

Gemaakt door je broer

nummerbordcheck.nl
De voorpagina van nummerbordcheck.nl: een gele kentekenplaat als invoerveld, een voorbeeldkaart met stoplichten, en wat je ziet.
De voorpagina van nummerbordcheck.nl op een telefoon.

004 · webapp

Nummerbord­check.nl

Kentekencheck: vul een Nederlands kenteken in en zie in gewone taal wat de RDW openbaar weet, met stoplichten per punt, de hele keuringsgeschiedenis, terugroepacties en leuke feitjes. Van idee tot live in twee dagen.

  • Open data RDW
  • Webapp
  • Eigen huisstijl
  • Twee dagen
nummerbordcheck.nl ↗ Lees het verhaal
lichthoek.nl
De voorpagina van lichthoek.nl: foto- en videoapparatuur, populaire producten, categorieën, direct leverbaar en merken.
De voorpagina van lichthoek.nl op een telefoon.

005 · webshop

Lichthoek

Een webshop voor foto- en videoapparatuur, fotolijsten en fotopapier, met ruim 3.800 producten. Producten, prijzen en voorraad komen vanzelf uit het voorraadsysteem, en een bestelling gaat vanzelf terug, met de track-and-trace naar de klant. Gebouwd en live op één dag.

  • Webshop
  • 3.800 producten
  • Gekoppeld aan voorraad
  • Eigen server
lichthoek.nl ↗ Lees het verhaal

Contact

Bel je broer.

Liever eerst mailen? Ook prima. Je broer leest alles, en belt terug als het ingewikkeld wordt.

Eerst weten wat het kost?Alle prijzen staan op de site, vanaf € 19 per maand.