In het tweede artikel van deze reeks heb ik het belang van een goede teststrategie behandeld. Een volwassen teststrategie is direct van invloed op de volwassenheid van het testproces en bepaalt daarmee dus ook de volwassenheid van het gehele systeemontwikkelproces. Hierdoor kunnen projecten geavanceerde informatiesystemen voorspelbaar opleveren waardoor bedrijven en instellingen beter en sneller kunnen inspringen op veranderingen in de markt. Het resultaat: langdurig concurrentievoordeel.
Het definiëren van de juiste teststrategie is een proces dat continu zal moeten worden gemeten en bijgesteld. Het unieke Test Assessment Framework (TAF), waarvoor wereldwijd octrooi is aangevraagd, ondersteunt organisaties zowel bij het identificeren als het verbeteren van een volwassen teststrategie. TAF geeft een volledige (driedimensionale) indruk van de testvolwassenheid van de gehele testorganisatie: eerste dimensie: drie testdomeinen (teststrategie, testlevenscyclus, testdisciplines) omvatten in totaal vijftien testgebieden die worden geëvalueerd op hun test volwassenheid, tweede dimensie: de evaluatie vindt plaats tegenover de vijf testvolwassenheidsniveaus van het Testing Maturity Model (TMM), ontwikkeld in 1996 aan het Illinois Institute of Technology, via een ‘Quick Assessment' (kortere periode, meer subjectief) of een ‘Full Assessment' (langere periode, meer objectief) en derde dimensie: de testvolwassenheid van elk testgebied wordt bepaald via de drie testinvalshoeken in de organisatie: processen, technologie, en de mensen. In dit derde artikel zal ik stilstaan bij het tweede testdomein in TAF: de structuur van een succesvolle test levenscyclus.
Wat is een testlevenscyclus?
Je kunt een testlevenscyclus op verschillende manieren benaderen. Je kunt dit bijvoorbeeld zien als een fase binnen het project die een vast begin kent en ook een vast einde (als het bijbehorende project ten einde komt). Je kunt dit ook zien als een proces dat continu doorlopen wordt, bijvoorbeeld bij testorganisaties die zich bezighouden met het beheer van informatiesystemen of organisaties die zich bezighouden met het continu bouwen, testen en uitrollen van nieuwe releases.
Binnen het Test Assessment Framework wordt deze laatste benadering gehanteerd: de testlevenscyclus implementeert de testmethodologie (eerste TAF-testgebied), testomgeving en tools (tweede TAF-testgebied) en de testorganisatie en communicatie (derde TAF-testgebied) van de teststrategie continu binnen de verschillende testfasen van het project. Dit betekent dat er voor iedere testfase binnen het testproces een onderdeelplanning nodig is, een onderdeelvoorbereiding en een onderdeeluitvoering die vanuit de drie TAF-testinvalshoeken wordt bekeken: processen, technologie en de mensen.
Deze drie onderdelen vormen het tweede TAF-testdomein en de bijbehorende testgebieden:
– TAF-testgebied 3: testaanpak en planning
– TAF-testgebied 4: testontwerp en voorbereiding
– TAF-testgebied 5: testuitvoering en rapportage
TAF-testgebied 3: testaanpak en planning
Terwijl de teststrategie beschrijft welke testfasen worden doorlopen (afhankelijk van de organisatie en het soort projecten), beschrijft de testaanpak en planning gedetailleerd het proces zelf, de technologie én de organisatie van elke testfase. Per testfase zullen onderwerpen aan bod moeten komen als de doelstelling(en), de testtechnieken die gaan worden toegepast (denk bijvoorbeeld aan de ‘black box' en ‘white box' testtechnieken), de zogenaamde entry- en exitcriteria voor de testfase, het tijdschema, de testbegroting, etc. Ook zal het defectmanagementproces moeten worden gepland en voorbereid voor elke testfase. De kans is immers groot dat er andere teams betrokken zijn bij het systeem- en integratietesten dan bijvoorbeeld bij de gebruikersacceptatietesten. Deze teams zullen ieder hun specifieke eisen hebben omtrent het gebruik en daarmee de configuratie van een defectmanagementtool. Maar denk bijvoorbeeld ook aan de testcondities en requirements die per testfase worden getoetst; ook deze zullen per testfase verschillen en zullen dus moeten worden geïdentificeerd en goedgekeurd, aangezien ze een directe relatie hebben met de scope van elke testfase.
Een gedegen testplanning beschrijft ook welke testomgeving(en) gebruikt gaan worden per testfase. Soms zal dezelfde fysieke testomgeving worden gedeeld voor verschillende testfasen: hierbij is het belangrijk dat deze elkaar niet ‘in de weg' gaan zitten. Het is bijvoorbeeld mogelijk een omgeving voor unit- en systeemtesten te delen, maar dan zullen waarschijnlijk aparte database-instanties moeten worden geïnstalleerd, softwaremigraties en -installaties goed vooraf moeten worden gepland, etc. Uiteraard moet ook het gebruik en waar nodig ook de aanschaf van de testtools zorgvuldig worden gepland. TAF toetst onder andere op het gebruik van testmanagementtools, defectmanagementtools, testdatamanagementtools en tools voor het genereren en onderhouden van de testmetrieken.
Naast de processen en technologie zal ook moeten worden beschreven hoe de testorganisatie per testfase wordt opgezet. De testorganisatie voor de gebruikersacceptatietestfase is immers anders dan die van de systeemtestfase of van een performancetestfase. Naast de organisatiestructuur spelen andere organisatorische aspecten een belangrijke rol, zoals het onderdeel testtraining of het bestuur en de verantwoordelijkheden. Een vaak voorkomende valkuil is juist die van verantwoordelijkheid; een testmanager coördineert maar is niet (eind)verantwoordelijk, testers zijn tijdelijk uitgehuurd vanuit de lijnorganisatie en blijven rapporteren binnen de lijn, de projectmanager moet opleveren aan de business die zich afvraagt waarom het systeem niet voldoende is getest, etc. TAF en het Testing Maturity Model richten zich op een zogenaamde centrale testorganisatie met duidelijke functies en verantwoordelijkheden. Hoe bedrijven en instellingen hun centrale testorganisatie hebben ervaren met betrekking tot het halen van langdurig concurrentievoordeel zal ik behandelen in het vijfde en laatste artikel in deze serie.
TAF-testgebied 4: testontwerp en voorbereiding
'Een goede voorbereiding is het halve werk', zo luidt de bekende uitdrukking, en deze is buitengewoon van toepassing op het testen: menig tester zal hebben meegemaakt hoe pijnlijk het kan zijn dat het nodige nog moet worden voorbereid terwijl de testuitvoering al is begonnen! Een zorgvuldige testplanning, gevolgd door een onvolledige voorbereiding zal uiteindelijk leiden tot een inefficiënte en soms zelfs chaotische testuitvoering.
Vanuit de TAF-invalshoek ‘proces' zullen de business en functionele requirements als input dienen voor het creëren van de testcondities, testscenario's, testscripts, teststappen, verwachte resultaten, etc. Voorbeelden van functionele requirements zijn use cases (tegenwoordig ‘de facto' standaard voor het opstelen van functionele ontwerpen) en de zogenaamde ‘RICEFW's' (rapport, interface, conversie, extensie, formulier, workflow) die vaak worden toegepast binnen SAP- en Oracle-projecten. Ook zal moeten worden nagedacht over de structuur waarin het testen zal worden uitgevoerd: hoeveel testcycli worden er per testfase uitgevoerd en per testcyclus hoeveel testruns of testpasses?
Vanuit de TAF-invalshoek ‘technologie' zal de testomgeving in zijn geheel moeten worden opgezet zoals beschreven in de testaanpak en planning (TAF-testgebied 3). De omgeving bestaat niet alleen uit werkstations en servers, maar omvat ook de tools en middelen om de testscripts op te slaan en uit te voeren, testdata te kunnen lezen en manipuleren en de nodige tools om de testmetrieken te kunnen genereren en te rapporteren. Uiteraard zullen ook de omgeving en tool(s) moeten worden opgezet ter ondersteuning van het defectmanagementproces.
Vanuit de TAF-invalshoek ‘organisatie' zullen de communicatierichtlijnen zoals gedefinieerd in de testaanpak en planning moeten worden opgezet, zoals bijvoorbeeld de verschillende mailinglijsten, tijdstippen en locaties van vergaderingen, etc. Ter voorbereiding op de testuitvoering zal de training moeten plaatsvinden voor alle betrokkenen in het testproces. TAF beoordeelt ook naar de mate waarin en betrokkenheid van de juiste personen in het analyseren en goedkeuren van alle componenten die tijdens deze fase worden opgeleverd.
TAF-testgebied 5: testuitvoering en rapportage
Na een gedegen testplanning en testvoorbereiding komt het aan op het uitvoeren van het testen zelf. Er zullen weinig projecten zijn die weinig of geen problemen hebben ervaren tijdens de testuitvoering, maar het zijn juist de volwassen organisaties die in staat zijn de noodzakelijke veranderingen te managen die tijdens de testuitvoering naar boven komen. Enkele bekende technieken vanuit de TAF-invalshoek ‘proces' die de testuitvoering onder controle kunnen houden zijn de zogenaamde ‘smoke-' of technische architectuurtest en de regressietest. Bij de smoke-test worden er een of meer testscripts uitgevoerd om te beoordelen of de testomgeving stabiel is en alle systeemcomponenten geïnstalleerd en online zijn. Bij regressietesten wordt bepaald of reeds werkende en geteste software niet is aangetast door de oplossingen voor bugs die in andere delen van de software zijn aangebracht.
Volwassen organisaties zullen vanuit de TAF-invalshoek ‘technologie' de automatisering van de testuitvoering zover mogelijk hebben doorgevoerd. Naast het automatisch uitvoeren van de testscripts en testscenario's zelf, heeft testautomatisering betrekking op het bijhouden van de teststatus van de testcondities, testruns, testcycli en requirements. Bijvoorbeeld tijdens een testrun wordt een fout geconstateerd en wordt een defect gecreëerd; een geavanceerde testtool zal deze testrun automatisch op ‘gefaald' zetten, de teststatus van het bijbehorende testscript op ‘gefaald' zetten en de bijbehorende testconditie en eventueel de bijbehorende requirement(s) ook op ‘gefaald' zetten.
Tijdens de testuitvoering zullen ook de organisatorische voorbereidingen (vanuit TAF-testgebied 4) tot uiting moeten komen. Alle betrokkenen moeten worden ingelicht over de testvoortgang, vergaderingen zullen worden bijgewoond door de juiste personen met de juiste verantwoordelijkheden en bevoegdheden tot het nemen van beslissingen, etc. Een ander belangrijk organisatorisch aspect is dat van defectprioriteitstelling. Momenteel werk ik op een groot project waar het initieel niet belangrijk werd geacht om prioriteitstelling van defects te plannen en op te nemen in de voorbereiding van de communicatie- en vergaderstructuur. Nu we een groot aantal defects hebben met dezelfde prioriteit is programmamanagement inmiddels gaan inzien dat deze defects moeten worden herzien om de risico's van de ‘go-live' beter te kunnen inschatten.
Volgende artikelen
De doelstelling van het derde artikel in deze reeks was om indruk te geven over de structuur van een succesvolle testlevenscyclus. Testuitvoering kan een enorm hectisch proces zijn, een gedegen testplanning en voorbereiding per testfase is daarom onontbeerlijk. TAF ondersteunt de organisatie zowel bij het identificeren als het verbeteren van de belangrijkste componenten binnen de testplanning, testvoorbereiding en de testuitvoering. Een volwassen testlevenscyclus is herkenbaar als een voorspelbaar proces waarbij rollen en verantwoordelijkheden voor alle betrokkenen duidelijk zijn, technologie en tools worden toegepast om de testuitvoering zoveel mogelijk te automatiseren en waarbij veranderingen die naar boven komen tijdens het testen effectief en efficiënt worden gemanaged.
In het volgende artikel zal ik ingaan op de negen testgebieden die horen bij het volgende en laatste TAF-testdomein: de testdisciplines. De testdisciplines zijn testgebieden die een dermate belangrijke rol spelen binnen het testproces dat ze afzonderlijk kunnen worden beschreven en beoordeeld op testvolwassenheid. Sommige van deze TAF-testgebieden zullen wellicht als verrassing overkomen op de lezer, maar het is hierbij belangrijk te onthouden dat TAF verder kijkt dan alleen maar naar het testen zelf. Alle systeemontwikkeldisciplines die een directe- of indirecte relatie hebben met het testen worden onder de loep genomen en de daarmee samenhangende capaciteit van de organisatie om geavanceerde informatiesystemen voorspelbaar te ontwikkelen en toe te passen, met als resultaat: langdurig concurrentievoordeel.
In het laatste artikel van deze reeks zal ik ingaan op een onderzoek dat enige tijd geleden is ingesteld naar de voordelen van testcentralisatie en de verbetering van testvolwassenheid. In dit onderzoek komen interessante feiten naar voren die onderschrijven dat langdurig concurrentievoordeel voor bedrijven en instellingen daadwerkelijk wordt ondersteund door het verbeteren van testvolwassenheid.
“TAF geeft een volledige (driedimensionale) indruk van de testvolwassenheid van de gehele testorganisatie”
Hartstikke mooi, maar in mijn ervaring is de testvolwassenheid van een organisatie zelden de bottleneck in het testproces. Het ligt nl veel eerder in de gebrekkige testawareness bij projectleiding en de andere disciplines! Oftewel: het als project in staat zijn om de juiste randvoorwaarden voor een succesvolle testfase te kunnen creeren.
Biedt TAF ook middelen om de randvoorwaarden van het testproces af te kunnen dwingen?