Afstudeeropdracht: Stryker Run From Source IDE Integration

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 het mutation test framework dat goed werkt om grote sets te testen. Dit kost echter veel tijd, de ontwikkelaar moet naar de console om de test uit te voeren en vervolgens in de webbrowser de resultaten checken. Het zou fijner zijn als een ontwikkelaar in de eigen IDE een mutant zou kunnen testen, maar hoe maak je een IDE extension? En hoe passen we de architectuur aan van Stryker, zodat ook kleine subsets aan mutanten getest kunnen worden? Dit ga je onderzoeken en aantonen tijdens deze opdracht.Functie-eisenStryker 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 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.

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 codepaden 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.

Dit werkt erg goed, maar kost erg veel tijd om over de gehele oplossing te draaien. Ontwikkelaars moeten daarnaast naar de console om het uit te voeren en vervolgens naar de webbrowser om het resultaat te zien. Het zou veel fijner zijn als een ontwikkelaar in de eigen IDE een mutant zou kunnen testen op dezelfde manier als een ontwikkelaar een unit test zou starten.

Wij weten echter nog niet hoe een IDE extension gemaakt wordt. Daarnaast is de architectuur van Stryker niet erg geschikt om een kleine subset aan mutanten te testen.ArbeidsvoorwaardenDe opdracht
Aan jou is het de taak om uit te zoeken welke architecturele aanpassingen noodzakelijk zijn, zodat stryker efficient kleine subsets aan mutanten kan testen en hoe we dit binnen een IDE kunnen toepassen.
Welke IDEs zijn het meest geschikt om stryker vanuit aan te roepen.Hoe kunnen we in de IDE visueel weergeven dat een stuk code een mutant bevat zonder dat we bij elke code wijziging alle mutanten moeten hergenereren, zodat de performance van de ontwikkelaar niet opgeslokt wordt.Hoe kunnen we in de IDE visueel weergeven dat een mutatie survived dan wel killed is zonder het gehele scherm van de ontwikkelaar te vullen met afleiding.

Bewijs je conclusies door middel van een proof of concept implementatie van een IDE extension en door middel van een implementatie van stryker die efficient kleine subsets aan mutanten kan testen.

Mocht de oplossing goed werken dan zou het kunnen dat we deze oplossing onder de naam van Stryker publiseren in de extension/plugin stores van de IDEs. Daarnaast komt de broncode open source beschikbaar op GitHub!

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.

Aanvullende informatie

Bedrijfsnaam Info Support
Functie titel Afstudeeropdracht: Stryker Run From Source IDE Integration
Adres Kruisboog 42
Postcode 3905TG
Plaats Veenendaal

Vacature Details

Veenendaal
32-40
HBO
Plaatsingsdatum: 13-08-2023
Sluitingsdatum: 26-08-2023
Gesloten
Helaas is deze vacature gesloten