Wat moet een tester kunnen in een DevOps- omgeving?

De stap naar DevOps betekent voor de traditionele tester een grote verandering. Bij DevOps wordt gewerkt in multidisciplinaire teams, waarbij iedereen gezamenlijk verantwoordelijk is voor het eindproduct. In mijn vorige blog schetste ik hoe de transformatie naar DevOps werkt. In deze blog ga ik in op de vraag: wat wordt er van een tester in een DevOps-team verwacht?

De Tester+

Binnen DevOps moet een tester multifunctioneel zijn. Hij moet naast zijn testspecialisme ook kennis hebben van beheer, businessanalyse of development. Dit is het zogenaamde T-shaped profiel.

In de ideale situatie bestaat een DevOps-team uit personen die elkaar aanvullen qua specialisme maar ook op andere kennisgebieden. Doordat men elkaar complementeert, is het team in staat om zelfstandig een product of functionaliteit te ontwerpen, bouwen, testen, deployen en onderhouden.

Een tester in een DevOps-omgeving kan gespecialiseerd zijn in testen, maar ook businessanalyse uitvoeren of een operationsmedewerker helpen met incidenten in productie. De zogenaamde T-shape komt dan van de lange pijler voor de specialisatie en de kortere pijlers voor de mogelijkheid om ook in andere vakgebieden een bijdrage te kunnen leveren.


Architectuur & design DevOps onderscheidt hierin acht vakgebieden:

  • Business value optimalisatie
  • Businessanalyse
  • Programmeren
  • Continuous delivery
  • Testspecificatie
  • Infrastructuur engineering
  • Security, risk & compliance

Skillset

De theorie van de DevOps Agile Skills Association (DASA) benoemt vier skills waarover een DevOps-teamlid zou moeten beschikken. Dit zijn:

  • Courage: coaching, zelfvertrouwen, pro-activiteit, reflectie en flexibiliteit;
  • Teambuilding: samenwerken, open communicatie, wederzijdse verantwoording, gemeenschappelijk doel en het begrijpen van elkaars standpunt;
  • DevOps leadership: ondersteunen, nederigheid (geen ruimte voor ego’s), ruimte voor feedback en weten wanneer een stap terug te doen;
  • Continuous improvement: de Kaizen-mindset, ‘out-of-the-box’ denken, nieuwsgierigheid en kennisdeling.

Binnen het DASA competence framework wordt een schaal gebruikt van vijf niveaus: beginner, competent, bekwaam, expert en master. Van een DevOps-teamlid wordt verwacht dat deze zich ten minste op het niveau ‘bekwaam’ bevindt voor alle vier skills.

Automatisering

Een van de kernprincipes van DevOps is om zoveel mogelijk te automatiseren. Binnen het vakgebied testen is automatisering alom bekend en wordt het veelal voor regressietesten toegepast.

Naast de regressietesten is er vooral bij de kleinere testen, zoals de unit- of systeemtesten, snel winst te behalen door deze te automatiseren. Functionele testen en ketentesten zijn vaak
complexer, waardoor het automatiseren meer resources zal kosten. Als tester is het dus belangrijk om goed te begrijpen op welk niveau er wat kan worden geautomatiseerd en hoe de risico’s opwegen tegen de baten.

Maar een tester moet ook zijn ogen open houden voor andere gebieden waarop met automatisering winst valt te behalen. Bij veel organisaties krijgen DevOps-medewerkers ten minste 10 procent van hun tijd ter beschikking om onderzoek te doen naar verbeteringen. Die verbeteringen kunnen worden gerealiseerd bij alle stappen in het proces waar efficiënter kan worden gewerkt of waar tijds- of kwaliteitsverlies optreedt.

Een manier om te onderzoeken waar tijdsverlies optreedt, is door de lean-techniek ‘Value Stream Mapping’ te gebruiken om een lead time ladder op te stellen. Deze laat duidelijk zien hoeveel tijd er per stap benodigd is en hoeveel wachttijd er tussen de stappen zit.

In de ideale situatie zouden de testgevallen ook moeten kunnen fungeren als de specificaties van het systeem. Binnen DevOps streef je naar een situatie waarin alles volledig geautomatiseerd, met één druk op de knop, het gehele proces kan doorlopen: van bouw naar test en uiteindelijk naar productie.

Een groot deel van het testwerk bestaat dan uit het automatiseren en het onderhouden van de geautomatiseerde testset. Dat is alleen mogelijk als er kleine stukken functionaliteit worden opgepakt die in een korte tijd het proces doorlopen en in productie kunnen worden gezet. Het risico dat er een fout wordt geïntroduceerd is dan een stuk kleiner. En als het toch voorkomt, is het veel gemakkelijker om deze op te lossen, namelijk met een snelle fix via een roll-forward (in plaats van een ingrijpende roll-back).

Tester wordt allrounder

Samenvattend is een tester in een DevOps-omgeving dus een allrounder die technisch onderlegd is en zich thuis voelt in de diverse disciplines. Affiniteit met automatisering is een must, want dat is een groot deel van DevOps. Daarnaast is kennis van ITIL en ALM absoluut een pre.

Dit komt bovenop de gebruikelijke kennis en kunde waarover een tester dient te beschikken. Want uiteindelijk wordt ook in een DevOps-omgeving van een tester verwacht dat hij de testspecialist is die in testen de lead kan nemen.

Mis je nog iets of wil je een kanttekening plaatsen? Laat het me weten!

Rob van Dijk Testconsultant

Laat een reactie achter