Eerst even over de app zelf, wat kan je daar nou precies mee? Heel simpel: met de NS International app plan je een internationale treinreis en een ticket is er ook zo mee geboekt. Makkelijk in gebruik dus voor klanten, maar dat betekent natuurlijk dat de techniek aan de achterkant uiterst soepel moet verlopen. Fokke-Jan en zijn team leveren daar een grote bijdrage aan. Vlak nadat een belangrijke update live is gegaan, vertelt hij ons over de technische uitdagingen die hij en zijn collega’s met passie en kennis aangaan.

Eén team, twee apps

Fokke-Jan doet meteen de eerste uitdaging uit de doeken: “Heb je het over ‘de’ app van NS International – het onderdeel van de Nederlandse Spoorwegen dat zich richt op reizen over de grens – dan gaat het eigenlijk om twee apps. Een versie voor Android én versie voor iOS, het welbekende besturingssysteem van Apple.” Hoewel het bij het ontwikkelen en testen van de beide versies volgens Fokke-Jan “om twee heel verschillende werelden” gaat, is er in de praktijk één team verantwoordelijk voor.

Geen hindernis, maar afwisseling

Dat vraagt om veel gedegen kennis van twee compleet verschillende programmeertalen. “Aan de ene kant is dat Swift, een op Objective-C gebaseerde taal voor iOS,” legt Fokke-Jan uit. “En Android werkt tegenwoordig met Kotlin, de opvolger van Java.” Het team switcht veel tussen die verschillende omgevingen, vertelt de Test Consultant: “Dat kun je als hindernis zien, maar eigenlijk maakt dat ons werk vooral heel erg afwisselend.”

Gesloten systeem

Niet alleen de programmeertalen zijn anders, ook de manier waarop ontwikkelaars en testers met iOS en Android moeten omgaan is heel verschillend. Fokke-Jan: “Alleen Apple-devices werken met iOS. Het is nog steeds een veel meer gesloten systeem dan Android, dat op toestellen van een groot aantal fabrikanten wordt gebruikt. Wil je binnen de iOS-omgeving zaken voor elkaar krijgen, dan kan dat moeizaam zijn. De greep op de applicaties is bij Apple heel sterk.”

“Geautomatiseerd flows doorlopen werkt super efficiënt.”

Efficiënte test automation

Adequate test automation is een belangrijk onderdeel van Fokke-Jan zijn werk: “Bij het automatisch testen maken we gebruik van bepaalde frameworks. En ja, ook daarbij zien we weer verschillen tussen Android en iOS.” Waar het team voor Android-applicaties Espresso inzet, wordt binnen de Apple-omgeving XCUI-test gebruikt om testprocessen te automatiseren. “Zo kun je bepaalde flows geautomatiseerd doorlopen, die je anders op een tijdrovende manier handmatig moest doen. Dat werkt super efficiënt.”

API-connecties testen

Ook het testen van de API-connecties vormt een belangrijk onderdeel van Fokke-Jan zijn dagelijkse werk. “We testen bijvoorbeeld de verwerking van de data die de NS International app ontvangt vanuit andere bronnen, zoals de verschillende spoorwegmaatschappijen. Daarmee vangen we al heel veel mogelijke storingen en fouten af.” Maar, zo zegt de ervaren Test Consultant, er kan nog veel meer geautomatiseerd worden. En dat is wéér zo’n leuke uitdaging die om de hoek komt kijken.

Snapshot testen met AI

“Zo willen we stappen zetten in geautomatiseerde snapshot testen.” Daarbij vergelijkt de testtool screenshots voor en na aanpassingen in de app met elkaar – en registreert de verschillen. “Veel tools werken daarbij pixel perfect, en kijken dus of beide snapshots volledig identiek zijn. Dat is bij deze app niet altijd nodig.” Zo wil Fokke-Jan dynamische data, zoals de prijs van een reis of de reisdata, buiten beschouwing laten. “Het gaat vooral om het vergelijken van de user interfaces.” De tool die de NS daarvoor inzet maakt gebruik van AI, “een mooie aanvulling op bestaande frameworks.”

“Het jonge karakter van mobile maakt dat het team veel ruimte krijgt.”

Innovatieve technologie

De app ontwikkelaars hebben trouwens een duidelijke wens: de app moet zoveel mogelijk los staan van de webapplicatie. “We willen de gebruiker ín de app houden. Daarom werken we hier echt native mobile en dat is een andere wereld dan de webteams kennen.” Juist dat maakt het werk zo leuk, stelt Fokke-Jan. “Het is heel actuele en innovatieve technologie, dat spreekt me enorm aan. Het jonge karakter van mobile maakt dat het team veel ruimte krijgt. We mogen veel zelf uitzoeken en uitvinden.”

Feedback van gebruikers

Nog zoiets leuks: “Je kunt in beide omgevingen, Android en iOS, snel zaken aanpassen en testen.” Nadat de app intern door medewerkers is uitgeprobeerd, worden nieuwe updates gefaseerd uitgerold naar een steeds grotere groep gebruikers. Dat geeft natuurlijk interessante feedback, die ook bij de developers en testers terecht komt. “Regelmatig ontvangen we concrete wensen en verwerken die dan.” De grote update die net live is gegaan zorgt volgens Fokke-Jan voor een grote verbetering in gebruiksvriendelijkheid en stabiliteit. “Reizigers zullen positief verrast zijn!”

Blijven leren

In dit alles werkt Fokke-Jan met een klein en flexibel team samen. “Dat bestaat uit een backender, naast twee of drie ontwikkelaars per iOS en Android-omgeving en dan ikzelf als tester.” Hoewel hij de enige tester is, kent Fokke-Jan veel Salves-collega’s al langer. “Het is fijn werken bij Salves. Je kunt er veel kennis opdoen, hebt fijne collega’s, mooie klussen en niet onbelangrijk: we hebben een zo goed als onbeperkt opleidingsbudget.” Van dat laatste geeft hij meteen een voorbeeld: “Ik volg nu een opleiding tot iOS-developer. Niet om daarvan mijn werk te maken, maar wél om het systeem en de developers die ermee werken nog beter te begrijpen.”