Artikel

Testautomatisering

Hoe kun je succesvol testautomatisering implementeren op een low-code platform zoals Outsystems? In dit blogartikel legt collega Jochem uit hoe je met slim gebruik van de architectuur van OutSystems testautomatisering met weinig inspanning kunt integreren, terwijl je zoveel mogelijk gebruik blijft maken van de oorspronkelijke code.

Mijn kennismaking met low-code

Zeven jaar geleden begon ik bij Holland Casino aan een project waarbij de applicaties voor het registreren van kasstromen werden vervangen. Hiervoor werd gekozen om gebruik te maken van OutSystems: een low-code platform waarmee je veel sneller software kunt ontwikkelen.

Omdat ik als enige tester werkte tegenover twee ontwikkelaars, in een landschap met arbeidsintensieve testscenario’s, liep ik al snel tegen een probleem aan. Er werd namelijk meer software opgeleverd dan ik kon testen binnen de beschikbare tijd. De ontwikkelaars zagen dit en — zoals dat gaat met low-code — ‘dragden’ en ‘dropten’ ze een testerspagina voor mij in elkaar. Daardoor kon ik ineens stappen overslaan of opnieuw uitvoeren, wat in de oorspronkelijke applicatie onmogelijk was. Hierdoor kon ik mijn tests veel sneller uitvoeren. Dit bleek uiteindelijk het prototype te zijn van onze definitieve oplossing.

Afbeelding1

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.

Wil je ons nieuwste Paarsz magazine per post ontvangen? Laat dan je gegevens achter.

Ontwerp zonder titel (19)

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.