Hoe past testen in DevOps?

Auteur: Rik Marselis ● Rik@Marselis.eu ● @rikmarselis

Redactie: Kimberly Snoyl

Werk jij al DevOps?
Steeds meer organisaties willen DevOps werken… Maar niet altijd beseft men precies wat dat betekent. En om bij ons mooie vak te blijven: het inbedden van testen en kwaliteitszorg in DevOps zorgt ook nogal eens voor hoofdbrekens.

Eerst maar even: wat is de definitie van DevOps? Wij definiëren het in de nieuwe TMAP-woordenlijst als ‘DevOps is een cross-functionele systeem engineering cultuur waarbij de ontwikkel- (Dev) en beheer- (Ops) activiteiten worden verenigd zodat snel, goedkoop, flexibel en met passende kwaliteit IT geleverd kan worden waarbij het gehele team gezamenlijk verantwoordelijkheid neemt voor de kwaliteit’. Dus DevOps is bovenal een cultuur. Een cultuur van gezamenlijke verantwoordelijkheid.

Hoe DevOps geïmplementeerd wordt, verschilt nogal eens. De fundamentele activiteiten worden vaak in een lemniscaat (oneindig-symbool) weergegeven. Wij hebben op basis van veel onderzoek een generiek model gemaakt (zie figuur 1). In het midden staat ‘Monitor’, het in de gaten houden of alles, zowel aan beheer- als aan ontwikkel-kant, gaat zoals het zou moeten. En als daarbij blijkt dat er iets verbeterd moet worden, dan komen de andere fundamentele activiteiten aan bod. De Plan activiteit gaat over plannenmakerij, maar wel in brede zin, want ook het verdiepen en verfijnen van wat er precies moet worden aangepast (of bijgebouwd) hoort daarbij. Vervolgens de Code activiteit, programmeren, maar ook andere zaken zoals infrastructure-as-code en zelfs documentatie-as-code. Vervolgens worden, in de Integrate activiteit, de nieuwe en gewijzigde onderdelen geïntegreerd met de reeds bestaande elementen. En als er genoeg vertrouwen is dat de nieuwe situatie business value oplevert, dan wordt het in de Deploy activiteit naar de productie-omgeving uitgerold. Waarna uiteraard in de Operate activiteit gezorgd wordt dat het informatiesysteem de bedrijfsprocessen adequaat blijft ondersteunen.

Figuur 1: Fundamentele DevOps activiteiten (bron: Quality for DevOps teams)

‘Maar hé’, hoor ik je denken. ‘Moet er nog getest worden, of wat?’

In veel lemniscaat-plaatjes zie je (google maar eens op ‘DevOps infinity symbol’) ergens het woord ‘test’ ertussen staan. Maar jij als vakmens weet wel dat zoiets niet klopt, toch? Want testen, en breder de zorg voor kwaliteit, komt in elk van de fundamentele DevOps activiteiten aan bod. Ga maar na: tijdens Plan doe je minstens reviews. Tijdens Code doe je statische en dynamische testen. Tijdens Integrate zijn er integratie- en ketentesten nodig. Maar ook tijdens Deploy en Operate gaat het testen door. Want testen in productie is tegenwoordig geen taboe meer. Sterker nog, sommige kwaliteitsaspecten kun je alleen maar in productie goed onderzoeken (denk bijvoorbeeld aan A/B-testen waarbij je kijkt welke versie het meest gewaardeerd wordt door de gebruikers).

En om alles te overzien is er continuous Monitoring, waar continuous testen een onmisbaar onderdeel van uitmaakt. Toch is dit nog niet het hele verhaal. Waar vroeger, in de tijd van sequentiële IT-delivery, een apart team zich met een groot deel van de kwaliteits- en testwerkzaamheden bezighield, is dat in de DevOps cultuur verantwoordelijkheid van alle leden van een team tezamen. En dat vergroot (gelukkig) de behoefte om vroegtijdig met kwaliteit aan de slag te gaan, door uit een breed palet van kwaliteitsmaatregelen te kiezen en daardoor een deel van het testwerk overbodig te maken. Denk maar eens aan een gezamenlijke refinement van user stories waardoor alle betrokkenen in één keer op dezelfde lijn zitten qua inhoud en doelen van een aanpassing of vernieuwing. En denk aan pair programming, zodat moeilijke dingen vlotter en beter opgelost worden en tegelijk veel van de typisch menselijke missers worden opgemerkt (die anders pas op een veel later moment naar boven zouden komen). 

Dit alles bij elkaar maakt dat we met de transitie naar een DevOps cultuur ook de definitieve overstap maken van testen als losse activiteit naar quality engineering als teamverantwoordelijkheid. En daarmee weer een stapje dichter komen bij de ideale wereld voor IT-delivery! (waarschuwing: En net als je denkt dat je de ideale situatie echt hebt bereikt, dan verandert de wereld en moeten we aan de slag met de volgende transitie :))

Veel succes en plezier met quality engineering in DevOps!!

Download de gratis preview-versie van het boek Quality for DevOps teams via deze webpagina:

https://tmap.net/book/quality-devops-teams

Geef een antwoord

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