maandag 23 oktober 2023

Deze keer was Vakantieboerderij Holdeurn in Berg en Dal het decor voor onze innovatieweek. Een erg mooie locatie midden in de natuur, ver weg van onze normale werkplek. Voor het social event zijn we naar de Waal gereden, waar we hebben genoten van een smakelijke rondvaart met de pannenkoekenboot, gevolgd door een stadswandeling door de mooie binnenstad van Nijmegen, volgens bronnen de oudste stad van Nederland.

Voor de innovatieprojecten is het team opgedeeld in vijf zogenoemde tracks en aan de slag gegaan met de volgende onderwerpen.

The next editor
Twee tracks zijn bezig geweest met “The next editor”. Een track is bezig geweest met een update van onze huidige model editor. Hierin is gekeken naar verschillende Javascript editor bibliotheken. De andere track heeft gekeken naar grafisch/visueel modelleren, dit gaat een stuk verder dan onze huidige aanpak. Momenteel is de modelleertaal van Axini tekstueel. Van deze tekstuele modellen worden geautomatiseerd visualisaties gemaakt, waar je doorheen kunt stappen om te simuleren. Hoe mooi zou het zijn als je gewoon met je muis visuele modellen kunt maken? Bij Axini vinden we dit erg interessant. We willen echter eigenlijk beide mogelijkheden, zowel tekstueel als visueel kunnen modelleren. Dit hebben we deze week uitgezocht met een mooie eerste stap als resultaat.
Slimme data voor testgevallen
Om slimme testdata te bedenken maken we gebruik van zogenaamde constraint solvers. Dit zijn complexe tools die zogenaamde constraints, d.w.z. een logische formule, omzetten naar concrete data. Bijvoorbeeld de formule ‘X > 3’, die vertelt dat we op zoek zijn naar een waarde voor de variabele ‘X’ die groter dan 3 moet zijn. Een voorbeeld van een valide waarde is ‘4’. Je kunt je voorstellen dat deze constraints over verschillende datatypen kunnen gaan, en ook heel complex kunnen worden. Denk hierbij aan negatieve getallen, floating point getallen, tekst, tot aan hele XML data structuren. Een veelbelovend gebied waar actief onderzoek aan gedaan wordt zijn de zogenaamde SMT solvers. In dit track hebben we de Z3 solver als beta feature beschikbaar gemaakt om de werking ervan te kunnen evalueren.
Test case generatie voor user scenarios
In vorige innovatieweken zijn we bezig geweest met het beschikbaar stellen van functionaliteit om requirements vast te leggen in zogenaamde scenarios. Het is daarbij mogelijk om te controleren dat uitgevoerde testgevallen wel of niet zo’n scenario raken. Als het scenario geraakt is, betekent dit dat er een concrete instantie van de requirement getest is. Als volgende stap willen we graag direct testgevallen genereren voor de gedefinieerde scenario's. Dit laatst is tijdens deze week als bèta feature opgeleverd.
Gitlab
Dit track is vooral gericht op de Axini developers. Na een gedegen toolselectie is ervoor gekozen om Gitlab te gaan gebruiken. Gitlab is een interessante samenwerkomgeving met allerlei hulpmiddelen voor software-ontwikkelaars om efficient samen te werken. Denk hierbij aan code reviews, het opslaan van code, het aanmaken van tickets, en ook het bouwen en deployen van code in zogenaamde CI/CD pipelines. Voor dit laatste zijn tijdens de week Gitlab pipelines ingericht voor onze builds.

De volgende Axini-week, de Winter of Code, zal in januari 2024 plaats vinden. We hebben al een aantal onderwerpen in gedachten voor die week, maar mocht je ideeën of suggesties hebben, dan horen wij het graag!