De Voordelen Van Test Automation

Traditionele software testers voeren een groot aantal softwaretesten handmatig uit voor een nieuwe versie van de software. Bijvoorbeeld een formulier dat een tester op 30 manieren invult. Handmatig testen van software is daardoor bijzonder tijdrovend. Daarbij zijn onze hersenen niet erg geschikt voor eindeloze herhaling en is testwerk voor mensen al snel saai en vermoeiend.

Het knelpunt neemt sterk toe bij de Agile werkwijzen, waarbij softwareproducenten de software tot wel elk uur vernieuwt. De kort-cyclisch werken levert dan een ontoelaatbare belasting op de organisatie en de testers. De organisatie moet dan kiezen tussen minder vaak releasen en halfslachtig testen. Beide opties knagen aan de marktwaarde van de dienstverlening.

Auteur:

Wilco Bazen

Lead Test Automation Engineer

De oplossing is Test Automation. Dat houdt in dat een orchestrator (bijvoorbeeld Jenkins of Azure DevOps) geautomatiseerde testscripts uitvoert. Tijdens de uitvoering worden de uitkomsten vergeleken met de vereiste uitkomst. De orchestrator verwerkt de resultaten in een database om later daaruit rapportages te genereren. Op basis van deze rapportages bepaalt de productmanager of het product aan de vereiste kwaliteitseisen voldoet.

In de grafiek zie je de kosten van de uitvoering in het handmatig en geautomatiseerd testen. De blauwe lijn zijn operationele handmatige testkosten zonder een investering in Test Automation. De groene lijn geeft de investeringskosten voor Test Automation in de tijd weer. Zoals je ziet nemen eerst de kosten toe en daarna weer af. Bij een aantal van onze klanten zien we een terugverdientijd van ongeveer 6 maanden.

In het kort</>

Test Automation leidt tot vier grote voordelen voor softwareproducenten. In deze paragraaf behandelen we deze vier voordelen:

  • Kortere feedback cycle leidt tot lagere herstelkosten
  • Minder handmatige fouten leidt tot betere software
  • Veel hogere snelheid leidt tot veel meer testmogelijkheden
  • Verschuiving van testen naar creatiever werk

<1. Korter feedback cycle leidt tot lagere herstelkosten>

Bugs (lees: fouten) die softwareontwikkelaars in het ontwikkelproces introduceren zijn kostbaarder om op te lossen naarmate ze later in het proces zijn ontdekt. Dus de identificatie-tijd van een bug is evenredig met de herstelkosten. Daardoor leidt een kortere feedback cycle van testresultaten tot lagere herstelkosten. Test Automation zorgt voor deze snellere terugkoppeling van testresultaten en leidt zo tot lagere herstelkosten.

<2. Minder handmatige fouten leidt tot betere software>

Fouten komen regelmatig voor bij handmatig testen. Bijvoorbeeld een vergeten test case of incorrect uitgevoerde data. Het uitvoeren van een groot aantal handmatige testen voor een toenemende aantal software releases leidt tot veel meer van deze fouten. Test Automation heeft daarentegen een eindeloos goede conditie, is ook midden in de nacht vlijmscherp en maakt nooit fouten. Ook bij hoog risicovolle test cases worden deze testen foutloos uitgevoerd zonder tijdsbeperking.

<3. Veel hogere snelheid leidt tot veel meer testmogelijkheden>

Een regressie testset is een set om als geheel uit te voeren voor een nieuwe softwareversie. Hierin zijn doorgaan duizenden testen opgenomen. Deze set voert een orchestrator met zeer hoge snelheid uit. Vergelijkbaar met handmatig testen voert een zo’n orchestrator de tests honderden malen snelheid uit. De kosten na het opzetten van zo’n regressie-testset beperkt zich tot de onderhoudskosten aan de testset als gevolg van het aanpassen van het softwareproduct.

<4. Verschuiving van testen naar creatiever werk>

Geautomatiseerd testen leidt dus tot veel minder handmatig werk. Die besparing kan een softwarebedrijf inzetten voor de ontwikkeling van meer functionaliteiten en mooiere software. Ook is er meer tijd voor exploratory testing, een creatieve vorm van testen die moeilijker te vangen is in automatisch testen.

<Zo ga je starten!>

Zoals je kunt lezen heeft het automatiseren van testen voordelen en is de terugverdientijd beperkt. Hoog tijd om wat inzicht te geven hoe je dan start met Test Automation.

We raden aan om het ontwikkelproces te starten met het samenstellen van smoke-testen. Deze testen geven de Developers direct feedback of er spreekwoordelijke ‘rook’ uit de applicatie komt. Deze smoke tests worden direct na het inchecken, oftewel het integreren van de software uitgevoerd. Smoke-testing is afgeleid van elektronische schakelingen waarbij je test of er geen rook van de elektronica afkomt na het inschakelen van de stroomvoorziening.

Als onderdeel van het ontwikkelproces ontwikkelen de softwareontwikkelaars unittests. Deze unittests voert de ontwikkelaar uit als een deelproduct, zoals een softwarecomponent, is ontwikkeld.  Het is gangbaar om hierbij gebruik te maken van peer programming waarbij de ene ontwikkelaar de unittest maakt en de andere ontwikkelaar het deelproduct maakt.

Test Automation Maturity Model</>

Het bovenstaande maturity model helpt om de Test Automation capability te ontwikkelen. Zoals hierboven staat start je met smoke testing en unittesting. Deze tests zitten vroeg in de delivery pipeline en vormen de basis van de pyramide van het maturity model. Als er een gedegen smoke- en unit-testset is geïmplementeerd vervolgt het team met functionele integratietests, end2end tests en eventuele niet functionele tests.

De brede basis geeft aan dat bij een hoge mate van maturity veel unit testen nodig zijn en in mindere mate End-To-End (E2E) testen. Vanwege de doorlooptijd en het onderhoud is het verstandiger om bij bepaalde bedrijf kritische processen met E2E af te dekken en in meerdere mate te investeren in Integratie testen en unit testen.

“Wilco Bazen:

De theorie van Test Automation klinkt als een droom van elk DevOps team. In de praktijk is het in veel gevallen niet zo simpel als het lijkt. Vaak is het nodig om de werkwijze aan te passen en is er veel commitment van het team en management nodig.

Het creëren en het onderhouden van het testplatform en de testen behoort te worden ingepast in de reguliere planning. Veranderbereidheid en verandercapaciteit is de sleutel tot succes.”

Het succes van Test Automation is afhankelijk van drie factoren:

  1. De bereidheid van de medewerkers om Test Automation te adopteren;
  2. De bereidheid van management om de ontwikkelaars en testers tijd te geven om de testen te automatiseren;
  3. De expertise van medewerkers en management over Test Automation.

Er is dus de veranderbereidheid en verandercapaciteit nodig in de organisatie. Dit is geen sinecure. We hebben inmiddels hier veel ervaring mee en een track-record mee opgebouwd. Daarnaast organiseren wij regelmatig Webinars met experts om bedrijven te informeren en te helpen met innovaties.

<Meer weten?>

Dit artikel is geschreven door Wilco Bazen. Wilco Bazen is onze lead Test Automation Engineer en consultant voor Test Automation bij Wiconic. Als lead van kenniscentrum is Wilco verantwoordelijk voor het Test Automation kenniscentrum en het begeleiden van zijn collega’s in dit KC. Ook voert Wilco research en development taken uit om zijn kennis vers en accuraat te houden binnen zijn vakgebied. Zijn rol is veelzijdig en uitdagend. Zoek je nog een Test Automation Engineer? Neem dan contact op met Wilco.