Afstudeeropdracht in Software Development: Stryker.NET hot reload mutating and testing
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
Hot reload kan mogelijk de performance verbeteren door enkel noodzakelijke delen van de code opnieuw te compileren en irrelevante unit tests te verwijderen. Het doel is te onderzoeken of deze techniek het plaatsen van mutanten en het uitvoeren van relevante tests ten goede komt. Vervolgens bewijs je de resultaten met een Proof of Concept en draag je jouw bevindingen en implementatie aan bij de open source Stryker community.
💡Interessegebieden: Mutation Testing, Open Source, .NET
Stryker is het mutation test framework voor .NET, JS/TS en de JVM. Bugs, of mutanten, worden automatisch gegenereerd in jouw source code. Vervolgens worden per mutatie alle unit tests uitgevoerd. Wanneer minimaal één test faalt, markeren we de mutatie als killed. Als de tests slagen, markeren we de mutatie als survived. Hoe meer killed mutaties, hoe effectiever jouw unit tests. Dit geeft een beter beeld dan code coverage omdat daadwerkelijk bewezen wordt dat de tests effectief zijn.
De huidige workflow in Stryker is als volgt:
- De gebruiker installeert Stryker en roept deze aan via command line
- Stryker plaatst mutaties in de sourcecode door ze in conditional statements te zetten
- Door het switchen van een globale variabele kunnen deze mutaties geactiveerd worden
- Stryker zoekt uit welke mutaties tegelijk gedraaid kunnen worden, oftewel welke mutaties geen conflicterende code paden hebben
- Stryker start per mutatie batch een test sessie op en zet bepaalde mutaties aan
- Stryker bekijkt de test resultaten om te bepalen of een mutatie killed of survived is.
Het veelvuldig compileren en testen van mutaties kost veel tijd. Om dit te beperken plaatst Stryker de mutaties met behulp van conditional statements in de sourcecode. Hierdoor is meestal maar één compilatie nodig, ongeacht het aantal mutaties. Het plaatsen van mutaties in conditional statements kan echter complex en foutgevoelig zijn.
Een alternatieve en in theorie veiligere methode is het plaatsen van mutaties één voor één. Het nadeel aan deze methode is dat elke aanpassing aan de broncode een nieuwe compilatie vereist.
Tijdens een recent overleg met Microsoft-ontwikkelaars kwam het onderwerp ‘hot reload’ voorbij. Door middel van hot reload kan de C#-compiler ontdekken welke codepaden zijn aangepast en zal de compiler alleen de noodzakelijke delen hercompileren. Deze techniek is ook toepasbaar op unit tests waardoor we potentieel alle niet relevante unit tests uit de broncode kunnen verwijderen. We weten echter nog niet hoe we hot reload programmatisch aan kunnen roepen en in hoeverre dit de bestaande conditional statements techniek kan ondersteunen of vervangen.
De opdracht
Onderzoek:
Onderzoek of hot reload het plaatsen van mutanten, het uitvoeren van de relevante unit tests en de performance van Stryker ten goede komt.
Implementatie:
Bewijs met behulp van een Proof of Concept de conclusies uit het onderzoek. Maak een plan voor de implementatie van hot reload in Stryker en draag dit bij aan de open source Stryker community.
Relevante documentatie:
https://learn.microsoft.com/en-us/visualstudio/debugger/edit-and-continue-visual-csharp
https://learn.microsoft.com/en-us/visualstudio/test/test-execution-with-hot-reload
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.
-
🔍 Technisch assessment
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.
Afstudeeropdracht in Software Development: Stryker.NET hot reload mutating and testing
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
Het sollicitatieformulier wordt geladen