Het is een goede zaak dat er meer aandacht wordt besteed aan ketentesten. Het artikel ‘ketentest is cruciaal’ van Vukkink en Som in Computable van 24 september 2004 is hiervan een goed voorbeeld. Gerlof Hoekstra en Bart Vries hebben als testmanagers veel ervaring met ketentesten en brengen deze met dit artikel graag in als aanvulling en kanttekeningen op het artikel.
Het artikel ‘ketentest is cruciaal’ wekt de indruk dat het uitvoeren van een ketentest vooral een activiteit is in de eindfase van een project. De praktijk leert dat het op deze wijze positioneren van de ketentest nog wel bijdraagt in het vinden van fouten, maar niet meer in het herstellen ervan. Het blijkt vaak dat opdrachtgevers door gebrek aan tijd niet meer in staat of bereid zijn om de fouten op te lossen. Vaak is een nieuwe dienst al aangekondigd waardoor er een dwingende ‘go life’-datum bestaat, met als resultaat het provisorisch herstellen dan wel accepteren van de fout.
Ketentest als onderdeel van het ontwerptraject
Deze bezwaren zijn voor een groot deel te voorkomen door de ketentestactiviteiten goed te integreren met het ontwerpproces. Op zich is deze gedachte niet nieuw. De testwereld roept al jaren dat hoe eerder testers betrokken zijn in een project, hoe goedkoper het oplossen van fouten is en hoe meer je fouten kunt voorkomen. Een goede, efficiënte ketentest vereist een zéér vroege betrokkenheid. Een probleem hierbij is dat dit een radicaal andere denkwijze vraagt van testers dan ze tot nu toe gewend zijn. Veel testers weten dan ook niet goed hoe ze moeten handelen in zo’n vroege fase van een project. Er is immers nog geen functioneel ontwerp op basis waarvan men testgevallen met een vertrouwde testspecificatietechniek kan afleiden. Ook het omgaan met vage en snel wijzigende vereisten vraagt om specifieke vaardigheden.
Bij diverse zeer complexe ketentesten aan de opdrachtgeverszijde van projecten, zijn goede resultaten behaald met de volgende werkwijze.
Testmodellering
Snel na de aanvang van een project zal op basis van zakelijke gewenstheid een eerste versie van het ketenontwerp vorm beginnen te krijgen. Parallel aan het maken van het ketenontwerp maken testers modellen op grond van de dan beschikbare kennis en documenten. Deze modellen vormen de basis waaruit later de testgevallen voor de ketentest worden afgeleid. In dit stadium is er meestal nog weinig bekend over hoe de processen eruit gaan zien of over welke toepassingen er bij betrokken zullen zijn. Bij het maken van de testmodellen staan bedrijfsobjecten daarom centraal. Het maken van testmodellen blijkt een uitstekend middel om het ketenontwerp te verifiëren. Door de feedback vanuit de testmodelleringsactiviteiten zijn de ketenontwerpers in staat een kwalitatief beter ketenontwerp op te leveren. Naarmate de ontwerpfase vordert, wordt steeds meer bekend over de toepassingen, interfaces en de betrokken partijen. Deze informatie wordt verwerkt in de testmodellen. Uit de modellen worden testgevallen voor de uiteindelijke ketentest afgeleid. Deze ketentest omvat niet alleen ict-gerelateerde, maar ook handmatige bedrijfsprocessen.
Voordat het ketenontwerp definitief wordt gemaakt, vindt er een virtuele ketentest plaats. Dit is een testsessie waarbij de belangrijkste partijen in de totale keten vertegenwoordigd zijn. De sessie wordt voorbereid door het testteam. De leden ervan maken een beperkt aantal testgevallen (denk aan 5-10) die via een rollenspel gezamenlijk worden ‘uitgevoerd’. De testmanager fungeert hierbij als moderator, een of meer testers leggen de resultaten vast. De voordelen van deze ‘virtuele test’ zijn enorm. Eventuele problemen in het ketenontwerp komen glashelder aan het licht, ruim voordat er software gebouwd is. Een bijkomend, maar minstens zo belangrijk voordeel is dat de verschillende betrokken partijen elkaar tijdens deze testsessie leren kennen en intensief met elkaar beginnen te communiceren. Hiermee wordt iedereen zich bewust van het gemeenschappelijk belang van het project.
Aansturen van leveranciers
Vukkink en Som wijzen in hun artikel terecht op het gevaar dat de ketentest kan ontaarden in een functionele test, omdat een of meer leveranciers van toepassingen in de keten hun eigen functionele testen niet naar behoren hebben uitgevoerd. Een goede manier om dit risico te beperken is de volgende werkwijze.
Het ketentestteam levert een beperkte set testgevallen aan de diverse toepassingenleveranciers. Deze set heeft een zodanige dekking dat de belangrijkste functionaliteit wordt meegenomen, namelijk die nodig is voor het uitvoeren van de ketentest. Het is dus zeker geen volledige set voor een systeemtest. Deze testgevallen zijn beschreven op logisch niveau. Het maken van de fysieke testgevallen en het uitvoeren van een volledige systeemtest is de verantwoordelijkheid van de leverancier.
De leverancier dient vervolgens aan te tonen dat de aangeleverde testgevallen in ieder geval met succes zijn uitgevoerd. Dit is een voorwaarde voor het starten van de ketentest. De testmanager bewaakt dit proces. Dit kan door testresultaten op te vragen, door testen bij te wonen (test-witness) et cetera.
Finale ketentest
Als alle partijen in de keten hun deel (getest!) hebben opgeleverd, wordt de uiteindelijke, fysieke ketentest uitgevoerd. Dit gebeurt in een integrale omgeving die zoveel mogelijk lijkt op de productieomgeving. Doordat er gedurende het project een zeer nauwe samenwerking is geweest tussen de verschillende partijen zullen er in deze fase nog weinig ernstige fouten in de keten worden gevonden. Het uitvoeren van de ketentest wordt daarmee een laatste bevestiging van wat eigenlijk al bekend was.
Communiceren in zakelijke termen
Het is van groot belang dat de ketentesters continu een zakelijk gezichtspunt hanteren. Dit geldt voor de testspecificatie, maar ook het rapporteren van bevindingen moet zoveel mogelijk in zakelijke taal gebeuren. Dit betekent dat bij iedere bevinding wordt gerapporteerd wat de consequenties zijn als deze fout zich in de productie zou voordoen, in termen die de opdrachtgever begrijpt. Dus niet: ‘Applicatie X loopt vast bij handeling Y’, maar ‘met het huidige product kunnen we de dit type aanvraag via distributiekanaal X voorlopig niet verwerken, dus lopen we zoveel omzet mis’. Op basis van dit soort informatie uit de ketentest kan de opdrachtgever een afgewogen beslissing nemen over het in productie nemen en de eventueel nog te nemen noodmaatregelen.
Samenvatting
Samengevat kan gesteld worden dat een ketentest bij complexe projecten inderdaad een goed middel is om te waarborgen dat de juiste producten worden gebouwd. Cruciaal voor het welslagen van een ketentest is dat men er zeer vroeg in het project mee begint. Dit principe leidt, mits goed toegepast, tot aanzienlijk minder fouten in de testuitvoeringsfase, waardoor het projectresultaat tijdig kan worden opgeleverd.< BR>
Gerlof Hoekstra, Bart Vries, Testmanagers Atos Origin Nederland BV