Slim gebruik maken van het lagenmodel van Outsystems
De reden dat dit zo makkelijk was en zo goed werkte, kwam doordat er goed gebruik werd gemaakt van het lagenmodel van Outsystems. De ontwikkelaars hadden met hun testerspagina enkel een nieuwe end-user laag gebouwd, die onderwater nog steeds gebruikmaakte van dezelfde flows (oranje laag) en functies (groene laag). Hierdoor werd nog steeds dezelfde code als in productie geraakt, maar ik werd niet beperkt door logische requirements die voor de gebruikers noodzakelijk of gewenst waren. Door de testerspagina in een aparte module te plaatsen en deze niet naar productie te deployen, was het ook nog eens heel veilig.
Dit prototype is de afgelopen jaren uitgegroeid tot een volwaardige ondersteuning voor onze testwerkzaamheden. We hebben het scherm vervangen door een API en het aantal functies uitgebreid naar inmiddels meer dan 30. Om de API’s aan te roepen hebben we een testautomationframework opgezet, waardoor we echt kunnen profiteren van de kwaliteiten van een API, zoals snelheid en stabiliteit.
Van Gherkin tot grip op je tests
In onze testautomatisering hebben we alle testgevallen opgesteld in Gherkin. Daarbij proberen we zoveel mogelijk de Given en Then stappen te vervangen door API’s, terwijl de When stap nog steeds in de applicatie plaatsvindt. Dat is immers de echte test waar het om draait.
Met de Given stappen kunnen we onze applicatie in elke gewenste fase van het proces plaatsen, herhaalbaar en binnen tien seconden. En na afloop halen we met de Then stappen een compleet beeld van de resultaten op voor de beoordeling van onze test. Hierdoor hebben we als team veel meer grip op onze applicatie. Elke ochtend als we binnenkomen, staan de testresultaten van meer dan 2000 stappen al klaar, en we kunnen ze indien nodig lokaal opnieuw afspelen.
Meer doen met minder moeite
We gebruiken testautomatisering ook op andere manieren. Bijvoorbeeld om testdata te genereren voor de manuele testen. Voor arbeidsintensieve processen betekent dit dat onze inspanning voor één testgeval drastisch is verminderd. Waar we eerst misschien maar twee testgevallen uitvoerde vanwege de hoge kosten kunnen we nu in hetzelfde tijdsbestek wel tien testgevallen uitvoeren. Dit geeft ons een veel luxere positie in het kiezen van onze testgevallen, eentje die meer gebaseerd is op risico dan op effort.
Geen extra software ontwikkelen? Juist wel
Het idee dat je geen software moet ontwikkelen voor het ondersteunen van je test, is wat mij betreft achterhaald. Met test-API’s zoals wij die hebben ontwikkeld, kun je tegenwoordig elke fatsoenlijke testautomatiseringsoplossing integreren. Zowel high-code als low-code sluit hier goed op aan, omdat de sleutel tot succes in de applicatie zelf is ingebouwd.