Terug naar overzicht

WebScale User Statistics voor Stryker Mutator

Niet alleen afstuderen, maar direct een wezenlijke bijdrage leveren aan het IT-vakgebied? Dat kan met deze afstudeeropdracht, waarin je aan de slag gaat met Stryker Mutator; het open Source mutation testing framework waar Info Support de maintainer van is. Uiteraard word je vanaf dag 1 opgenomen in de Open Source Community van Info Support en krijg je passende Stryker T-shirt en sokken!

Neem contact op met

Mutation testing

Vakmanschap is één van de kernwaarden van Info Support. We vinden goede kwaliteit van code belangrijk, dus zorgen we dat deze goed getest is. Dit doen we onder meer door het schrijven en uitvoeren van unit tests. Maar hoe weet je nu of de unit tests goed zijn? Eén mogelijkheid is om de code coverage te meten. Met code coverage meet je welke code precies geraakt wordt door je tests. Helaas zegt code coverage niks over de effectiviteit van je unit tests. Het is perfect mogelijk om een test te schrijven die 100% van je code raakt, maar toch 0% van je code test. Dit is waarom wij liever ‘mutation testing’ toepassen.

Een mutation testing framework maakt kleine wijzigingen in je productiecode. Er ontstaat dan een ‘mutant’. Hierna worden je tests uitgevoerd. Als je tests falen dan is de mutant ‘killed’. Slagen de tests dan is de mutant ‘survived’. Het percentage van killed mutants wordt de ‘mutation score’ genoemd. De mutation score zegt veel meer over de kwaliteit van je tests dan code coverage. Het is de enige manier om aan te tonen dat je tests effectief zijn.

Stryker Mutator

Stryker Mutator, of simpelweg ‘Stryker’, is een open source mutation testing framework waar Info Support de maintainer van. Veel collega’s dragen hieraan bij, in eigentijd en Info Support tijd. Stryker bestaat uit 3 implementaties:

  • Stryker: Het mutation testing framework voor JavaScript en TypeScript
  • Stryker.NET: Het mutation testing framework voor C#
  • Stryker4s: Het mutation testing framework voor Scala

Naast deze frameworks is er ook een dashboard beschikbaar waar de actuele mutation score is terug te vinden van sommige projecten: https://dashboard.stryker-mutator.io.

Momenteel is het niet duidelijk hoe Stryker precies wordt gebruikt bij verschillende klanten/organisaties. We weten op dit moment het antwoord niet op redelijk basale vragen, zoals:

  • Hoe lang duurt het gemiddeld om Stryker uit te voeren?
  • Hoe lang duurt het voor nieuwkomers om Stryker aan de praat te krijgen?
  • Hoe groot zijn de projecten waar Stryker wordt ingezet?
  • Welke configuraties zijn populair?

Door het verzamelen van gebruikersstatistieken kunnen we het antwoord vinden op deze vragen. Daarnaast zijn er misschien nog meer vragen waar we antwoord op kunnen krijgen zonder dat we dit weten. Wel moet de oplossing schaalbaar zijn, omdat Stryker over de hele wereld gebruikt wordt.

Opdracht

Je onderzoekt welke gebruikersstatistieken belangrijk zijn en hoe deze verzameld kunnen worden. Hierbij is het privacy aspect van groot belang. We moeten zeker zijn dat we de wereldwijde gegevens die we nodig hebben ook mogen verzamelen. Gelukkig hebben we collega’s die expert zijn op dit gebied en je hierbij kunnen helpen.

Het verzamelen van statistieken mag geen meetbare impact hebben voor de eindgebruikers. De gebouwde oplossing moet daarom schaalbaar worden opgezet, zodat het wereldwijd de gewenste performance en uptime behaald wordt. Een WebScale (microservices/event driven) architectuur ligt dus voor de hand.

We willen natuurlijk ook je oplossing echt werkt. Om dit te valideren moet het verzamelen van de statistieken in ten minste één van de 3 Stryker frameworks worden geïmplementeerd.

Benodigde technieken en/of kennis

  • Java/Scala of
  • C#/.NET of
  • Javascript/Typescript

Optioneel is ervaring met de volgende technieken handig

  • Big Data & Algoritmes
  • Continuous Delivery

Extra informatie

Bij Info Support doorloop je als sollicitant de volgende stappen: kennismakingsgesprek, E-assessment, selectiegesprek en contractondertekening.

Het tempo van de procedure bepaal jij. Zo mag je er rustig de tijd voor nemen, maar alles kan ook op een dag plaatsvinden; van kennismaking tot contractondertekening. We horen graag wat jouw voorkeur heeft.

afbeelding Organiseer het!

Organiseer het!

afbeelding Start je carrière

Start je carrière

afbeelding Ode aan de IT'er

Ode aan de IT'er

afbeelding Get Smarter Magazine

Get Smarter Magazine