>>
18-december-2014, min leestijd

Valkuilen in de testautomatisering (2/2)

In een tweedelige blog over valkuilen in de testautomatisering behandel ik een tiental valkuilen en geef ik daarbij aan hoe je ermee om zou kunnen gaan om ze te voorkomen. In deel 1 heb ik reeds valkuilen benoemd over onderstaande aspecten.

  • De business case
  • Geschiktheid van de organisatie
  • Het doel van de testautomatisering
  • Toolselectie
  • Het tijdsaspect

Het tijdsaspect

De implementatie van testautomatisering kost tijd en dat is, gezien wat er allemaal bij komt kijken, niet zo vreemd. Het is noodzakelijk dat betrokkenen de volle aandacht eraan (kunnen) geven en niet als iets zien wat men even naast andere werkzaamheden erbij doet. De doorlooptijd kan anders aardig oplopen en wordt de kans op het maken van fouten groter.

Verder is het moment van automatiseren van essentieel belang bij testautomatisering, omdat je in het ergste geval achter de feiten aan blijft lopen. Met de Agile ontwikkelmethodiek worden er altijd werkende onderdelen opgeleverd en dat biedt een goede kans om het geheel steeds meer uit te bouwen. Begin dus direct met het automatiseren en niet zoals bij de watervalmethodiek pas achteraf.

Testautomatisering levert uiteindelijk een hoop tijdwinst op, maar de uitvoer ervan en analyse van testresultaten zal toch de nodige tijd zal vergen. Zeker in de beginfase zal men te maken hebben met een hoge leercurve en zal men met de opgedane ervaring de nodige aandacht moeten geven aan het verbeteren van de testautomatisering.

Wees je ervan bewust dat je met testautomatisering een traject bent ingeslagen waarvoor nou eenmaal de nodige tijd benodigd is. Geef het ook de tijd die het nodig heeft, want dat zal uiteindelijk alleen maar een positief effect hebben op de uiteindelijke implementatie.

Hergebruik van oude testscripts

Een begrijpelijke wens binnen de testautomatisering is het hergebruik van bestaande testscripts. Hiermee wil men extra werk voorkomen en de overgang naar de nieuwe tooling bespoedigen. Je hebt immers al testscripts liggen, dus waarom zou je dat compleet opnieuw ontwikkelen? Het is een begrijpelijke gedachte, maar er schuilt wel een gevaar in. Als de kwaliteit ervan onvoldoende is, bereik je er uiteindelijk een averechts effect mee. En dan hebben we het over kwaliteit in de zin van of het juiste getest wordt en of de wijze waarop de scripts zijn opgesteld wel voldoende aansluit bij de optimale werking van de tooling.

Enerzijds kan het zorgen voor een inefficiëntie opzet van de geautomatiseerde scripts, omdat de opzet van de huidige scripts dat afdwingen. Anderzijds kan het voor veel onnodig onderhoud zorgen, omdat testscripts klakkeloos omgezet worden zonder na te gaan of de testscripts nog wel van voldoende waarde zijn. Voor de omzetting schakelt men dan vaak engineers in, maar zij zijn inhoudelijk niet verantwoordelijk voor wat er getest wordt.

De overgang naar testautomatisering is een mooi moment om de bestaande test-sets eens kritisch te bekijken. Vertegenwoordigen ze (nog) wel voldoende businesswaarde? Zijn er andere testgevallen te bedenken die mogelijk belangrijker zijn?

Voorkom dat de basis van onvoldoende kwaliteit is en een negatief effect zal hebben op de implementatie. Ga dus eerst kritisch na in hoeverre de bestaande scripts nog van voldoende waarde kunnen zijn.

Automatiseren van testscripts

Het lijkt misschien een mooie gedachte om alles te willen automatiseren, maar realistisch is het niet. Kwaliteit gaat nog altijd boven kwantiteit. Vergeet ook niet dat het creëren van de testscripts de nodige investeringen kost. Enerzijds moeten ze gebouwd worden en anderzijds moeten ze onderhouden worden. Als het weinig toevoegt in de huidige term van businesswaarde, voeg het dan ook niet toe. Bovendien moet bij de uitvoer de hoeveelheid wel in verhouding staan tot wat er opgeleverd wordt.

De implementatie van testautomatisering vergt een initiële aanpak, waarbij niet gelijk alles geautomatiseerd moet worden. Idealiter begin je met de opzet van een kleine basis en breidt je deze steeds meer uit. Zo wordt er ervaring opgedaan en zorgt het voor vertrouwen. Het zal mensen ook het idee geven dat het echt wat gaat worden.

Het handmatig uitvoeren van testen zal met testautomatisering zeker niet verdwijnen, maar hooguit verminderen. Testautomatisering moet daarom ook zeker niet als complete vervanging gezien worden, maar als belangrijke aanvulling. Wees ervan bewust en accepteer het feit dat er altijd testen zijn die niet te automatiseren zijn, in technische of economische zin, waarbij handmatige uitvoer efficiënter is.

Plaats van testautomatisering in het testproces

Vaak gaat de volle aandacht naar het zo snel mogelijk kunnen inzetten van de testautomatisering en gaat men vaak voorbij aan het feit dat testautomatisering veel meer omvat dan alleen het geautomatiseerd uit kunnen voeren van testen.

Het moet onderdeel uitmaken van een goed doordacht testproces wil het efficiënt kunnen werken. Dat betekent dat het testproces verbeterd zal moeten worden en ook dát zal de nodige tijd vergen om daar een goede invulling aan te geven.

Het opzetten van bijvoorbeeld een framework kan voor een solide basis zorgen, waardoor het uiteindelijk minder moeite zal kosten om testen te automatiseren en te onderhouden. Gerichte invulling geven aan de Definition of Done kan de testautomatisering ook de noodzakelijke ondersteuning bieden.

Belang van de rapportage

Met behulp van rapportages zullen uiteindelijk de testresultaten beoordeeld moeten worden. De inrichting van de rapportages bepaalt in belangrijke mate de efficiëntie waarmee de resultaten uiteindelijk beoordeeld kunnen worden. Daarnaast dient het management te voorzien van de noodzakelijke informatie.

De meeste tooling biedt standaard-rapportages aan, maar biedt daarnaast vaak ook de mogelijkheid om zelf rapportages te ontwikkelen. Aan rapportages wordt vaak pas laat aandacht besteed, omdat het pas ook laat in het proces komt kijken. De keuze valt dan vaak op de standaard-rapportages. Men moet zich realiseren dat de rapportages een belangrijke invloed hebben op de uiteindelijke werkwijze en efficiëntie. In de beginfase zou standaard rapportage bruikbaar moeten zijn, maar het is belangrijk dat het een dusdanige inrichting krijgt dat gebruik ervan efficiënt is en aansluit bij de verwachtingen van het management.

Samenvatting / Conclusie

Testautomatisering staat vol in de schijnwerpers en nog steeds maken veel organisaties de eerste stappen daarin. Het implementatietraject is een leerproces van vallen en opstaan, waarbij je altijd onvoorziene situaties tegen zult komen.

Rekening houden met bekende valkuilen zal het zeker niet voorkomen, maar het helpt wel om in de juiste richting te blijven denken, waardoor de kans op mislukking stukken kleiner wordt.

Ter afsluiting een citaat van Henry Ford om aan te geven dat mislukking per definitie niet slecht is, omdat het juist nieuwe inzichten kan geven op hoe dingen beter kunnen.

Computest Academy

Interesse in een training? of wil je meer weten?