Growing Towards a Unit Testing Strategy
opleidingsonderdeel‘. NET Essentials’, aangeboden in het eerste jaar‘ Toegepaste Informatica’. In dit opleidingsonderdeel leren studenten de programmeertaal C #. De oefeningen van enkele hoofdstukken uit de cursus werden voorzien van automatische testen. De studenten maken de oefeningen in hun eigen ontwikkelomgeving, terwijl ze in diezelfde omgeving de automatische testen uitvoeren om een oefening te valideren.
Wesley Hendrikx
PXL-IT
om vanuit andere ontwikkelomgevingen voor andere talen( Java, Javascript, Python,…) testresultaten door te sturen.
Een leeranalytische tool ontsluit de gegevens van deze database in de vorm van een webapplicatie. Via deze applicatie, het dashboard, kunnen studenten zich registreren en hun eigen voortgang bekijken. Ook kunnen ze hun eigen resultaten vergelijken met het gemiddelde van de andere studenten. Voor lectoren is dit dashboard een tool waarmee ze de voortgang van hun studenten kunnen opvolgen.
FIGUUR 1: HET RESULTAAT VAN EEN TESTUITVOERING VOOR EEN OEFENING IN DE ONTWIKKELOMGEVING VAN DE STUDENT.
Bij de testen die falen, staat een rood kruis. Bij de testen die slagen, staat een groen vinkje. De naamgeving van de testen is zo opgebouwd dat ze een indicatie geven van wat de productiecode hoort te doen. De test‘ ShouldGenerateDifferentNumbersInEachLabel’ gaat bijvoorbeeld na of er in de oplossing twee verschillende getallen op het scherm worden geplaatst.
Testen schrijven is een monnikenwerk: niet alleen de meest voorkomende gevallen dien je te testen, maar ook en vooral de randgevallen en die gevallen die fouten veroorzaken. De gebruiker van een programma verwacht immers dat zijn programma ten alle tijden werkt en niet zomaar afbreekt. Ter ondersteuning van de lector, is er een pakket gebouwd dat hulpmiddelen bevat om het schrijven van automatische testen te vergemakkelijken. Momenteel ondersteunen we enkel de programmeertaal C #. De( open source) code en een handleiding vind je via https:// github. com / PXL-IT- NET / Guts / tree / master / DotNetClient. Het pakket bevat ook hulpmiddelen om de testresultaten door te sturen naar een centrale service. Dat brengt ons bij het tweede luik: het verzamelen en visualiseren van de testresultaten.
Verzamelen |
en |
visualiseren |
van |
testresultaten |
|
|
|
De resultaten van alle testuitvoeringen van alle studenten worden verzameld in een centrale database. Na elke uitvoering van testen stuurt de ontwikkelomgeving de testresultaten door naar deze database. Dit doorsturen en bewaren van testresultaten is generiek opgebouwd. Zo zal het later mogelijk zal zijn
FIGUUR 2: OVERZICHT VAN DE TESTRESULTATEN VAN DE STUDENT( LINKS) EN HET GEMIDDELDE( RECHTS) VOOR HOOFDSTUK 5 VAN DE CURSUS‘. NET
ESSENTIALS’
De( open source) code voor de REST Service en de dashboard webapplicatie staat online: https:// github. com / PXL-IT- NET / Guts / tree / master / BackEnd. Het dashboard van de POC is bereikbaar via https:// guts-web. appspot. com.
Meting
Voor het opleidingsonderdeel‘. NET Essentials’ is er een experiment uitgevoerd waarbij een groot aantal studenten( n = 177) oefeningen van bepaalde hoofdstukken hebben gemaakt met de ondersteuning van automatische testen. Vervolgens peilde een online bevraging naar de impact op het welbevinden, de zelfinschatting en de motivatie van de student.
Op de vraag of ze technische moeilijkheden hebben ondervonden bij het uitvoeren van automatische testen, zegt bijna 80 % dat ze weinig of geen hinder hebben ondervonden. Dit duidt op een geslaagd experiment op technisch vlak.
Verder stelden we vast dat een meerderheid van de studenten meer gemotiveerd was om oefeningen te maken(
52