Continuous integration bij de NS

Klant

De Nederlandse Spoorwegen richten zich op veilig, betaalbaar en makkelijk reizen per spoor in Nederland. De IT- afdeling RTSO (reisinformatie en IT Service Organisatie) verzorgt alle zogenaamde ‘comfort-IT’ in de treinstellen van de NS. Rick vertelt hieronder meer over zijn opdracht bij de NS. Het software pakket OBIS verzorgt de distributie van alle data die uitgewisseld wordt tussen een treinstel en de ‘wall’, waar alle reisinformatie en bijsturing ontstaat. Het doel: de reiziger zo goed mogelijk op de hoogte te houden van de reis per trein.

Sinds maart 2010 is het OBIS systeem ‘live’: de eerste integratie was in het intercity materieel, ook wel Koploper genoemd. Sindsdien volgden de andere treintypen, en is OBIS naast reisinformatie op TFT schermen en Wifi Access points ook uitgebreid met automatische omroepen (sprinters), integratie van CCTV en interne meetsystemen.

Vraag

NS is continu op weg met de reis van morgen, het reisgedrag en de planning van de klant is sinds 2010 aardig veranderd. Daarom zijn er verschillende projecten gaande, die invloed hebben op het OBIS systeem, dat in wezen door vier ontwikkelteams wordt samengesteld. Elke drie weken is er een nieuwe release vanuit deze teams. Bij het Release en Acceptie Team (RAT) ligt de taak om de componenten op integratie en performance te testen, en uiteindelijk een succesvolle ketentest uit te voeren. Hierbij komt ook embedding kijken: elk treintype heeft weer een andere hoofdleverancier, en meerdere sub-leveranciers.

Om de software uitrol op het rijdende materieel te versnellen, heeft de NS in samenwerking met de leveranciers zogenaamde test ‘muren’ laten maken. Zo’n testmuur bevat alle schermen, wifi, speakers, sensoren, etc. die ook in een écht treinstel voorkomen. Het team zorgt er middels SOAP UI en eigenhandige scripting voor, dat er ritten gereden worden volgens de dienstregeling. Ook worden er testscenario’s uitgevoerd, die niet zo snel in een echte trein voorkomen. Denk hierbij aan test van de Alarmknoppen en het CCTV systeem.

Is de OBIS versie goed genoeg om uitgerold te worden? Dan volgt een statische trein-test, een echt treinstel waarop we een rit uit de echte dienstregeling ‘mocken’: we voeden de trein onder andere gps-posities en deursignalen, zodat er een volledige reisinfo-broadcast plaats kan vinden, zonder dat het treinstel rondrijdt op het Nederlandse spoornet. Deze statische test levert al vaak veel bevindingen op, en bespaart de NS op de inzet van dynamische testtreinen.

Om alles goed af te dekken volgt dan vaak nog een dynamische test, meestal met passagiers, waarbij gelet wordt op de functionele werking van het systeem. Dit wordt als het laatste vangnet gezien, voordat er een nieuwe release de deur uit gaat.

Testen en Tweaken

Mijn naam is Rick en in dit project is mijn taak het onderhouden en tweaken van de testscripts, het bijhouden van de regressietesten. Daarnaast denk ik ook mee over een continuous integration-oplossing. Hierbij komt een stuk testautomatisering kijken middels Jenkins, Soap UI, Ansible en diverse virtuele machines. Door de ketentesten eerst op de CI-straat te testen ontdekken we eerder functionele en technische mankementen. Ook werken we aan draagbare oplossingen voor de statische tests, zodat we nog meer testen en analyses kunnen uitvoeren op de hardware in een stilstaande trein.

Shift Left

De CI-straat draag bij aan de algemene ‘shift-left’ beweging die momenteel gaande is binnen de afdeling OBIS. Daarnaast is er ook op proces-vlak een trend te zien. Middels het wekelijkse bevindingen-overleg, waar Project Owners van de teams, System-team en de testers samenkomen, vinden bevindingen sneller hun weg. We spelen daarmee in op de planning sessies voor teams en we kijken wanneer welke bug wordt opgepakt. Hiermee leer ik steeds meer over de samenstelling van OBIS en kunnen we verbeteringen sneller doorvoeren vanuit de OBIS-fabriek.