Agile werken staat volop in de schijnwerpers. Bij Agile werken wordt nogal eens gedacht dat 'traditioneel' testen niet meer nodig is omdat de ontwikkelaars alles afvangen. Dit is een misvatting. Testen binnen Agile is nog steeds nodig, het vraagt alleen een nieuwe aanpak.
Veel organisaties zoeken naar hoe en waar het testen in deze nieuwe Agile werkwijze moet worden ingepast. Testen gaat anders binnen Agile. Dit maakt dat bij het verbeteren van testen op andere dingen moet worden gelet dan bij een traditionele aanpak. Allereerst moeten oude structuren worden losgelaten, wat veel lastiger is dan het lijkt. Vervolgens moet een volledige integratie van testen in het ontwikkelproces plaatsvinden. Dit betekent dat ook andere disciplines meegenomen moeten worden bij het verbeteren van het testen.
De basis voor goed testen binnen Agile is gestructureerd testen. Door het flexibel en creatief toepassen van de kennis en vaardigheden uit de gestructureerde testwereld wordt een belangrijke stap gezet in de richting van goed Agile testen. Vervolgens moeten medewerkers zich de Agile normen en waarden eigen maken om optimaal te kunnen bijdragen aan het testen in Agile context.
Omdat Agile testen en testverbetering een andere aanpak vereist, is speciaal voor de Agile context een nieuwe methode noodzakelijk voor het verbeteren van testen.
Hoe werkt het?
Voor het verkrijgen van inzicht in de kwaliteit van testen wordt een assessment uitgevoerd. De methode let hierbij op twaalf aandachtsgebieden. Ieder aandachtsgebied bevat controlevragen om het volwassenheidsniveau vast te stellen. De focus van het model ligt op testen, maar er is ook aandacht voor de vaardigheden die Agile teams en individuen moeten bezitten om Agile testen goed te laten verlopen. Het resultaat van een assessment wordt zichtbaar gemaakt in een volwassenheidsmatrix. Op basis van het behaalde resultaat wordt een verbeterplan opgesteld waarin quick wins en good practices worden aanbevolen.
Terwijl andere modellen zich alleen richten op testen of op ontwikkeling, is dit bij deze methode anders. Deze richt zich namelijk op alle drie belangrijke gebieden bij het beoordelen van testen in een Agile context – testen, individuen en softwareontwikkeling.
Testen
De basis voor goed Agile testen ligt bij een aantal aspecten van gestructureerd testen die (nog steeds!) nadrukkelijk aanwezig moeten zijn. Belangrijk is dat, bij het groeien naar Agile, deze kenmerkende aspecten niet worden losgelaten. In het verbetermodel zitten daarom controlepunten waarmee je kunt vaststellen of deze aspecten van gestructureerd testen aanwezig zijn. Risicogebaseerd testen is zo’n kenmerk dat ook in Agile bij een goede aanpak hoort.
Regressietesten en end-to-endtesten zijn extra uitdagend binnen Agile omdat ze ingepast moeten worden in het kortcyclische Agile ritme. Ze vormen dus een speciaal aandachtsgebied binnen de nieuwe methode. De regressietest moet goed worden ingericht om te borgen dat elke iteratie werkende producten oplevert. Voor de end-to-endtest geldt hetzelfde. Elke iteratie moet toegevoegde waarde leveren voor de klant en de klant maakt zich vooral druk om de bedrijfsprocessen.
Ook testmanagement wordt apart bekeken. Hoewel dit in Agile niet altijd als functie belegd wordt, zullen de taken die hierbij horen wel opgepakt moeten worden. Belangrijk is vooral om overzicht te houden en te zorgen dat de juiste zaken op testgebied worden uitgevoerd.
Individuen
Bij de overgang naar Agile werken komt de nadruk meer op individuen te liggen en minder op processen (zie het Agile Manifesto). Dit vraagt om teamwerk, goede communicatie en doelgericht werken. Voor maximaal resultaat is van belang dat een medewerker meer dan één rol vervult en zich als individu gaat onderscheiden, niet meer specifiek als bijvoorbeeld de tester of de ontwikkelaar. Een goede Agile tester helpt ook bij taken buiten het testen en elk teamlid, ook de ontwikkelaar, draagt bij aan het testen.
Een andere reden om goed naar het individu te kijken is dat niet iedereen bij voorbaat geschikt is om in een Agile omgeving te werken. In het model komen mensen, hun interactie en het teamwerk in aparte aandachtsgebieden aan bod. In het groeitraject naar beter testen in een Agile context spelen trainingen op het gebied van soft skills een belangrijke rol.
Softwareontwikkeling
Agile werken gaat uit van integratie tussen de verschillende disciplines binnen de softwareontwikkeling. Door het verweven van de disciplines is testen niet meer volledig losstaand te beoordelen. Daarom zijn speciale controlepunten in het model opgenomen zoals ‘Specialisten delen hun expertise om het kennisniveau in het team te verhogen’ en punten met betrekking tot change- en versiemanagement.
Testautomatisering is veelal een belangrijk onderdeel van het Agile testen. Hier komt de integratie van disciplines het duidelijkst naar voren: het ontwikkelen van testautomatisering is softwareontwikkeling. Het is belangrijk om de ontwikkelaars te betrekken bij het realiseren van de testautomatisering. Zo komt niet alleen de automatisering op een hoger niveau, maar worden ook de interactie en het teamwerk bevorderd.
Conclusie
Agile testen en bijbehorende testverbetering vragen om een toegespitst model. De scope van testen is breder geworden. Er moet meer op het ontwikkelproces als geheel worden gelet en het individu is belangrijker geworden. Beide zaken komen in bestaande testprocesverbetermodellen onvoldoende aan bod en zijn in deze nieuwe methode expliciet benoemd. Daarnaast kan groei naar Agile testen alleen plaatsvinden als er een goede basis in gestructureerd testen is. Het meest uitdagende in dit groeiproces is het loslaten, maar niet vergeten, van de structuur. Een nieuwe methode begeleidt dit proces en draagt bij aan het verbeteren van Agile testen.
Een tester mag zich nu met alles bemoeien. En adersom dan ook. Dat is op zich erg prettig.
Ik zou het alleen wel testen in een agile omgeving willen noemen. Testen veranderd nl niet zo sterk, maar we moeten ons wel aanpassen.
Testautomatisering lijkt nu eindelijk vaste voet onder de grond te krijgen.