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