NieuwsMagazine

Automatiseren moet je leren – hoe ziet goede testautomatiseringstraining er nou eigenlijk uit?

Redactie: Henk Johan Kwakkel
Auteur: Bas Dijkstra, OnTestAutomation ● bas@ontestautomation.com
Bas DijkstraWil, mag of moet je jezelf ontwikkelen op het gebied van testautomatisering? Goed nieuws: er is tegenwoordig erg veel aanbod in training op het gebied van testautomatisering. Genoeg te kiezen dus, zou je zeggen. En dat is tot op zekere hoogte ook wel waar.
Alleen, ik denk dat we met zijn allen te vaak een aantal belangrijke zaken vergeten bij het opleiden van goede testautomatiseerders. Veel (te veel?) trainingen zijn vooral gericht op het vergroten van je vaardigheden in een specifieke tool of taal. Kijk maar eens naar het aanbod van trainingen als ‘Selenium voor beginners’ of ‘Java voor testers’. Iedere, zichzelf respecterende dienstverlener of opleidingsaanbieder, heeft dit soort trainingen op het programma staan. Ik ben daar zelf overigens geen uitzondering op.
Maar maakt alleen het volgen van een of meerdere van deze tool- of taalspecifieke trainingen je een goede (of zelfs een betere) testautomatiseerder? Ik waag het te betwijfelen. Volgens mij bestaat een gedegen trainingstraject voor een testautomatiseerder uit veel meer dan alleen het leren van vaardigheden in een of meer stukken gereedschap. Ik zou iedereen die zich wil ontwikkelen in het vakgebied van de automatisering willen aanraden om aandacht te besteden aan vijf onderwerpen.
Softwaretesten
Automatisering is nooit een doel op zich, het dient altijd (of zou in ieder geval altijd moeten dienen) als ondersteuning van je algehele teststrategie. Om goed te kunnen bepalen welke onderdelen van je testactiviteiten je kunt automatiseren en hoe je automatisering het meest effectief kan inzetten ter ondersteuning van je testwerkzaamheden, zul je dus ook moeten weten wat testers nu eigenlijk doen. Hoe kun je automatisering inzetten om iets te ondersteunen als je geen idee hebt wat er gebeurt?
Softwareontwikkeling
Testautomatisering is een vorm van softwareontwikkeling. Zelfs als je een low-code of no-code tool gebruikt voor het opzetten van je automatisering, ben je software aan het schrijven. En net als met elke andere vorm van software schrijven is het verstandig om een aantal basisprincipes te herkennen en toe te kunnen passen, zoals onderhoudbaarheid, leesbaarheid en modulariteit. Vergeet je dat in je enthousiasme, dan is de kans groot dat je op den duur blijft zitten met een grote brij aan slecht leesbare, moeilijk onderhoudbare en onbegrijpelijke tests.
Bewustwording
Van blind, alles automatiseren wat er maar geautomatiseerd kan worden, is in mijn ervaring nog nooit een project of organisatie beter geworden. Een goede automatiseerder moet kunnen bepalen wanneer automatisering wel en wanneer het niet bijdraagt aan het behalen van gestelde doelen. Daarnaast moet hij of zij ook in staat zijn dit helder te kunnen communiceren en verwachtingen te kunnen managen om tegengas te geven aan de helaas nog steeds vaak levende verwachting dat ‘alles’ geautomatiseerd kan worden en dat er met de invoeren van testautomatisering geen testers meer nodig zijn.
Patronen en principes
Onder ‘patronen en principes’ schaar ik bijvoorbeeld het kunnen herkennen van situaties waarin end-to-end tests op basis van tools als Selenium een goed idee is en wanneer je beter iets op API-niveau kunt automatiseren. Maar hieronder vallen ook het kunnen toepassen van veelgebruikte patronen als Page Objects (voor Selenium en andere tools die met de user interface van een applicatie communiceren) en principes als Don’t Repeat Yourself (DRY) voor het schrijven van goed gestructureerde code.
Tools en talen
Tenslotte is het (uiteraard) voor elke testautomatiseerder van toegevoegde waarde om een of meerdere automatiseringstools en/of programmeertalen te beheersen. De waarde die hieraan moet worden gehecht, wordt alleen nog te vaak overschat. Het risico dat iemand die een specifieke tool tot in de puntjes beheerst, koste wat kost gaat proberen om alles wat los en vast zit met die tool te automatiseren (‘if all you have is a hammer, everything looks like a nail’) is groot.
In mijn ervaring is het, wanneer je de andere hierboven genoemde onderwerpen beheerst, relatief eenvoudig om de juiste tool of taal voor een probleem te kiezen en daar een geschikte oplossing in op te zetten. Sites als StackOverflow staan vol met voorbeelden hoe je iets kunt doen met tool X in taal Y.

Ik zou graag zien dat aanbieders van trainingen en leergangen op het gebied van testautomatisering zich op al de hierboven genoemde onderwerpen zouden richten, in plaats van alleen op specifieke tools en talen. Ik denk dat we daar op de lange termijn veel betere en meer effectieve testautomatiseerders mee opleiden.
Dat geschreven hebbende, er zijn naast trainingen gelukkig veel meer mogelijkheden om jezelf op automatiseringsvlak te ontwikkelen. Je kunt bijvoorbeeld ook veel leren van je collega’s op de werkvloer. Ga eens in gesprek met iemand waarvan je weet dat hij of zij zich bezighoudt met automatisering en kijk wat je ervan kunt leren. Welke problemen zijn zij tegengekomen? Hoe zijn ze daarmee omgegaan? Leren van andermans fouten is nooit een slecht idee.
Daarnaast heb ik persoonlijk ook ontzettend veel geleerd op een aantal van de grote hoeveelheid conferenties en meet-ups die tegenwoordig worden georganiseerd. Heb je de mogelijkheid om die te bezoeken (of, nog leuker en leerzamer, om je eigen verhaal en ervaringen daar te delen), dan raad ik je dat zeker aan. Je kunt ontzettend veel leren van de presentaties en workshops, maar misschien nog wel meer van de ‘hallway track’, dus van de gesprekken met de mensen die je daar tegenkomt. Een heel interessante en bovendien ontzettend leuke manier om je kennis van het vakgebied te vergroten.
Maar de allerbeste manier om meer te leren over testautomatisering is om het gewoon te gaan doen. Kijk eens kritisch naar je testaanpak. Zijn er taken of processen die je liever geautomatiseerd zou doen? Of is de bestaande automatisering aan een verbeterslag toe? Ga er gewoon eens mee aan de slag. Probeer een nieuwe aanpak, tool of taal. Wees niet bang om fouten te maken, dat doet iedereen namelijk. Vraag feedback op je plannen of je uitwerkingen aan een ander en leer van die feedback.
Succes!

2 reacties

  1. Omvat “Softwaretesten” ook de testinhoud?
    Automating chaos creates faster chaos”: oude stelling maar nog steeds waar.
    Met andere woorden: als de testinhoud slecht is, dan is automatisering daarvan ook niet zinvol.

  2. Testautomatisering is, de naam zegt het al, het automatiseren van de testuitvoering. In die hoedanigheid heeft het weinig meer met testen te maken, dat het te automatiseren proces een testproces is. Sommigen hebben het dan ook liever over geautomatiseerde testuitvoering. Zoals altijd zullen we dus eerst moeten nadenken over een (solution)architectuur, een goed functioneel- en technisch ontwerp van die geautomatiseerde omgeving. In theorie zal elke goede programmeur een omgeving kunnen bouwen voor het automatiseren van de testuitvoering. De inhoud en kwaliteit van de test -de uit te voeren testgevallen- blijven de verantwoordelijkheid van de testanalist. Het samenspel tussen testanalyse (clusters en testgevallen) en de goed ontworpen automatiseringsomgeving dragen bij aan een degelijk testproces. Samenwerking tussen testanalist en automatiseerder is dus cruciaal!

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *