.

Tips voor het succesvol inzetten van testautomatisering

Door Casper van Koppenhagen

Je ziet het om je heen; organisaties richten zich op 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? In deze blog lees je 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 in 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 Userinterface 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 userinterface (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 de eerste twee lagen van de testautomatiseringspiramide moet je als organisatie onder meer met de volgende zaken rekening houden:

  • Volwassenheid van de testorganisatie

Heeft je organisatie / heb jij al uitvoerig nagedacht over testen? Mogelijk scoort je 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.

  • 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.

  • (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.

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

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.

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 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. Op deze wijze wordt testautomatisering een gedragen methode binnen een software-ontwikkelteam en de rest van de organisatie.

  • ​​Betere object- en visuele analyse

Ook het investeren van tijd in de analyse van de verschillende schermonderdelen kan tot verbeteringen leiden. Schermonderdelen moeten door de geautomatiseerde testen gevonden en geïnterpreteerd kunnen worden, hetzij visueel of middels een html-identificatie. Met goede, eenduidige afspraken hierover kan je er voor zorgen dat de applicatie zonder verdere aanpassingen automatisch getest kan worden op meerdere platformen en browsers.

Instabiliteit van automatische testen komt in veel gevallen doordat elementen van de applicatie of website slecht 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 (denk bijvoorbeeld aan een verschil in de opmaak tussen de iPhone 8 en iPhone X) 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.

Testautomatisering is vooral interessant voor organisaties die te maken hebben met Continuous Integration, Continuous Deployment, risicovolle en gecompliceerde testcases/systemen en veelvuldig herhalende testcases. In deze situaties kunnen voordelen worden behaald zoals tijdswinst, consistentie en het terugbrengen van risico’s die voortkomen uit menselijk handelen.

Testautomatisering wordt ook vaak in verband gebracht met kostenreductie. Houd er wel rekening mee dat er ook kosten gemoeid zijn bij testautomatisering, zoals het opbouwen en onderhouden van de testcases en de mogelijke kosten van een tool.

Professionals van SYSQA adviseren en begeleiden je tijdens het gehele traject van testautomatiseringstraject. Vanaf 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.

Gerelateerde tags

Klik op een tag om meer artikelen over het betreffende onderwerp te vinden.

Foto Gerben de Wit accountmanager SYSQA

Vraag het Gerben

  • Wil je testautomatisering in je organisatie toepassen of verbeteren?
  • Foto Gerben de Wit accountmanager SYSQA
    Stuur me hieronder gerust een berichtje of bel 036-5241199. Ik kom er graag over sparren.

Updates ontvangen?

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