071 - 576 13 23
Gamificatie van testen

Gamificatie van testen

door Björn Brala op 09 augustus 2016


Tests schrijven is leuk, ten minste dat vind ik. Ik programmeer al zo’n 13 jaar in PHP, langer dan dat testen in PHP bestaat. Dat is namelijk pas sinds een aantal jaar populariteit aan het winnen. Maar tijden veranderen: PHP is een volwassen programmeertaal geworden. En daar hoort gedegen testen bij.

Ik raad het iedereen die professioneel programmeert aan. Waarom is het maken van tests in PHP zo belangrijk? Websites krijgen in de loop der tijd steeds meer nieuwe features en mogelijkheden. Een set van test zorgt ervoor dat het onderhoud van je applicatie niet uit de hand loopt. Voor zowel klant als developer is immers niets vervelender dan een nieuwe feature die een andere functionaliteit op je website kapot maakt. 

Testen in PHP - Waar komt het idee vandaan?

Toen ik op zoek was naar een manier om het testen leuker te maken, kwam ik een script tegen op het GitHub account van Spotify. Met dit script kun je tests binnen een project tellen en daarmee een top 5 genereren van developers die het grootste aantal tests hebben geschreven. Van dit soort statistieken word ik altijd heel vrolijk!

Daarom vond ik het idee om een spelelement toe te voegen en het testen zichtbaar te maken ook briljant! Deze combinatie van het testen en het spel stimuleert developers op verschillende niveaus:

  1. Het wedstrijdelement motiveert ons meer testen te gaan schrijven; wie wil er nou niet stijgen op de ranglijst?
  2. Bewustwording van het testgedrag van collega’s; bijvoorbeeld met een wisselbeker voor de developer die de meeste tests heeft geschreven in een maand.
  3. Leren van elkaar; in de ranglijst kun je doorklikken op elke naam en inzien op welke manier anderen testen schrijven.

Na een zoektocht naar een dergelijke manier van testen, kwam ik erachter dat dit voor PHP nog niet bestond. Daarop besloot ik om een eigen ‘Game of Tests’ te ontwikkelen: http://gameoftests.swis.nl/.

Hoe Game of Tests werkt

De basis van het idee is: Je hebt een bak met code van een project en gaat daarbinnen op zoek naar testbestanden. Omdat we versiebeheer gebruiken is het ook goed mogelijk om de tests toe te wijzen aan de developer die hem heeft geschreven. Om dit te realiseren dat heb ik een package gemaakt die git uitleest en analyseert. Op dit moment ondersteunt de package PhpUnit, Behat en Codeception, en is hij gemakkelijk uit te breiden met andere test-frameworks. Ben je benieuwd hoe dit is gemaakt? Neem dan een kijkje op mijn eigen website.

Naast de package heb ik ook een Laravel package beschikbaar gemaakt. Deze maakt het mogelijk om de tool in je Laravel applicatie te gebruiken. Denk aan een dashboard voor teams, of misschien zelfs een ranking voor het hele bedrijf! Ter inspiratie, een voorbeeld is; de Game of Tests die wij online hebben gezet voor Laravel: http://gameoftests.swis.nl/.

Game of Tests proberen?

Wil jij de Game of Tests zelf ook gaan gebruiken? Dat kan! Het makkelijkste is om een eigen installatie te doen. Dit doe je via: https://github.com/swisnl/game-of-tests-laravel-demo. Kom je er niet uit of heb je nog andere vragen? Stuur dan een mailtje naar bjorn@swis.nl.