Organisaties moeten steeds sneller veranderen om aan de veranderende vraag van klanten te blijven voldoen. Dit stelt hoge eisen aan de ontwikkeling van applicaties. Om aan de groeiende hoeveelheid (test)werk te blijven voldoen neemt het aandeel en het belang van testautomatisering toe. Testautomatisering is geen nice to have meer maar een absolute must.
Organisaties moeten steeds sneller veranderen om aan de veranderende vraag van klanten te blijven voldoen. Dit stelt hoge eisen aan de ontwikkeling van applicaties. Klanten eisen niet alleen snelheid maar ook kwaliteit. Agile softwareontwikkeling sluit goed aan op deze veranderbehoefte en is inmiddels in een groot deel van de organisaties gemeengoed geworden. Om aan de groeiende hoeveelheid (test)werk te blijven voldoen neemt het aandeel en het belang van testautomatisering toe. Testautomatisering is geen nice to have meer maar een absolute must.
Dit uitgangspunt impliceert een en ander. Testsets moeten niet alleen snel aangepast kunnen worden aan wijzigende functionaliteit maar ook snel ten uitvoer kunnen worden gebracht. De organisatie moet daar wel op ingericht zijn qua mensen en benodigde middelen.
De vraag is wat moet je organiseren om aan deze randvoorwaarden te voldoen.
Een aantal vragen spelen daarbij een rol zoals: wat is de volwassenheid van de organisatie op het gebied van testautomatisering, waar wil de organisatie testautomatisering voor inzetten, wat is de ambitie en zijn de noodzakelijke resources voldoende aanwezig? Ofwel een toekomstbestendige testautomatisering.
Herbuikbaarheid
Hoe kom je tot een dergelijke toekomstbestendige aanpak? Bij het toekomstbestendig opzetten van testautomatisering spelen drie aspecten een belangrijke rol: herbuikbaarheid, overdraagbaarheid en herhaalbaarheid. Meer, bij elkaar zijn dit drie belangrijke pijlers onder de inrichting van testautomatisering. Dit vraagt onder meer het expliciet vastleggen en verspreiden van kennis, maar heeft ook invloed op de manier waarop individuele testgevallen en testscripts worden opgesteld.
Verder is voor een toekomstbestendige inrichting een architectuur gebaseerde benadering noodzakelijk is. Door expliciet aandacht te schenken aan de aspecten mens, organisatie, proces, data en technologie en hun samenhang is het mogelijk om testautomatisering organisatie breed te verankeren en ook op lange termijn succesvol te laten zijn.
Om vast te stellen waar je als organisatie staat en wat je moet doen om de gestelde ambitie waar te maken, is een assessmentmodel ontwikkeld die je daarbij ondersteunt. Aan het assessmentmodel is ook een groeimodel gekoppeld. Aan de hand van de uitgesproken ambitie geeft het groeimodel inzicht in de belangrijkste zaken die aanwezig zouden moeten zijn voor het op een goede manier inrichten en uitvoeren van testautomatisering. Het is gestructureerd in de eerder aangegeven vijf aspecten: mens, organisatie, proces, data en technologie.
Zoals is op te maken uit de genoemde aspecten gaat een belangrijk deel van de investering in het toekomstbestendig opzetten van testautomatisering zitten in zaken die niet direct met it te maken hebben, maar vooral met organisatorische aspecten.
Echter, zoals eerder is aangegeven speelt snelheid in de uitvoering een belangrijke rol. Je moet vanuit test mee kunnen blijven lopen in de snelheid van de levering en tijdig inzicht geven in de noodzakelijke kwaliteit. Daarbij vormen de aspecten herhaalbaarheid, herbruikbaarheid en overdraagbaarheid een essentiële rol.
Hier kan aan tegenmoet worden gekomen door de toepassing van het zogenaamde drielagenmodel.
Het model bestaat uit een functionele laag, de configuratielaag en een technische laag. De functionele laag bevat een functionele beschrijving van de tests in logische testgevallen. De technische laag bevat alle programmacode die nodig is voor het uitvoeren van deze testgevallen in de vorm van geautomatiseerde scripts. De configuratie laag legt de verbinding tussen de functionele- en technische laag en voert de test daadwerkelijk uit.
Drielagenmodel
De toepassing van het drielagenmodel vermindert de onderhoudsinspanning. Immers, wijzigingen in bijvoorbeeld de functionele laag hoeven niet altijd gevolgen te hebben voor de technische laag. Noodzakelijke aanpassingen kunnen daardoor snel worden door- en uitgevoerd worden.
Gekoppeld aan de resultaten van het assessment en de uitgesproken ambitie krijg je inzicht in wat er moet gebeuren in je organisatie om de testautomatisering verder te structureren en toekomstbestendig in te richten. Er ontstaat als het ware een spoorboekje van acties die gerealiseerd moeten om de afgesproken ambitie in te vullen.
De vraag is natuurlijk wat het toekomstbestendig inrichten van testautomatisering nu uiteindelijk oplevert. Een sluitend, kwantitatief onderbouwd, antwoord is lastig te geven. Waar kun je aandenken?
Zoals al is aangegeven, is de leversnelheid van software van toenemend belang. Aantonen van kwaliteit en behoud van de kwaliteit is bijna vanzelfsprekend.
Door de testautomatisering zodanig in te richten dat tests snel herhaalbaar en herbruikbaar zijn lever je inzicht in de kwaliteit van de software en voorkom je dat test een ‘bottleneck’ vormt in het releasen van software. Mogelijke regressie is vroegtijdig inzichtelijk.
Door een opzet van de testautomatisering volgens het drielagenmodel kun je snel wijzigingen in de functionaliteit toevoegen zonder dat scripts op meerdere plaatsen gewijzigd hoeven te worden. Hetzelfde geldt voor de techniek. Wijzigingen kunnen min of meer geïsoleerd worden doorgevoerd.
Door de toepassing van het drielagen model word je ook minder afhankelijk van specifieke resources zoals testautomatiseerders. Een groot deel van het werk kan door (functionele) testers worden opgepakt. Vooral het werk op de functionele- en configuratie laag.
Het inrichten van een toekomstbestendige testautomatisering vergt op voorhand zeker een inspanning. Echter, afhankelijk van de ambities kun je stap voor stap toegroeien naar de gewenste (eind)situatie.
De ervaring leert dat het goed neerzetten van testautomatisering zich op termijn uitbetaald door het sneller kunnen leveren en reageren op wijzigingen.