Trendsz, Test engineering, Testmanagement, Testautomatisering

Autonoom testen betekent onafhankelijk zijn van anderen en zelf bepalen wanneer en hoe vaak je naar productie gaat. Bovendien levert het een zeer korte time-to-market en feedback-loop op. Dat willen we toch allemaal? Niet alleen een tester, maar ook een productowner en eigenlijk het hele DevOps team heeft baat bij autonoom testen. In deze blog geef ik zes concrete tips om dit te bereiken. Doe er je voordeel mee!

Tip 1: Vermijd end-to-end testen!

Met end-to-end testen – ook wel ketentesten genoemd – ben je afhankelijk van andere partijen om naar productie te kunnen gaan. Het komt regelmatig voor dat de gehele keten niet voorhanden is, de omgeving continu verandert of er bepaalde infrastructurele beperkingen zijn die de testen in de weg staan. Zowel de voorbereiding als de uitvoering van end-to-end testen is complex en tijdrovend. Je herkent vast de strubbelingen met het consistent krijgen van productie-like testdata over de breedte van de gehele keten. En omdat een end-to-end test nooit een exacte kopie van productie is, geven de uiteindelijke resultaten geen garantie voor de werking in productie. Er wordt vooral schijnveiligheid gecreëerd. Wil je autonoom testen, vermijd dan end-to-end testen! De tijd en kosten van de end-to-end test kun je beter ergens anders inzetten.

Tip 2: Pas ‘shift left’ en ‘shift right’ toe

Dit betekent concreet: zo laag mogelijk in de piramide testen en zo snel als mogelijk in het ontwikkeltraject. Hoe eerder je de feedback ontvangt, hoe beter. De ervaring leert dat ontwikkelaars, al dan niet aangestuurd door een tester, prima (regressie)testen kunnen schrijven.

Wees daarnaast niet bang voor shift right! Testen in productie hoort er tegenwoordig gewoon bij. Denk wel goed na over je teststrategie. En communiceer dit naar je team, maar ook naar de externe teams. Niet alle partijen zijn voorbereid op het autonoom testen. Verras ze daarom niet met jouw strategie maar informeer ze hier van tevoren zorgvuldig over.

“Fail fast (but safe)! Met kleinschalige implementaties, pro actieve monitoring en daardoor goede herstelmogelijkheden.”

Tip 3: Implementeer kleinschalig middels een geautomatiseerde delivery pipeline

Denk goed na over je implementatiestrategie en ga – indien mogelijk – voor kleinschalig implementeren. En dan niet enkel bij een eerste release naar productie. Maar ook bij de tweede, derde, vierde, … keer. Wanneer het in productie niet helemaal goed gaat, dan is de impact hiervan bij een kleinschalige implementatie een stuk kleiner.

Tip 4: Zorg dat je monitoring op orde is

Denk na over wat je moet doen bij eventuele bevindingen. Ben je in staat om verstoringen snel te constateren? Kun je vervolgens direct anticiperen en reageren middels een fix of een eventuele rollback? En, wat doe je met de situaties die niet helemaal goed verlopen zijn? Kun je die corrigeren?

Streef ernaar om de monitoring zo in te richten dat er proactief gehandeld kan worden in plaats van reactief. En denk over je monitoring al na in het voortraject, zodat eventuele requirements die hieruit voortkomen meegenomen kunnen worden tijdens de realisatie.

Poll

Is autonoom testen voor jou een optie?

Bekijk resultaten

Tip 5: Architectuur en scoping van je stories: hoe kleiner, hoe beter

Bekijk bij het bepalen van de architectuur of afhankelijkheden voorkomen kunnen worden. Waarom sla je gegevens op in een ander systeem? Kun je deze niet zelf opslaan en een API aanbieden?

Ook bij de omvang van je stories en het Minimum Valuable Product (MVP) moet je scherp te werk gaan. Hoe vaak zien we niet dat een MVP meerdere applicaties beslaat met grote afhankelijkheden waaraan tijdens meerdere sprints gewerkt moet worden. Dit kan echt slimmer, houd de testbaarheid goed in de gaten!

Tip 6: Gebruik Consumer Driven Contract Testing (CDCT) voor het testen van Interfaces

Helemaal onafhankelijk zijn is niet mogelijk. Bijvoorbeeld bij het testen van interfaces. Hoe test je een interface met een andere partij zonder end-to-end omgeving? Voor iedere interface spreek je een contract af met je ‘ketenpartner’: Consumer Driven Contract Testing (CDCT). CDCT is een microservices landschap en relatief eenvoudig toe te passen met tools als Spring Cloud Contract en Pact. In een landschap waarin ook COTS-applicaties (Commercial Off-The-Self) voorkomen, is het allemaal wat complexer. COTS-applicaties bieden momenteel vaak nog geen ondersteuning voor CDCT. Gooi dan niet meteen de handdoek in de ring. Ook in een landschap met COTS-applicaties kun je afspraken met je ketenpartners maken. Wellicht geen volledige CDCT-implementatie, maar stappen en afspraken zijn zeker te maken.

Een veranderingstraject met een lange adem

Wanneer je met bovenstaande tips aan de slag gaat, sta dan stevig in je schoenen en leer met weerstand omgaan! Het gaat hier om een verandertraject en het kost veel tijd en energie om de mindset van medewerkers te wijzigen. Ontwikkelaars zullen bijvoorbeeld niet meteen enthousiast zijn wanneer je ze vraagt om een geautomatiseerde (regressie)test op te zetten. Begeleid en coach ze daarom in het ‘critical thinking’. Leg ze uit waarom het verstandiger is dat een tester zich concentreert op exploratory testen en het verbeteren van het (kwaliteits)proces. Ook de organisatie zelf kan een ‘show-stopper’zijn. Bijvoorbeeld omdat er bepaalde aanpassingen nodig zijn voor de nieuwe werkwijze waar niet iedereen blij mee is. “Je mag pas na een ketenakkoord naar productie” … uh. Natuurlijk gaat het ook een keer fout en wordt er geroepen: “met een end-to-end test hadden we dit gevonden”. Laat je niet uit het veld slaan, maar maak er een leermoment van en bekijk wat de volgende keer anders of beter moet. We moeten niet vergeten dat er in de periode van de end-to-end testen ook issues in productie waren.

Heb daarnaast geduld. Volledig zonder end-to-end testen is slechts de stip op de horizon. De weg ernaartoe is een lange met veel kleine tussenstappen. Iedere stap van het team in de goede richting, maakt ze een stukje autonomer en sneller. Breng de medewerkers van het bedrijf geregeld bij elkaar en herhaal de boodschap. Vier successen en communiceer deze organisatie breed. “Zien doet geloven”. Daarnaast is er training en coaching nodig om medewerkers de benodigde skills bij te brengen.

Heb jij na het lezen van mijn blog vragen over autonoom testen en de weg ernaartoe? Of wil je graag jouw ervaringen hiermee met mij delen? Aarzel dan niet om contact op te nemen.

Schrijf je in voor
de nieuwsbrief

werkenbij overall

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.

Mijn Paarsz