Je programma testen

Programmeergidsen

Een test vergelijkt wat er moet gebeuren met wat er echt gebeurt. Je bepaalt eerst het verwachte resultaat. Daarna voer je het programma uit met een bepaald voorbeeld en vergelijk je beide resultaten.

Testen betekent niet zomaar wat klikken totdat alles goed lijkt. Een nuttige test stelt een duidelijke vraag, bijvoorbeeld: ‘Geven nul sterren ook nul punten?’

Maak een testtabel

Stel dat elke ster twee punten waard is. Schrijf vóór het programmeren drie voorbeelden op:

Sterren Verwachte punten Waarom proberen?
0 0 Niets verzameld
1 2 Eén vondst
5 10 Verschillende vondsten

Een invoer samen met het verwachte resultaat heet een testgeval. Bewaar die gevallen, zodat je ze opnieuw kunt gebruiken nadat je code verandert.

Laat Pliro resultaten vergelijken

Dit voorbeeld gebruikt een functie: een stukje code met een naam dat een resultaat teruggeeft. Lees eerst over functies als dat nieuw voor je is.

# taal: nl
functie punten(sterren):
    geef sterren * 2
zeg punten(0) == 0
zeg punten(1) == 2
zeg punten(5) == 10

== vraagt of twee waarden gelijk zijn. Elke regel meldt of het berekende resultaat gelijk is aan het verwachte resultaat.

Voorspel en probeer

Hoeveel controles moeten slagen?

true
true
true

Pliro toont booleaanse waarden als true en false, ook bij Nederlandse code. true betekent dat de vergelijking klopt. false zou betekenen dat de test een verschil vond. Dit zijn eenvoudige controles, geen apart Pliro-testraamwerk. Ze stoppen het programma niet automatisch.

Jouw uitdaging

Vervang sterren * 2 tijdelijk door sterren + 2. Voorspel welke controles misgaan en probeer het. Zet daarna de goede berekening terug. Zo controleer je of je tests echt een fout kunnen ontdekken.

Een veelgemaakte fout

Als je de berekening uit het programma kopieert naar het verwachte antwoord, kun je dezelfde fout kopiëren. Bereken kleine verwachte antwoorden zelf met vingers, fiches of papier.

Drie geslaagde controles bewijzen niet dat elke mogelijke invoer werkt. Voeg voorbeelden toe wanneer je een nieuwe regel bedenkt of een bug oplost. Oude tests herhalen na een wijziging heet regressietesten.

Verder leren

Ongewone invoer · Bugs opsporen · Code verbeteren