Real-time reporting voor Stryker Mutator

De html (web) rapportage van Stryker (zowel .NET, 4s als JS) krijg je pas op het einde van je test. Dat kan letterlijk uren duren. Het doel van deze opdracht is om de rapportage real-time te maken.

Benodigde interesse(s)

  • HTML/CSS
  • JS/TS
  • .NET/Java
  • Unit testen

Wat krijg je

  • Een uitdagende afstudeeropdracht
  • € 1000 vergoeding, € 500 + leaseauto of € 600 + woonruimte
  • Professionele begeleiding
  • Trainingen gericht op jouw afstudeertraject
  • Sparren met andere afstudeerders en collega’s
  • Twee vakantiedagen per maand

Wat je gaat doen

  • 35% Afstudeeronderzoek
  • 40% Analyseren, ontwerpen, realiseren
  • 25% Documentatie

Een nadeel van mutation testing is dat het veel tijd kost. Doorgaans wordt voor iedere mutant (een deel van) je tests opnieuw uitgevoerd. Dit kan voor sommige projecten meerdere uren duren. Hierdoor voer je mutation testing meestal uit op een build server in je continuous delivery pipeline. Zo kan het zijn dat je pas na enkele uren een rapport te zien krijgt. Het zou mooi zijn als je real-time feedback zou kunnen krijgen, zodat je alvast met de nieuwe informatie aan de slag kunt.

Een voorbeeld van zo’n Stryker rapport is terug te vinden op: https://dashboard.stryker-mutator.io/reports/github.com/stryker-mutator/stryker-js/master.

 

De opdracht

Onderzoek wat de beste techniek is om real-time feedback te kunnen geven op een mutation testing proces. De oplossing moet werken onafhankelijk van een specifiek mutation testing framework. Ook moet de oplossing schaalbaar zijn, zodat deze kan werken voor een groot aantal projecten. Bij voorkeur moet deze oplossing te integreren zijn in het Stryker Dashboard.

Ontwikkel een Proof of Concept (PoC) en laat zien dat deze werkt door de real-time rapportage te implementeren in ten minste één mutation testing framework.

Over Stryker

Vakmanschap is één van de kernwaarden van Info Support. We vinden goede codekwaliteit belangrijk. Daarom zorgen we ervoor dat onze code goed getest is. Dit doen we o.a. door het schrijven en uitvoeren van unit tests. Maar hoe weet je nu of je unit tests effectief zijn? Hier passen we graag mutation testing toe.

Een mutation testing framework maakt kleine wijzigingen in je productiecode. Een `>` teken verandert bijvoorbeeld in een `>=` teken. Er ontstaat dan een mutant. Hierna voert het framework je tests uit. Als ten minste 1 test faalt, dan is de mutant killed. Slagen al je tests, dan is de mutant survived. Het percentage van killed mutants wordt de mutation score genoemd. Hoe hoger de mutation score, hoe effectiever je unit tests zijn. De mutation score zegt dus 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, of simpelweg ‘Stryker’, is een open source mutation testing framework waar Info Support de maintainer van is. Veel collega’s dragen hieraan bij, in vrije tijd en in Info Support tijd. Stryker bestaat uit 3 implementaties:

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

Op onze website https://stryker-mutator.io vind je een introductie tot mutation testing, als ook een een voorbeeld project in JavaScript.

Meld je aan voor deze opdracht

  • Geaccepteerde bestandstypen: docx, doc, txt, pdf.
  • Geaccepteerde bestandstypen: docx, doc, txt, pdf.

Sollicitatieprocedure

  1. 1
  2. Kennismakingsgesprek

    Bespreek (studie) loopbaan, interesses en ambities en introductie Info Support.

  1. 2
  2. Beoordelingen

    Assessment van professionele kennis en persoonlijkheid (capaciteit, competenties en motieven).

  1. 3
  2. Selectie interview

    Professionele kennis en persoonlijkheid verdiepen.

  1. 4
  2. De ondertekening van een contract

    Contractaanbieding en uitnodiging voor tekenmomenten.