Afstudeeropdracht in Software Development: Better mutation testing for Java
Uitdagende HBO afstudeeropdracht met €1000 bruto vergoeding of €500 + leaseauto of €600 + woonruimte, professionele begeleiding, trainingen, kennisavonden, sparren met collega’s en 2 vakantiedagen p/m
We reageren meestal binnen drie dagen
Onderzoek de implementatie van Mutant Schemata in Java, een alternatief voor de huidige standaard, PITest. Ondanks de kracht van bytecode mutatie, kent het nadelen zoals onnauwkeurigheid, onbereikbare mutanten en performance overhead. Jouw taak is het analyseren van deze techniek, de voor- en nadelen ten opzichte van PITest te evalueren en een prototype te ontwikkelen. Dit werk kan bijdragen aan verbeteringen in mutation testing en de basis vormen voor toekomstige open-source ontwikkelingen.
💡Interessegebieden: Java, Automatisch testen, Open source ontwikkeling
Vakmanschap is één van de kernwaarden van Info Support. We vinden goede codekwaliteit belangrijk. Om te zorgen dat onze code grondig getest is, schrijven en voeren we onder andere unit tests uit. Maar hoe bepaal je de effectiviteit van je unit tests? Hier komt mutation testing om de hoek kijken.
Bij mutation testing voert een framework kleine wijzigingen door in je productiecode. Zo kan bijvoorbeeld een > teken veranderen in een >= teken, wat resulteert in een mutant. Vervolgens draait het framework je tests. Faalt er ten minste één test, dan is de mutant ‘killed’. Slagen alle tests, dan heeft de mutant ‘survived’. Het percentage ‘killed’ mutants wordt de mutation score genoemd. Hoe hoger deze score, hoe effectiever je unit tests zijn.
Pitest is het mutation testing framework voor Java, dat werkt op basis van bytecode mutatie. De code wordt eerst naar bytecode gecompileerd, waarna mutanten één voor één worden ingevoerd in de bytecode en getest.

Stryker is een mutation test framework voor .NET, JavaScript, Scala en in de toekomst ook Kotlin. Het wordt ontwikkeld door Info Support als open source tool (met inmiddels meer dan 10 milioen downloads). Stryker werkt altijd met mutant schemata. Bij mutant schemata worden de mutanten allemaal tegelijk in de broncode gezet, maar er kan er maar één tegelijk actief zijn.

Dit is een voorbeeld van mutant schemata bij JavaScript:

Wanneer je mutation testing wilt toepassen in Java-projecten, is PITest momenteel de go-to keuze. Dit betekent dat er gebruik wordt gemaakt van bytecode mutatie, wat enkele nadelen met zich meebrengt:
- Accuratie: Het is niet mogelijk om de exacte locatie van een mutant in de broncode aan te duiden
- False positives: Er worden mutanten gegenereerd die in Java niet gecreëerd kunnen worden
- Performance: Voor het testen van een mutant moet deze eerst aan de bytecode worden toegevoegd, wat aanzienlijke overhead veroorzaakt

De opdracht
Onderzoek hoe Mutant Schemata in Java geïmplementeerd kan worden en welke voordelen en nadelen dit heeft t.o.v. PITest. Ontwikkel vervolgens een prototype om je bevindingen te bewijzen.
Wanneer het prototype succesvol is kunnen we deze in open source verder ontwikkelen onder de noemer Stryker mutator.
Over Info Support
Info Support is specialist in maatwerksoftware, data/AI solutions, beheer en trainingen en actief in de sectoren Finance, Industry, Agriculture, Food & Retail, Mobility & Public en Healthcare. Wij bieden solide en innovatieve oplossingen voor complexe en bedrijfkritische softwarevraagstukken. Onze hoofdkantoren zijn gevestigd in Veenendaal (NL) en Mechelen (BE). Op dit moment zijn er circa 500 medewerkers bij Info Support in dienst.
De werkwijze van Info Support kenmerkt zich door een aantal kernwaarden: soliditeit, integriteit, vakmanschap en passie. Deze kernwaarden zijn verweven in ons werk en de manier waarop we met elkaar omgaan.
Om te zorgen dat alle medewerkers altijd op de hoogte kunnen zijn van de nieuwste ontwikkelingen beschikt Info Support over een inhouse kenniscentrum waar graag wordt voldaan aan de honger naar meer of andere kennis en vaardigheden.
Om deze opdracht te kunnen doen is B2-taalvaardigheid in het Nederlands vereist.
- Afdeling
- Student Bachelor
- Rol
- Software Development
- Locaties
- Info Support Nederland
- Status werken op afstand
- Hybride
Waarom afstuderen bij Info Support?
-
🧑🏫 Betrokken begeleiding
» Persoonlijke mentoren
» Wekelijks sparren met experts
» Trainingen en kennisavonden -
💰 Kies je vergoeding p/m
€ 1000,00 euro vergoeding
€ 500,00 euro + een leaseauto
€ 600,00 euro + woonruimte -
⚖️ Flexibiliteit & balans
» Hybride werken
» Flexibele werktijden
» Enkel focus op je afstuderen
Een kijkje achter de schermen
CodeDocent
In deze aflevering van CodeDocent legt Nico Jansen, docent bij het Info...
Josse @ Info Support
Josse vertelt over zijn ervaring als starter bij Info Support
Klantcasus voorbeeld
KPN is door Info Support op speelse wijze begeleid richting DevOps.
Groeien in een omgeving vol vakkennis en plezier
-
🌞 Warme bedrijfscultuur
» Informele en open cultuur
» Je maakt meteen deel uit van het team
» Wekelijkse kennissessies
» Community-events
» Een geweldig nieuwjaarsfeest! -
❤️ Passie & Vakmanschap
» Collega’s met échte passie voor het vak
» Leer van collega’s die graag hun kennis delen
» Samenwerken met experts die jou scherp houden -
🌱 Doorgroeikansen
» Afstuderen vormt het startpunt van je carrière
» Kans om na je afstuderen direct door te stromen
» Heldere ontwikkelpaden en groeimogelijkheden
Jouw weg naar Info Support
-
🖥️ Digitale kennismaking
In een digitale kennismaking vertel jij wie je bent en waar je naar op zoek bent. Wij vertellen meer over wie wij zijn en wat we jou kunnen bieden. Zo ontdekken we samen of er een klik is.
-
🔍 Online assessments
Via twee online assessments krijgen we een goed beeld van wie jij bent en wat je kunt. Je persoonlijkheid en drijfveren komen aan bod, net als je vakinhoudelijke kennis.
-
🏢 Eindgesprek bij ons op kantoor
Op basis van de assessments krijgen we inzicht in jouw profiel. We gaan in op jouw persoonlijkheid, sparren met een vakcollega en nemen de tijd om de persoon achter de resultaten echt te leren kennen.
-
✍️ Persoonlijke afronding
Na het gesprek stemmen we de laatste zaken verder af en leggen we de basis voor een goede samenwerking. Daarna volgt een persoonlijk tekenmoment bij onze directeur.