Van afstudeeropdracht naar 30 miljoen downloads: het verhaal achter Stryker Mutator
Een afstudeeropdracht kan meer zijn dan een verplicht onderdeel van je studie. Stryker is hier het bewijs van. Wat startte als een afstudeeropdracht, groeide uit tot een open source tool die wereldwijd wordt gebruikt en al miljoenen keren is gedownload.
Testen van je testen
Als developer schrijf je niet alleen code, maar ook testen. Die testen moeten controleren of je code doet wat hij moet doen. Maar daar zit een blinde vlek: hoe weet je eigenlijk of je testen zélf wel goed zijn?
“Met Stryker test je eigenlijk je testen,” zegt Nico Jansen, manager en docent van het Kenniscentrum van Info Support en engineer met een duidelijke passie voor open source. Dat klinkt simpel, maar raakt een serieus probleem. Veel teams vertrouwen op code coverage: hoeveel procent van je code wordt geraakt door testen. Maar dat zegt weinig over de kwaliteit van die testen. Je kunt code aanroepen zonder echt te controleren of het juiste gebeurt. Stryker maakt dat zichtbaar.
Een idee zonder tool
In 2015 hoorde Nico via een collega bij een klant over mutation testing voor Java. Hij raakte meteen enthousiast, maar zijn taal was JavaScript. Een goede mutation testing tool voor JavaScript bestond op dat moment nog niet en zo ontstond het idee van Stryker.
Het ontwikkelen van een nieuwe tool kost tijd, dus schreef Nico het uit als afstudeeropdracht. “Ga je afstuderen, dan heb je een half jaar fulltime de mogelijkheid om iets echt goed te onderzoeken. Dat is heel waardevol.” Het eerste resultaat was een mooi begin. Nico en zijn team besloten op basis hiervan StrykerJS open source te maken en de eerste commit het afstudeerwerk te laten zijn. Een bewuste keuze. “Als je nu terugkijkt in de geschiedenis van de code, zie je nog dat eerste resultaat staan. Het is een soort easter egg.”
Bouwen op elkaars werk
Inmiddels hebben meer dan vijftien afstudeerders hun steentje bijgedragen. Stryker groeide van een JavaScript-tool naar versies voor TypeScript, .NET en Scala. Onderweg werden technische drempels overwonnen die Nico zelf niet voor mogelijk had gehouden. Zo werd de techniek ‘mutant schemata’ geïmplementeerd op basis van een wetenschappelijk paper uit 1993. Een methode die de prestaties van de tool drastisch verbeterde. “Ik dacht eerlijk gezegd niet dat het zou werken,” geeft Nico toe. “Maar de afstudeerder was ervan overtuigd, dus liet ik hem zijn gang gaan. En wat bleek: het werkte. Het zit vanaf de eerste dag in Stryker .NET.”
Tijdens de coronaperiode in 2020 schreef Nico diezelfde aanpak ook voor de JavaScript-versie van Stryker. De code is inmiddels drie keer volledig herschreven. Niet omdat het misliep, maar omdat het steeds beter kon.
Groter dan verwacht
Stryker liet zijn sporen na, ook intern. Bij Info Support ontstond mede dankzij dit project een open source community en werd er structureel tijd vrijgemaakt voor open source initiatieven. Een beleid dat tot op de dag van vandaag geldt. Ook buiten de organisatie groeide de naamsbekendheid van Stryker. Nico herinnert zich nog goed het moment dat ChatGPT net beschikbaar was en Stryker werd genoemd als aanbevolen mutation testing framework. En misschien nog wel mooier: het moment waarop een concurrent Stryker adviseerde bij een klant. “Dan weet je dat je iets hebt gebouwd dat ertoe doet.”
Jouw idee, jouw impact
Voor Nico zit de waarde van Stryker niet in de downloadcijfers, maar in de impact. “Ik vind het gewoon hartstikke leuk als mensen software gebruiken die echt waarde heeft voor ze.”
Zijn boodschap aan afstudeerders is helder: bij Info Support krijg je de ruimte om met je eigen ideeën aan de slag te gaan. Stryker is daar een bewijs van.
Meer info over Stryker vind je hier.
