Afstudeeropdracht in Software Development: Angular template support for StrykerJS

StrykerJS, een open source mutation testing framework, biedt op dit moment geen support voor het muteren van Angular Expressies. Hierdoor kan de effectiviteit van tests voor deze expressies niet worden gemeten. Tijdens deze opdracht ga jij onderzoeken op welke manier je de code in templates van Angular projecten met StrykerJS kan muteren.

Solliciteer direct

Benodigde interesse(s)

  • Automated testing
  • Open source
  • Dev tools
  • Front end
  • JavaScript/TypeScript

Wat krijg je

  • Een uitdagende afstudeeropdracht
  • Afstudeervergoeding: € 1000 bruto of € 500 bruto + leaseauto of € 600 bruto + 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

Vakmanschap is één van de kernwaarden van Info Support. We vinden goede codekwaliteit belangrijk. Daarom zorgen we ervoor dat onze code goed getest is. Dit doen we o.a. door het schrijven en uitvoeren van unit tests. Maar hoe weet je nu of je unit tests effectief zijn? Hier passen we graag mutation testing toe.  

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.  

Stryker is het mutation test framework voor .NET, JS/TS en de JVM. Het wordt ontwikkeld door Info Support als open source tool. Inmiddels heeft Stryker meer dan 8 milioen downloads! Meer info: https://stryker-mutator.io/

Probleemstelling

Een Angular project maakt voor de view gebruik van .html  bestanden, of inline html in .ts  bestanden. Binnen dit bestand definieer je dan een componenten door de HTML view te combineren met de TypeScript ‘code-behind’.

Een voorbeeld van een simpel Angular component: 

@Component({
  selector: ‘ex-math’,
template: `<span>{{a + b}}</span>`,
})
export class MathComponent {
  @Input() a = 0;
  @Input() b = 0;
}

In dit voorbeeld is een inline template  terug te vinden: <span>{{a + b}}</span>, met daarin één Angular Expressie: a + b . 

Op dit moment biedt StrykerJS geen support voor het muteren van Angular Expressies. Hierdoor kan de effectiviteit van je tests voor deze expressies niet worden gemeten.

De opdracht

Onderzoek manieren om de code in templates van Angular projecten te muteren d.m.v. StrykerJS. Je kunt hierbij denken aan mogelijkheden om Angular templates te parsen en de expressies hierbinnen te muteren. Implementeer je oplossing in de StrykerJS code base en biedt deze aan als Pull Request.

Hiermee draag je rechtstreeks bij aan de open source tool en help je daarmee developers over de hele wereld.

Wat biedt Info Support jou?

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 voeren
  • Een 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 bedrijf
  • Professionele en ervaren begeleiding, hybride werken
  • Een afstudeerprogramma met onder meer trainingen, kennisavonden, projectbezoek, activiteiten en team-, unit- en bedrijfsuitjes
  • Experimenteren met nieuwe producten en releases die in de pre-releasefase zitten
  • Sparren met andere afstudeerders en collegiale en gepassioneerde IT-collega’s
  • Uitzicht 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.

B2-taalvaardigheid in het Nederlands is vereist.

Procedures

  1. 1
  2. Kennismakingsgesprek

    Na je sollicitatie plannen we iets in en bespreken je (studie) loopbaan, interesses en ambities. We vertellen je over Info Support en jij kan al je vragen stellen.

  1. 2
  2. Assessment

    Gaan we verder? Dan doe je een assessment van je professionele kennis en persoonlijkheid (capaciteit, competenties en motieven).

  1. 3
  2. Selectie interview

    Vervolgens plannen we een selectie interview waarin we dieper ingaan op je professionele kennis en je persoonlijkheid.

  1. 4
  2. De ondertekening van een contract

    Verloopt alles positief dan ontvang je een contractaanbieding. Zijn we het eens? Dan starten we de pre-employment screening en nodigen we je uit voor de tekenmomenten.

Ontmoet Info Supporters