Klant

De Koninklijke Nederlandse Toeristenbond ANWB is een vereniging die met een unieke mix van beïnvloedende en dienstverlenende activiteiten de belangen van haar leden behartigt op het gebied van mobiliteit, vakantie en vrije tijd. Bij dat werk wil de ANWB een bijdrage leveren aan een duurzame ontwikkeling van de samenleving.

Vraag

Een nieuwe propositie is middels een Lean Start-up model in gang gezet. Om zo snel mogelijk klantwaarde op te leveren voor de eerste releases is besloten om gebruik te maken van het software ontwikkelplatform Mendix. Dit is een low-code ontwikkelplatform, wat betekent dat dit ook niet-ontwikkelaars in staat stelt om mee te werken aan het bouwen van bruikbare software en daarmee klantwaarde. De vraag vanuit de klant was in dit geval tweedelig. Aan de ene kant het toetsen van de verwachting dat een niet-ontwikkelaar kan meedraaien bij het leveren van bruikbare software, door het gebruik van een low-code ontwikkelplatform. Aan de andere kant de vraag of ook met een low-code platform de kwaliteit van het eindproduct goed inzichtelijk kan worden gemaakt.

Oplossing

Vanuit Newspark was ik al bij ANWB ingezet om een team te ondersteunen op technisch testvlak. Dit betekende onder andere het opstellen en uitvoeren van testplannen, het schrijven van Postman scripts en suites, het opzetten van applicatie monitoring en ga zo maar door. Toen ik hoorde van de mogelijkheid om een stuk software ontwikkeling erbij te doen was mijn interesse snel gewekt, en ik werd doorgeschoven naar het team dat aan de nieuwe propositie zou werken.

Doen

Het grootste brok van de oplossing ligt in het doen. Mendix is, zoals meerdere low-code ontwikkelplatformen, een opkomend product met een opkomende visie. Het is voor veel mensen en organisaties iets nieuws. Ikzelf ben eigenlijk zo snel mogelijk begonnen met het bouwen van software, onder begeleiding van onze Senior Mendix ontwikkelaar. Na twee weken was ik in staat om zelfstandig een API op te zetten, en binnen een maand had ik mijn basis certificaat binnen. Inmiddels heb ik een deel van onze backend gebouwd, en meegedacht over de architectuur, de datastructuren, de communicatie en afspraken met ons frontend team. Kortom, ik ben een ontwikkelaar.

Kwaliteit

Dan komen we aan bij het tweede punt, namelijk het inzichtelijk krijgen van kwaliteit wanneer een low-code platform wordt gebruikt. Aan de ene kant vangt Mendix een boel issues voor ons af. Zo worden er bijvoorbeeld warnings en errors gelogd op het moment dat we een database handeling willen uitvoeren, maar onze rol hier geen toegang toe heeft. Echter, we kunnen niet blindelings vertrouwen op wat de tool ons vertelt, omdat dit niet waterdicht is.

“Unittesten”

Sinds wij zijn gestart aan de propositie heeft Mendix een officieel ondersteunde module opgeleverd waar “unittests” mee kunnen worden geschreven. Ik zet unittests tussen aanhalingstekens omdat Mendix onder water Java gebruikt en wij niet op dat niveau (kunnen/willen) testen. De unittests zijn bedoeld om de kleinst mogelijke stukjes van een objectflow te testen.

Stel, ik heb een stuk logica geschreven waarin ik aan het begin controleer of een bepaalde waarde gevuld is. Via de unittest module kan ik dan een testje schrijven dat een object mijn flow instuurt met of zonder die gevulde waarde. Wanneer die waarde dan wel of niet gevuld is, zal de test stoppen en in de logging schrijven of het getoonde gedrag klopt. Zo klein mogelijke check van mijn logica dus, maar niet op het niveau dat de java-code er onder wordt getest.

Deze tool kan ook worden gebruikt om grotere (keten-)tests op te stellen. Het principe is dan hetzelfde (de tool roept een of meerdere flows aan met specifieke waarden).