Je ziet het om je heen; organisaties richten zich agile werkwijzen zoals DevOps en Continuous Deployment. Logisch, digitale ontwikkelingen dwingen hen tot meer en snellere releases en tot het voortdurend vrijgeven van nieuwe functionaliteiten. Om dit continue proces succesvol te ondersteunen is goed ingerichte testautomatisering noodzakelijk. In de praktijk wordt testautomatisering echter nog lang niet altijd (succesvol) ingezet. Hoe kan dat? Lees hieronder een aantal suggesties voor het verbeteren van testautomatisering binnen je organisatie of gebruik deze tips wanneer testautomatisering nog opgezet moet worden.

Oké, je hebt behoefte aan een goed werkende oplossing voor testautomatisering die je productiviteit op een slimme manier verhoogt en een snelle time-to-market van je softwareapplicaties ondersteunt. Hoe ga je dan van start?

De piramide van testautomatisering

Begin met het bepalen van de aanpak voor testautomatisering. Daarbij is het handig om de testautomatiseringspiramide te gebruiken. Het uitgangspunt van dit concept, dat is ontwikkeld door Mike Cohn, is dat testen kan gebeuren op verschillende niveaus. Voor elk niveau kan de keuze worden gemaakt om te automatiseren en met welke mate. Het idee hierbij is dat het het beste is wanneer er zoveel mogelijk inspanning plaatsvindt op de onderste laag van de piramide: de Unittesten. Dit is de fundering van een goede testautomatisering.

Wanneer je al je resources inzet op bijvoorbeeld geautomatiseerde User Interface testen zal dit uiteindelijk niet leiden tot het hoogst haalbare rendement. Hoe lager in de piramide, hoe eenvoudiger (en dus goedkoper) het is om deze tests te ontwikkelen en te onderhouden. Het is dan ook belangrijk om je continu af te vragen wat de meest efficiënte manier is om een bepaalde test uit te voeren.

API / integratietesten en UI testen

De laag die na het Unittesten de meeste inspanning nodig heeft is de service laag waarin het API / integratietesten plaatsvindt. Als laatste volgt pas het automatiseren van de UI testen. Wanneer je van start gaat met het inrichten van deze twee lagen van de testautomatiseringspiramide moet je als organisatie onder meer met de volgende zaken rekening houden:

1.     Volwassenheid van de testorganisatie
Heeft de organisatie/ heb jij al uitvoerig nagedacht over testen? Mogelijk scoort jouw organisatie dan hoger op het gebied van testvolwassenheid. Bij een onvolwassen testorganisatie moet je eerst aandacht besteden aan (de opzet van) het testtraject. Denk bijvoorbeeld aan de beschikbaarheid van testomgevingen, het niveau van testspecificaties en teststrategie.
2.     Uniforme opzet tests tussen teams
Voor het goed kunnen opzetten en inrichten van testautomatisering is het van belang dat iedereen dit op dezelfde manier doet. Hiervoor dient er een basis te zijn van tests, die bij elk team op dezelfde manier wordt opgezet.
3.     (Technische) Kennis van de testers
Wanneer je een testtool wilt kiezen moet je rekening houden met het kennisniveau van je testers. Op het moment dat een tester weinig kennis van programmeren heeft, zal hij bij een code based tool meer hulp van een ontwikkelaar nodig hebben. Een keuze voor een gebruikersvriendelijkere tool zou dan logischer zijn.
4.     Doelstelling organisatie
Het inrichten van een testautomatiseringstraject kost tijd en geld. Wanneer het echter je doelstelling is om gebruikers sneller van nieuwe features te voorzien, dan wil je ook meerdere keren per maand/week/dag naar productie releasen. Bij meerdere releases in een korte periode. is investeren in testautomatisering al snel de moeite waard.

Het verbeteren van bestaande testautomatisering

Heb je al een start gemaakt met testautomatisering, maar kan het voor je gevoel nog beter? Op de volgende punten valt vaak verbetering te behalen:

Onderhoud van je testautomatiseringssuite

Naarmate de te testen applicatie ouder wordt, raken ook de tests verouderd of in sommige gevallen gedupliceerd en worden daardoor nutteloos. Het is dan ook zeer belangrijk om continu de dekking en de relevantie van de automatische tests in de gaten te houden. Een handige manier hiervoor is om automatisch te scannen tussen testsuites en deze te vergelijken met de bestaande user stories. Door middel van code coverage-analyse kan ook worden gekeken naar mogelijke blinde vlekken (delen van de applicatie die niet worden gedekt binnen automatische testen), inefficiënte tests en ongedekte gebruikersflows.

Voor efficiënt gebruik van data binnen de testsuite is het noodzakelijk om daar waar mogelijk data-driven te automatiseren. De data wordt dan op één centrale plek gezet en onderhouden. De verschillende tests halen hun data uit deze bron. Op deze manier hoef je, mocht dit nodig zijn, maar op één plek wijzigingen door te voeren in de data, in plaats van in de verschillende tests zelf.

De plaats van automatische testen in je project

Er zijn een aantal vragen die je gedurende het project moet blijven stellen. Op welke platforms moeten de testen worden gedraaid? Met welke frequentie? Na welke ‘actie’? (bijvoorbeeld na elke nieuwe wijziging van een ontwikkelaar, na elke nieuwe build, na elke deploy etc.). Door dit continu te blijven doen, blijven de noodzakelijke testen over, en worden testen niet onnodig dubbel uitgevoerd.

Rapportage van de resultaten

Het voortdurend meten van de resultaten en deze resultaten inzichtelijk maken voor alle stakeholders is een belangrijk punt voor het succesvol inzetten van testautomatisering. Op deze wijze wordt testautomatisering een gedragen methode binnen een software-ontwikkelteam en de rest van de organisatie.

Betere object- en visuele analyse

Tijd investeren in een betere object- en visuele analyse om je testautomatisering aan te sturen (en om de applicatie ook direct automatisch te kunnen testen op meerdere platformen en browsers) kan tot verbeteringen leiden.

Instabiliteit van de automatische testen komt in veel gevallen door de slechte manier waarop elementen van de applicatie of website zijn geïdentificeerd. Bij het gebruik van een record- and playback functionaliteit is dit vrijwel altijd het geval. Automatische testen falen regelmatig omdat tools het geïdentificeerde object niet kunnen vinden, terwijl dit wel aanwezig is. Het is noodzakelijk om duidelijke afspraken met ontwikkelaars te maken over het uniek identificeren van deze elementen (bijvoorbeeld: alle klikbare elementen moeten een uniek ‘id’ attribuut hebben in de html).

Het automatisch visueel kunnen identificeren van fouten in de opmaak van de applicaties per app-versie (bijvoorbeeld een verschil in de opmaak tussen de iPhone 8 en iPhone X in schermgrootte) kan de stabiliteit van testautomatisering verbeteren en de kwaliteit van de applicatie verhogen.

SYSQA en testautomatisering

Wij zien testautomatisering als een goede aanvulling en mogelijkheid om de efficiëntie van softwareontwikkeling te verhogen. Testautomatisering zorgt voor continuïteit en consistentie in de uit te voeren testen, waardoor fouten eerder kunnen worden gevonden en releases sneller kunnen worden uitgerold.

Professionals van SYSQA adviseren en begeleiden je tijdens het gehele testautomatiseringstraject. Van de vraag of testautomatisering geschikt is en de eventuele keuze voor een tool tot de inrichting van een tool, het opstellen van testcases, het onderhouden van testcases en het uitvoeren hiervan.

Ben jij ook benieuwd wat SYSQA voor jouw bedrijf kan betekenen op het gebied van testautomatisering? Neem vrijblijvend contact met ons op!
Updates ontvangen?

Regelmatig versturen we een overzicht van de nieuwste en meest relevante artikelen op deze website. Ontvang ze ook in je mailbox!

Updates ontvangen?
Ontvang maandelijks de nieuwste verhalen uit onze wereld en een overzicht van onze vacatures in je mailbox!