Hoe zit het met testen?

Omdat GEARS business requirements foutloos vertaald naar een werkend systeem, is het hebben van hebben van lower level unittests in essentie niet meer nodig. Higher level test gevallen zijn nog wel nodig. Deze zijn bedoeld om de business requirements te testen door verschillende testpaden door de gegenereerde business processen en daarmee ook diens onderliggende systeemprocessen te testen. Hieronder een voorbeeld van een klein bedrijfsproces waarin gebruiker employee1 een proces voor een verlofaanvraag start en de eerste taak (scherm) in het proces vult met de gegevens van de verlofaanvraag. Vervolgens voert gebruiker manager1 het besluit in als ook de reden voor dit besluit.  

with user employee1
start process with key 'loa.absence.request'

claim the only task as t1
submit t1 { type: holiday, start: 2019-11-25, end: 2019-12-15 }

with user manager1
claim the only task as t2
submit t2 { decision: rejected, reason: 'insufficient leave left'}

Op basis hiervan zal de open source test tool "scenario runner" dit testgeval uit kunnen voeren. Dit kan vanuit iedere locatie uitgevoerd worden: lokaal, als onderdeel van een pipeline, of op een willekeurige afstand van de plek waar het door GEARS gecreëerde systeem is gedeployed (zo lang de scenario runner uiteraard wel toegang heeft tot deze plek). Met deze aanpak kan ook de "coverage" bepaald worden met bijv. tools als JaCoCo

Dit dekt alle functionele tests. De non-functionele tests (bijv. een goede performance, ook onder zware loads) worden uitgevoerd door het team wat GEARS onderhoud en verbetert. Het uitgangspunt hierbij is dat alle GEARS gecreëerde applicaties aan hoge non-functionele eisen moet kunnen voldoen. Deze load en stress tests kunnen desgewenst meegeleverd worden. 

Hoewel het hebben van lower level unit tests bij gebruik van GEARS niet meer nodig is, vinden we wel dat GEARS gecreëerde systemen ook zonder GEARS goed te onderhouden moeten zijn. En ook met mainstream tools. Aangezien de scenario runner nu nog niet als mainstream te beschouwen is, is het ontbreken van lower level unit tests hierdoor een gemis.  Daarom zijn we van plan om GEARS ook automatisch JUnit testgevallen te laten toevoegen.