Afstudeeropdracht: Stryker Cloud Orchestrator
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!FunctiebeschrijvingStryker is hét 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 1 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. Maar het is langzaam…. In deze opdracht ga jij daar een oplossing voor bouwen.Functie-eisenAl 6 jaar wordt er hard aan Stryker gewerkt maar er blijft een groot nadeel, een mutation test run met Stryker kan soms uren duren… Dit moet sneller kunnen!
De huidige workflow in Stryker is als volgt:
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 mutatiebatch een test sessie op en zet bepaalde mutaties aan.
Stryker bekijkt de testresultaten om te bepalen of een mutatie killed of survived is.
Op één enkel systeem heeft een developer met geluk misschien 16 threads beschikbaar. Hiermee kan de developer wellicht 12 batches tegelijk testen zonder dat het systeem onbruikbaar wordt. Zelfs wanneer we toevallig grote mutant batches kunnen maken betekent dit al snel honderden test sessies voor een klein project, waarvan we er met geluk 12 tegelijk kunnen draaien.
We zouden Stryker significant kunnen versnellen door het werk te verspreiden over meerdere machines. We weten echter niet hoe we het mutation test proces het beste distributed uit kunnen laten voeren op een manier waarbij we dit niet in elke Stryker versie opnieuw moeten implementeren.ArbeidsvoorwaardenDe opdracht
Aan jou is het de taak om uit te zoeken hoe we een generiek inzetbare oplossing kunnen creëren voor distributed mutation testing. Hier komt een stuk onderzoek bij kijken.
De mutated broncode moet verspreid worden over de verschillende betrokken machines. Hoe kunnen we dit snel en veilig doen?Er moet een interface bedacht worden voor uitwisseling van de input data (mutaties, broncode, overige bestanden) en het mutatietest resultaat. Deze interface moet om kunnen gaan met de verschillende manieren waarop mutation test frameworks hun data modelleren.Er moet onderzoek worden gedaan naar orchestration technieken of mogelijke bestaande tooling die hergebruikt kan worden.Wanneer we de orchestration als clouddienst aanbieden aan gebruikers gaan we onbekende broncode uitvoeren op onze hardware. Het is uitermate belangrijk dat dit veilig gebeurt en dat de onbekende software geen toegang kan krijgen tot onderliggende systemen.Bewijs je conclusies door middel van een proof of concept implementatie van de orchestrator.
Mocht de oplossing goed werken dan zou het kunnen dat we deze oplossing op het stryker dashboard https://dashboard.stryker-mutator.io/ aansluiten en aanbieden aan andere open source projecten!
Wat biedt Info Support jou tijdens je afstudeerperiode?
Uiteraard bieden we je een uitstekend pakket aan afstudeervoorwaarden met verschillende keuzemogelijkheden. Denk hierbij aan:
Laptop, alle benodigde tools en ontwikkelomgevingen om je opdracht succesvol uit te kunnen voerenEen afstudeervergoeding waarbij je de keus hebt uit:
€ 1000,- bruto per maand€ 500,- bruto per maand + leaseauto met tankpas€ 600,- bruto per maand + woonruimte in Veenendaal
Tijdens je afstudeerstage word je opgenomen in een van onze business units. Zo krijg je direct een goed beeld van de ontwikkelingen binnen onze projecten.
Daarnaast biedt Info Support jou:
Een uitdagende afstudeeropdracht bij een solide, groeiend en financieel gezond bedrijfProfessionele en ervaren begeleiding, hybride werkenEen afstudeerprogramma met onder meer trainingen, kennisavonden, projectbezoek, activiteiten en team-, unit- en bedrijfsuitjesExperimenteren met nieuwe producten en releases die in de pre-releasefase zittenSparren met andere afstudeerders en collegiale en gepassioneerde IT-collega'sUitzicht op het IT Top Traineeship mét een vast dienstverband!
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. Ook dit jaar zijn we uitgeroepen tot Top Employer Nederland!
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.