Magnet.me  -  Het slimme netwerk waarop hbo‑ en wo‑studenten hun baan of stage vinden.

Het slimme netwerk waarop hbo‑ en wo‑studenten hun baan of stage vinden.

Deze vacature is verlopen. Je kunt daarom niet meer liken of solliciteren.

Vergelijkbare vacatures bekijken

Software development: Stryker Mutator voor Continuous Integration

Geplaatst 23 mrt. 2024
Werkervaring
0 tot 1 jaar
Full-time / part-time
Full-time
Functie
Salaris
€ 1.000 per maand
Soort opleiding
Taalvereiste
Nederlands (Vloeiend)

Je carrière begint op Magnet.me

Maak een profiel aan en ontvang slimme aanbevelingen op basis van je gelikete vacatures.

Afstudeeropdracht: Stryker Mutator voor Continuous Integration

Veenendaal

Fulltime

De beste methode om mutation testing in Continuous Integration scenario’s te versnellen met behoud van kwaliteit. Dat is de uitdaging van deze opdracht. En je oplossing moet onafhankelijk van een specifiek mutation testing framework werken.

Benodigde interesse(s)

  • Continuous Integration
  • Open Source
  • Automated testing

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

We maken bij Info Support graag gebruik van Continuous Integration (CI). Bij CI voer je de automatische tests en andere code checks uit bij iedere code wijziging op de master branch. Hierbij is het belangrijk dat de CI build niet te lang duurt. Graag zou je ook de effectiviteit van je tests willen valideren met mutation testing, maar door de lange duur is dit niet altijd mogelijk.

Bij het inzetten van Mutation Testing in een CI scenario zijn er wellicht mogelijkheden om het proces te versnellen. Bijvoorbeeld door enkel de bestanden die veranderd zijn (de “diff”) opnieuw te mutation testen. Hierdoor zou je veel sneller tot een resultaat kunnen komen.

De opdracht

Onderzoek wat de beste methode is om mutation testing in CI scenario’s te versnellen. Hierbij is het ook belangrijk dat er rekening wordt gehouden met de kwaliteit van het resultaat. Bij voorkeur is het uiteindelijke resultaat van een CI mutation test run niet anders dan wanneer je een volledige run had gedaan over alle code. De gekozen methode moet onafhankelijk van een specifiek mutation testing framework kunnen werken.

Bewijs dat je oplossing werkt door een Proof of Concept (PoC) te implementeren in een mutation testing framework naar keuze.

Over Stryker

Vakmanschap is één van de kernwaarden van Info Support. We vinden goede codekwaliteit belangrijk. Hiervoor zorgen we dat onze code goed getest is. Dit doen o.a. door het schrijven en uitvoeren van unit tests. Maar hoe weet je nu of je unit tests effectief 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 productie code. 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.

Een nadeel van mutation testing is dat het lang kan duren. Doorgaans wordt voor iedere mutant (een deel van) je tests opnieuw uitgevoerd. Afhankelijk van de grootte van je project kan het dus meerdere uren duren.

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:

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

Nadat Stryker klaar is wordt er een mutation score gerapporteerd. De verschillende frameworks stellen je ook in staat om het proces (en dus ook de build) te laten falen bij een té lage mutation score.

Maatwerksoftware bouwen waar miljoenen mensen dagelijks gebruik van maken. Dat is ons werk. Voor grote gerenommeerde klanten in Nederland en België. Betrouwbaar, schaalbaar en onderhoudbaar. Wij gaan voor software oplossingen van zeer hoge kwaliteit. Binnen de afgesproken tijd en het budget.
Door samen continu te vernieuwen helpen we klanten en de wereld significant vooruit. Onze ambitie en drive maakt ons vastberaden om topkwaliteit te leveren en voorop te lopen. Can you do IT?

ICT
Veenendaal
Actief in 2 landen
500 medewerkers
90% mannen - 10% vrouwen
Gemiddeld 30 jaar oud

Dit zeggen medewerkers

Daniel

IT Consultant

Daniel

Mijn technisch begeleider tijdens mijn afstuderen bij Info Support is een voorbeeld voor mij. Hij heeft twee jaar meer ervaring en is nu teamlead geworden. Dat zou voor mij een mooi streven zijn. Ik heb het aangegeven tijdens mijn ambitiegesprek en we gaan er naartoe werken. Ik kijk ernaar uit!

Daan

IT-consultant

Daan

Ik wilde tijdens mij afstuderen graag aan iets tastbaars werken. Bij Info Support had ik ruime keuze uit opdrachten. Ik koos ervoor om een smartwatch-applicatie te gaan ontwikkelen die mensen met een visuele beperking op treinstations de weg kan wijzen.