Testautomation

Onmisbare tips voor het succesvol inzetten van testautomatisering

Organisaties vragen om steeds meer en snellere releases van digitale oplossingen. Vrijwel voortdurend wordt er nieuwe functionaliteit vrijgeven. Om dit continue proces succesvol te ondersteunen is goed ingerichte testautomatisering noodzakelijk. In de praktijk blijkt dit een uitdaging. In dit blog lees je wat testautomatisering is, wanneer het zinvol is en welke stappen je kunt zetten om testautomatisering succesvol in te richten.

Onmisbare tips voor het succesvol inzetten van Testautomation

Gebruik een testautomatiseringspiramide

Heeyoo testpiramide api-testen

Testautomatisering (of testautomation) is het geautomatiseerd uitvoeren van testscripts zodat je sneller, vaker en consistenter kunt testen dan met handmatig testen. Het is onmisbaar als je software van goede kwaliteit sneller naar de eindgebruiker wil brengen. 

Een eerste stap is om een goede aanpak voor testautomatisering te bepalen. Hierbij is het handig om de ‘testautomatiseringspiramide’ te gebruiken. De testautomatiseringspiramide is een model van Mike Cohn, en heeft als uitgangspunt dat testen op verschillende niveaus kunnen plaatsvinden. Voor elk niveau kan de keuze worden gemaakt om te automatiseren en met welke mate. Het idee hierbij is dat 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 leidt dit uiteindelijk niet tot het hoogst haalbare rendement. Hoe lager in de piramide, hoe eenvoudiger (en dus goedkoper) het is om deze testen te ontwikkelen en te onderhouden. Het is dan ook belangrijk je continu af te vragen wat de efficiëntste manier is om een bepaalde test uit te voeren. Wil je structureel sneller kunnen releasen, dan is een goede testautomatiseringspiramide een belangrijke basis.

Automatiseren API/ integratietesten en UI-testen

De laag die na het unittesten de meeste tijd kost, is de servicelaag waarin API-/ integratietesten plaatsvinden. Als laatste volgt pas het automatiseren van de UI-testen. Als je begint met het inrichten van deze twee lagen van de testautomatiseringspiramide moet je als organisatie onder meer met de volgende zaken rekening houden:

Lees ook: 9 testen die je helpen om de kwaliteit van je API’s vast te stellen

 

1. Volwassenheid van de testorganisatie

Heeft de organisatie al uitvoerig nagedacht over testen? Hoe scoort jouw organisatie 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 testen tussen teams

Voor het goed kunnen opzetten en inrichten van testautomatisering is het belangrijk dat iedereen dit op dezelfde manier doet. Hiervoor moet er een basis zijn van testen die bij elk team op dezelfde manier worden opgezet.

 

3. (Technische) kennis van de testers

Wanneer je een testtool kiest moet je rekening houden met het kennisniveau van je testers. Als 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 meer gebruikersvriendelijke tool is dan logischer.

Bekijk hier een overzicht van populaire testautomation tools.

 

4. Doelstelling van de 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 releasen. Bij meerdere releases in een korte periode is investeren in testautomatisering al snel de moeite waard.

Hoe verbeter je 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 essentieel 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 zoals delen van de applicatie die niet worden gedekt binnen automatische testen, inefficiënte tests en ongedekte user flows.

Voor efficiënt gebruik van data binnen de testsuite is het noodzakelijk om, 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 testen zelf.

 

– De plaats van automatische testen in je project

Er zijn een aantal vragen die je gedurende het project moet blijven stellen. Op welke platformen moeten de testen worden gedraaid? Met welke frequentie? Na welke ‘actie’? Bijvoorbeeld na elke nieuwe wijziging van een Ontwikkelaar, na elke nieuwe build of na elke deploy et cetera. Door dit continu te blijven doen, blijven alleen de noodzakelijke testen over en worden testen niet onnodig dubbel uitgevoerd.

 

– Rapportage van de resultaten

Het voortdurend meten van de resultaten en deze inzichtelijk maken voor alle stakeholders is een belangrijk punt voor het succesvol inzetten van testautomatisering. Zo wordt testautomatisering een gedragen methode binnen een softwareontwikkelteam 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 direct automatisch te kunnen testen op meerdere platformen en browsers, kan ook 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 bijna 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 appversie (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.

 

In onze praktijk zien we dat vooral onderhoud van de testautomatiseringssuite en duidelijke afspraken over object-identificatie het verschil maken tussen instabiele en betrouwbare testautomatisering.

Heeyoo en testautomatisering

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

Onze specialisten kunnen je adviseren en begeleiden tijdens het gehele testautomatiseringstraject. Van de vraag of testautomatisering geschikt is, de keuze voor een tool, het inrichten van een tool, het opstellen van testcases tot het onderhouden van testcases en het uitvoeren hiervan.

FAQ

Veelgestelde vragen over testautomatisering

Testautomatisering is het geautomatiseerd uitvoeren van testscripts, zodat je sneller, vaker en consistenter kunt testen dan met handmatige testen.

Testautomatisering loont vooral als je vaak releaset en de impact van fouten groot is. Hoe vaker je dezelfde regressietesten moet draaien, hoe sneller de investering zich terugverdient.

De testautomatiseringspiramide is een model waarin je zoveel mogelijk eenvoudige, snelle testen onderin (unit/API) plaatst en relatief weinig dure, trage UI-tests bovenin. Zo krijg je maximale dekking tegen acceptabele kosten.

Get in touch

Testautomatisering succesvol laten inrichten?

Bedankt, we gaan voor je aan de slag!