In ons enthousiasme over de schijnbaar onbeperkte mogelijkheden van de beschikbare tooling en technologie, zijn we als “boys with toys” met testautomatisering bezig. De tool is dé oplossing en is al geïmplementeerd voordat is gekeken of de tool überhaupt bijdraagt. Dit alles zonder stil te staan bij hetgeen we met testautomatisering willen en kunnen bereiken. Daarom de titel: 'Testautomatisering? Wees doelgericht!'.
Softwareontwikkeling wordt meer en meer Agile, projectmanagement gaat volgens Scrum en ‘continuous delivery’ is steeds vaker een feit. De tester moet zich hieraan aanpassen en vaker, sneller met minder voorbereidingstijd nog steeds goed en gedegen testen. Dit is enkel mogelijk als testautomatisering succesvol wordt ingezet.
Doelgerichte testautomatisering
De vraag die we moeten beantwoorden is relatief simpel: Welke doelen moet testautomatisering bereiken? Het is belangrijk deze van begin af aan samen met de opdrachtgever vast te stellen. Alles automatiseren en daarmee handmatig testen overbodig maken is niet realistisch. Het automatiseren van de unit-tests binnen Agile wel. Het geautomatiseerd uitvoeren van een groot deel van de regressietest ook. Belangrijk advies in deze is dan ook: zorg dat de verwachtingen en doelstellingen realistisch zijn, stel regelmatig de vraag in hoeverre automatiseren van een bepaalde test bijdraagt aan het bereiken van de afgesproken doelen en bewaak of de inspanning van mensen en inzet van middelen in balans blijft met de opbrengst.
Aangezien geautomatiseerde systemen – dus ook geautomatiseerde testen – na implementatie vragen om onderhoud, zijn deze punten niet enkel op korte termijn van toepassing maar ook in de toekomst. Voorbeeld hiervan is dat testautomatisering van een (groot) deel van de regressietest er voor zorgt dat er meer releases dan voorheen kunnen worden geïmplementeerd omdat de doorlooptijd wordt gereduceerd.
Wat is de context?
Vaak wordt context vertaald in hoe automatiseerbaar de testgevallen zijn en hoe benaderbaar de te testen systemen zijn. Ervaring heeft geleerd dat deze aspecten een gegeven zijn en daarmee bepalend voor de te bereiken doelen. Testautomatisering zal daarbij nooit een sturende rol krijgen, maar is hooguit een trigger voor verbetering van het testproces en in bredere zin het softwareproces. Bij succesvolle testautomatisering betekent context driven dat de architectuur, het maken en onderhouden van de scripts en de programmeerstijl aansluit op methode van software ontwikkeling en past in het systeemlandschap. Met als belangrijke stelregel: ‘wat nodig is’ staat centraal, niet ‘wat kan’. In dit kader zijn drie niveaus te onderkennen:
- testautomatisering draagt bij;
- testen bereikt meer met testautomatisering dan zonder;
- schaalbaar en toekomstvast inzetten van testautomatisering.
Testautomatisering draagt bij
Eerste belangrijke stap voor testautomatisering is bijdragen aan de doelstellingen van testen. Met andere woorden, zorgen dat de tester zijn werk beter of sneller kan doen. De tester kan zich focussen op het op een slimme manier testen, analyseren van resultaten en inzicht geven in de kwaliteit. Automatisering neemt het routinematig werk uit handen en ondersteunt de tester.
Testen bereikt meer met testautomatisering dan zonder
Gericht toepassen van de mogelijkheden die een gedegen architectuur en de bijbehorende tooling biedt, stelt testen in staat meer te bereiken met automatisering dan zonder. Denk hierbij niet alleen aan het vaker uitvoeren van meer testgevallen, maar ook aan integratie met tooling voor defectmanagement en configuratiemanagement, het voorbereiden van testdata het analyseren van logfiles. Automatisering is een krachtig instrument voor een tester, breder dan het automatiseren van testen!.
Schaalbaar en toekomstvast inzetten van testautomatisering
Schaalbaar betekent in deze snel en flexibel inspelen op de vragen die worden gesteld aan testautomatisering, bijvoorbeeld vanuit Agile-teams en houdt in dat testautomatisering om kan gaan met de veranderlijkheid van de omgeving door een goed te onderhouden raamwerk in de lucht te houden. Bijvoorbeeld door scripts objectgeoriënteerd in te richten om onderhoudsinspanning te reduceren en bestaande scripts te ‘refactoren’. Toekomstvast betekent dat continu mogelijkheden voor verbetering worden gezocht en intensief wordt samengewerkt met software development om kennis, ervaringen, kunde en vaardigheden uit te wisselen. Dit alles om binnen Agile Development, projectmanagement volgens Scrum en ‘continuous integration/delivery/deployment/improvement/…’ de testrol gedegen en betrouwbaar te blijven uitvoeren.
Tien aandachtsgebieden
Doelgericht betekent samen met de opdrachtgever bepalen welke doelstellingen behaald moeten worden. Deze doelen bepalen het vereiste niveau van testautomatisering. Om dit te concretiseren en naar de praktijk te vertalen is, in lijn met andere verbeter- en implementatiemodellen, testautomatisering opgedeeld in aandachtsgebieden. Per aandachtsgebied is gedetailleerd en objectief aan te geven aan welke eisen moet worden voldaan om testautomatisering die bijdrage te laten leveren die past bij het vereiste niveau en daarmee de gestelde doelen.
Belangrijk voor succesvol toepassen van testautomatisering zijn de gekozen architectuur voor testautomatisering, de wijze waarop de geautomatiseerde testscripts worden ontwikkeld en onderhouden, en welke programmeerstandaarden gehanteerd worden. Het platform waarop testautomatisering wordt ontwikkeld, onderhouden en draait, is samengevat onder de noemer tooling. De testomgeving en de testdata moeten beschikbaar, bereikbaar en (her)bruikbaar zijn én end-to-end testen over verschillende platforms ondersteunen. Integratie met andere tooling, zoals defect- en configuratiemanagement, draagt eveneens bij aan gedegen testautomatisering, dat staat of valt met een goed testautomatiseringsteam. Samen met een strategie om de gestelde doelen op een efficiënte wijze te implementeren en een doordachte manier om alle activiteiten te plannen, begroten en bewaken. Aan de hand van deze tien aandachtsgebieden kan een automatiseringsproject grondig tegen het licht gehouden worden, om testautomatisering succesvol in te zetten, respectievelijk te verbeteren.
Ten slotte
Als testautomatisering er in slaagt het doel voor ogen te houden, dan ontstaat een optimale balans tussen structuur en vrijheid van handelen, die nodig is om in de toekomst een essentiële bijdrage te blijven leveren. Door breder naar testautomatisering te kijken, staat de tool niet meer centraal maar het doel. Uit ervaring blijkt overigens dat ook in deze context voldoende ruimte overblijft om te ‘spelen’.
Goed stuk! Ook goed te begrijpen voor een leek als ik op het gebied van testen.
@Ruud T,
je document is vanuit de IT geschreven lijkt het. Wanneer ik het vanuit de iCt bekijk, zijn er nog meer dimensies te testen dan je zo aangeeft. Natuurlijk ook te automatiseren. Misschien is het een leuke aanvulling voor je om daar een volgend verhaal aan te wijden…..