Blogserie geautomatiseerd testen deel 3: de voor- en nadelen

donderdag 1 februari 2018

In aflevering 2 hebben we gezien wat geautomatiseerd testen betekent voor de nieuwe tester. Deze keer zetten we alle (maar dan ook álle) voor- en nadelen op een rijtje. Ik beweer bij dezen dat het rijtje compleet is. Maar oordeel zelf en schiet er gerust op!

Ervaring van jaren

Geautomatiseerd testen zoals we dat nu kennen is niet nieuw: het bestaat al tientallen jaren. Het is inmiddels bijna een vanzelfsprekendheid geworden, maar dat wil niet zeggen dat de keuze voor tools, methodes en werkwijzen vastligt. Want er zijn nog steeds legio manieren om het verkeerd of onhandig te doen. Een doordachte strategie en toolkeuze kan veel geld en frustraties besparen.

De ervaringen van anderen helpen daarbij. Daarom inventariseren we alle voor- en nadelen die mijn collega’s en ik hebben ervaren in de Valori SmarTEST en Full Stack Testing praktijk, gecompleteerd met de ervaringen van nationale en internationale vakbroeders en -zusters.

Spreekt een voor- of nadeel je niet aan en is het in jouw situatie niet relevant? Laat hem dan vooral rusten!

Complete lijst

Deze lijstjes zijn geen absolute waarheden maar wel een complete opsomming van de vóór- en nadelen die we hebben ervaren of die we anderen horen noemen. Meer ken ik er domweg niet momenteel. Het is dus niet zomaar een vrijblijvend lijstje, maar een checklist met de pretentie van volledigheid. OK, daar gaat ‘ie:

Alle mogelijke voordelen van geautomatiseerd testen

  • Snel - snellere feedback, hogere ‘velocity’, testen zit niet meer op het kritieke pad
  • Frequent - de hogere snelheid maakt frequenter testen mogelijk
  • Volledig - vollediger (regressie)testen mogelijk, met een betere dekkingsgraad en daardoor minder kans op productieverstoringen
  • Flexibel - meer wendbaarheid, agility en flexibiliteit (resultante van de bovenstaande voordelen)
  • Goedkoop - lagere kosten door minder menskracht voor de uitvoering
  • Betrouwbaar - want minder foutgevoelig
  • Herhaalbaar - want je doet elke keer exact hetzelfde en ‘bugs’ zijn makkelijker te reproduceren
  • Traceerbaar - aantoonbaarheid en compliancy, achteraf is altijd traceerbaar wat precies is getest
  • Veelzijdig - maakt testen mogelijk die handmatig niet lukken omdat het te snel gaat of omdat er geen interface is waarop je handmatig kunt acteren
  • Nauwkeurig – maakt nauwkeuriger meten mogelijk, bijvoorbeeld van responstijden
  • Motiverend - meer uitdaging en motivatie voor de medewerkers; minder saai handmatig werk.
  • Brainsaver - meer tijd voor exploratieve, intelligente en creatieve testen
  • Tijdbesparend - de gebruikte tools zijn ook handig voor het snel invoeren van grote hoeveelheden consistente (test)data via de schermen, dus mét invoervalidaties
  • Efficiënt - betere benutting van testomgevingen: testen draaien ‘s nachts of zelfs 24x7
  • Build proces - is een onmisbare schakel in een geautomatiseerd build proces, continuous integration en in ‘test first’ softwareontwikkeling
  • Performance - maakt langdurig of zelfs continu testen met hoge en/of wisselende belastingen mogelijk
  • Dashboard - ondersteunt een continue kwaliteitsindicatie van de software, zichtbaar voor iedereen in de organisatie, bijvoorbeeld via dashboards op de gangen
  • Structuur - brengt rust, reinheid en regelmaat, want geautomatiseerd testen kan niet zonder een gestructureerd proces met stabiele omgevingen en schone testdata (maar ‘elk voordeel heb z’n nadeel’, zie de eerste bullet in het rijtje nadelen)

De lijst van voordelen komt van pas bij het nadenken over de vraag waarmee je als het goed is begint “Waarom wil ik automatiseren?”. Het antwoord op die vraag is belangrijk om de noodzakelijke keuzes en investeringsbeslissingen te kunnen maken.

Alle mogelijke nadelen van geautomatiseerd testen

Nadelen zijn er ook:

  • Afhankelijk - de afhankelijkheid van structuur, stabiele omgevingen en consistente testdata is groot
  • Overhead - de overhead wordt groter, het opzetten en onderhouden van scripts kost meestal meer tijd en geld dan gedacht
  • Analyse - de analyse van runverslagen kan tijdrovend zijn, met name als je dekkingsgraad groter en fijnmaziger wordt en de tool veel onterechte ‘fails’ rapporteert
  • Duur - niet alle tools zijn gratis en inkoopprocedures kosten tijd en energie
  • Complex - de tools brengen hun eigen complexiteit mee, vergen opleiding en beheer en moeten bij inzet voor hoog-risico systemen (medisch, automotive, luchtvaart) gevalideerd worden
  • Beperkt - niet alle testen kunnen worden geautomatiseerd, de tools hebben hun beperkingen
  • Dom - geautomatiseerd testen ontbeert de creativiteit en de flexibiliteit van de menselijke tester
  • Onveilig - tools kunnen beveiligingsrisico’s (lekken, kwetsbaarheden) introduceren door poorten open te zetten en te linken naar aanvullende cloud services
  • Afleider - Energie en creativiteit wordt gestopt in tool-technische uitdagingen en niet meer in kritisch testontwerp
  • Minder betrokkenheid - handmatig testen brengt draagvlak, betrokkenheid en kennis bij de (gebruikers)testers en dat wordt minder bij geautomatiseerd testen
  • Onterecht vertrouwen - het vertrouwen in de uitkomsten van geautomatiseerde testruns is vaak groot, maar dekking en kwaliteit van een geautomatiseerde testset zijn niet meer waard dan wat de bouwers erin gestopt hebben
  • Veeleisend - samenvattend: geautomatiseerd testen vergt een behoorlijk kennisniveau en volwassenheid van de organisatie

De lijst van nadelen is noodzakelijk om de kostenkant van het verhaal helder te krijgen en om de bekende valkuilen te vermijden.

Ik mis er één, of toch niet?

De kans is levensgroot dat je op het eerste gezicht enkele termen in deze opsommingen mist. Maar ik durf de stelling wel aan dat bijna alle gevallen een kwestie van bewoording zijn. Doordat we vaak verschillende woorden gebruiken voor hetzelfde (synoniemen) of dezelfde woorden voor iets verschillends (homoniemen) lijkt er iets te missen. Verder zijn er natuurlijk altijd afgeleide voordelen te noemen. Bijvoorbeeld: ik word er gelukkig van. Of hele specifieke voordelen die in een generiek rijtje niet thuishoren. Voorbeeld: mijn zus levert test tools en ik gun haar haar business. Het leek me beter om niet uitputtend te willen zijn in dit soort afgeleide en specifieke voordelen.

Too much?

Wat natuurlijk ook kan is dat je helemaal niets mist maar het veel te veel vindt. Geen zorgen, dat heb je nu eenmaal met checklists: ze helpen je om niets te vergeten en zijn dus (over)compleet voor jouw specifieke geval. Spreekt een voor- of nadeel je niet aan en is het in jouw situatie niet relevant? Laat hem dan vooral rusten!

Nuances

Naast de ‘harde’ voor- en nadelen zijn er ook allerlei meer genuanceerde afwegingen die de balans kunnen laten doorslaan maar wel of niet geautomatiseerd testen. In een volgend blog meer daarover.

Schieten maar!

Ik heb een grote broek aangetrokken en heb zelfs beweerd dat je je waarschijnlijk vergist als je denkt dat er iets ontbreekt in bovenstaande rijtjes, wat een arrogantie! Dus ga de uitdaging vooral aan en roep maar wat er mist. Want ik sluit het niet uit, dit hele verhaal is tenslotte ‘slechts’ onze kennis en inzicht van vandaag. Schiet er maar op!