Tijdschrift voor innovatief hoger onderwijs nummer 1 - jaargang 1 - 2018 | Page 51
Growing Towards a Unit Testing Strategy
Wesley Hendrikx
PXL-IT
Growing Towards a
Unit Testing Strategy
Tools
voor
lectoren
en
studenten
om
automatische
testen
te
integreren
in
programmeervakken
WESLEY
HENDRIKX
Programmeren is net als auto rijden: enkel
als je veel oefent, krijg je deze vaardigheden
onder de knie. Studenten aanzetten tot
oefenen is echter een hele uitdaging. Het
volstaat niet om een grote hoeveelheid
opgaven aan te bieden, oefeningen moeten
ook uitdagend en leuk zijn. Studenten
moeten geprikkeld worden om oefeningen
te blijven maken. Uiteraard verwachten ze
ook feedback op hun werk. Hoe meer
studenten, hoe meer tijd het vergt om
oefeningen te verbeteren en van zinvolle
commentaar te voorzien.
Het GUTS-project (Growing towards a Unit
Testing Strategy) beschrijft hoe studenten
automatische feedback kunnen krijgen op
programmeeroefeningen
om
zo
het
leerproces van de student sneller en
efficiënter bij te sturen.
Automatische testen
Lectoren krijgen een set van tools met een
handleiding die hen toelaat om oefeningen op
te stellen die vergezeld zijn van automatische
testen. Deze testen zijn geschreven in een
programmeertaal en hebben tot doel de
oplossingen van de oefeningen uit te voeren
en intensief te valideren. Op de werkvloer
spreekt men van “productiecode” (de
oplossingen) en “testcode” (de automatische
testen).
Het
programma
waarmee
ontwikkelaars software schrijven, noemt men
een
ontwikkelomgeving.
Deze
ontwikkelomgeving
kan
de
testcode
automatisch en veelvuldig uitvoeren. Dit heeft
als voordeel dat de student op een
authentieke
manier
met
zijn
eigen
51
ontwikkelomgeving kan blijven werken om
zijn oefeningen te controleren. Als alle testen
slagen, krijgt de student een bepaalde
zekerheid over de juistheid van de oplossing.
Bij testen die falen vindt de student feedback
die hem of haar in de juiste richting sturen.
Dankzij deze werkwijze zetten de studenten al
heel vroeg in het curriculum de eerste stappen
richting test-driven development (TDD) (Test-
driven development, z.d.). Bij TDD worden de
testen eerst geschreven en pas daarna het
programma zelf. Op deze manier vertrek je
vanuit de functionele vereisten in de plaats van
deze enkel te gebruiken als controle. Als de
testen namelijk niet slagen voor het
geschreven programma, weten we dat het
programma niet voldoet aan alle eisen. TDD
brengt vele voordelen met zich mee. De
industrie heeft TDD dan ook meer en meer in
gebruik genomen. Dankzij het GUTS-project
leert
de
student
al
bij
de
eerste
programmeerstappen
om
automatische
testen uit te voeren en de productiecode bij te
sturen op basis van de feedback van de testen.
Op die manier zet de student de eerste
stappen richting een TDD-mindset.
Er zijn verschillende soorten automatische
testen. In TDD wordt er vooral gewerkt met
unit testen. Unit testen zijn automatische
testen die telkens een klein onderdeel van de
productiecode testen (een unit). Vandaar de
naam van het project: “Growing towards a Unit
Testing Strategy”.
In dit onderwijsinnovatieproject is er voor één
programmeervak een proof-of-concept (POC)
uitgewerkt. De keuze is gevallen op het