Testen kan veel goedkoper
![Business](https://static.agconnect.nl/607710b6-35a3-544d-bd1b-df1d35a9eee1/article/83/f4/83f4ad8d-eab6-4c87-a35a-d8ad19387948/opening_image/opening_image_hero/business.jpg)
Sinds het voorjaar van 2000 is in deze welhaast apathische houding een kentering opgetreden. Is hier een relatie met een stagnerende economische groei te ontdekken? In ieder geval ziet men op (test)congressen en bij diverse bedrijven, dat kostenreductie tegenwoordig hoog op de agenda staat en dat er ook al oplossingen zijn geïmplementeerd die daadwerkelijk een reductie van de testkosten hebben opgeleverd. Voorbeelden hiervan zijn de grote financiële instellingen, verzekeringsmaatschappijen en telecombedrijven, ongeacht of zij zich nu in de VS, België, Oostenrijk, Duitsland of Nederland bevinden. Deze oplossingen richten zich vooral op de organisatorische aanpak van het testen. Een besparing van kosten blijkt op te treden als bepaalde testactiviteiten niet projectmatig maar procesmatig in een permanente testorganisatie (testcenter) worden uitgevoerd. Bij de bedrijven die daadwerkelijk een testcenter hebben ingericht blijkt een besparing van 20 tot 30 procent op de testkosten mogelijk te zijn. Naast besparing op de kosten blijken er enkele ‘prettige’ neveneffecten op te treden. Namelijk een verkorting van de testdoorlooptijd met 10 tot 20 procent en een afname van productieverstoringen met, in een enkel geval, maar liefst 90 procent. Om hier een antwoord op te kunnen geven, moeten we kijken naar wat er bij testen zoal een rol speelt. Het verrassend simpele antwoord is: mensen en infrastructuur. Mensen, of dat nu ontwikkelaars, testers, beheerders of gebruikers zijn, maken en voeren tests uit op een vaak ingewikkelde infrastructuur. Het is interessant om te zien dat veel bedrijven tot een overeenkomstige conclusie en oplossing zijn gekomen met betrekking tot het vraagstuk testkostenreductie. In al deze bedrijven voeren mensen testactiviteiten uit tijdens een systeemontwikkelingsproject. Een kenmerk van een project is dat dit een bepaalde looptijd heeft en dat er met een tijdelijke bemanning wordt gewerkt. In zo’n situatie wordt ook het testen projectmatig aangepakt. Dit betekent dat er een testtraject wordt ingericht voor de duur van het project en dat er met projectstandaards wordt gewerkt. Ook werkt men met tijdelijk personeel. De opgedane kennis en ervaring van projectmedewerkers die een testrol hebben gehad, gaan aan het einde van het project grotendeels verloren. De oplossing lijkt eenvoudig. Laat de projectmanager ervoor zorgen dat de kennis, ervaring, testaanpak en testware behouden blijven en hergebruikt kunnen worden. Helaas is het zo dat de projectmanager in het algemeen wordt afgerekend op het afronden van een project binnen een gestelde tijd en binnen een bepaald budget. Hierdoor is vrijwel geen aandacht voor het uitvoeren van activiteiten waarvan de inspanningen niet binnen het project kunnen worden terugverdiend. De consequenties hiervan zijn duidelijk: het in elk project weer opnieuw bedenken van een testaanpak, het opleiden van projectmedewerkers tot testers en het van ’scratch’ af aan maken van testware. En dat kost veel tijd en geld. Misverstand Iedereen die wel eens met testen te maken heeft gehad, weet hoeveel moeite het kost om de testinfrastructuur op te bouwen. Om nog maar te zwijgen over het kunnen beschikken over versleutelde productiedata die als basis kunnen dienen voor het uitvoeren van de tests. Daarnaast wordt er nog maar al te vaak door het management geroepen: ‘Gebruik nou toch eens een testtool’, zonder dat men beseft wat dit allemaal voor gevolgen heeft. Het gros van de tools wordt gebruikt bij het geautomatiseerd uitvoeren van de tests. Het is echter een misverstand te denken dat een tool bediend kan worden door een projectmedewerker die toevalligerwijs wat testactiviteiten toebedeeld heeft gekregen. Voor een zinnig gebruik van tools komt er behoorlijk wat denk- en programmeerwerk kijken. Dit is werk voor specialisten. Deze moeten worden ingehuurd. Dit, plus het feit dat de aanschaf- en licentiekosten van tools hoog zijn, maakt dat de hiervoor te maken investeringen niet tijdens het project terugverdiend kunnen worden. De eerder genoemde met veel moeite opgebouwde testinfrastructuur en testdata worden maar al te vaak zonder pardon na afloop van het project ontmanteld, waardoor een volgend project weer helemaal opnieuw kan beginnen. Het door diverse bedrijven gebruikte toverwoord, in een poging de testkosten te reduceren, is hergebruik. Hergebruik van testdata, testinfrastructuur, testtools, testaanpak, testkennis en testware. En dan niet per project, maar over alle projecten heen. Dit betekent dat het testproces ongeacht welk project, volgens een vaste werkwijze, met herbruikbare infrastructuur en gecontroleerde kwaliteit wordt uitgevoerd. In vergelijking met de projectmatige aanpak blijken hiermee een kortere doorlooptijd, een verlaging van de kosten en zelfs een verhoging van de testkwaliteit bereikt te kunnen worden. Maar hoe doen deze bedrijven dat? Door het inrichten van een permanente testorganisatie. De bedrijven die dit toepassen, hebben aan deze, al dan niet in de lijn opgenomen, organisatie namen gegeven als: testcompetencecenter, testcenter, testservicecenter, testfactory, testcentrum, testfabriek of testing mall. Wat is dat, een testcentrum? Elk bedrijf hanteert zijn eigen begrippen, maar een korte samenvattende definitie kan zijn: ‘Een permanente testorganisatie die is ingericht voor het leveren van testdiensten en faciliteiten aan de eigenaar, ontwikkelaar of tester van applicaties.’ In deze definitie komen elementen voor als permanente testorganisatie, testdiensten en faciliteiten. De eigenaar, ontwikkelaar en tester zou ik willen samenvatten als klanten. Hoe hebben bedrijven die voor een testcenter hebben gekozen aan deze elementen invulling gegeven? Dé invulling van een testcenter bestaat niet. In de praktijk blijkt elk testcenter aan deze elementen een eigen unieke invulling te geven. De permanente testorganisatie is op verschillende plaatsen in bedrijven terug te vinden. De ene keer bij een beheerafdeling, de andere keer bij een businessafdeling. In alle gevallen onderhoudt de manager van het testcentrum contacten met andere partijen: het projectmanagement, projectbureau, IT-development, operations, configuratiemanagement, systeemmanagement en de business. De manager ontkomt er niet aan om continu de meerwaarde van het testcenter aan de diverse partijen duidelijk te maken. In een Nederlandse financiële instelling waar de manager dit, na verloop van tijd, achterwege liet, bleek het testcenter een kort leven beschoren te zijn. De verklaring hiervoor is eenvoudig. De testkosten zaten voorheen verborgen in de diverse ontwikkelingsprojecten, maar nu het testcenter op de diverse begrotingen als kostenpost voorkomt wordt de aandacht van het management getrokken. En aangezien de baten niet op de begrotingen zijn terug te vinden zal de testcenter-manager moeten aantonen dat de baten er wel degelijk zijn. Een testcenter kent een vaste kernbezetting. Deze medewerkers bouwen kennis en ervaring op, die telkens weer worden benut en uitgebouwd. Het aantal vaste medewerkers en de vereiste kennis die zij moeten bezitten, zijn afhankelijk van het dienstenaanbod van een testcenter. Workshop Het dienstenaanbod van een testcenter wordt primair bepaald door de klanten van het testcenter. Het in de praktijk aangetroffen dienstenaanbod varieert van het verlenen van testconsultancy tot het ‘fixed priced’ uitvoeren van het gehele testtraject. Hoewel het uitvoeren van het gehele testtraject door een testcenter een zeldzaamheid is, bestaat er zo’n situatie bij een Oostenrijkse pakketleverancier van een effectensysteem (een systeem van meer dan honderdduizend functiepunten). Het testcenter met meer dan honderd testers krijgt bij elke nieuwe release de pakketspecificaties met de software en de opdracht om dit voor een bepaalde tijd te testen. Echter, een meer aangetroffen verdeling van testactiviteiten tussen project en testcenter is de volgende. Door het testcenter: • het geven van advies, training en coaching op het gebied van alle testactiviteiten; • het automatiseren en uitvoeren van testgevallen; • het inrichten en ter beschikking stellen van testinfrastructuur, testomgevingen en testdata; • het conserveren van testware. Door het project: • het maken van testgevallen; • het handmatig uitvoeren van testgevallen; • het maken van de testrapporten. Het testcenter bepaalt niet zelf wat goed is voor zijn klanten. Een beproefd middel om de door klanten gewenste diensten vast te stellen is het houden van een workshop met alle betrokken partijen. Verder geven regelmatige evaluaties informatie over de kwaliteit van de diensten, waardoor er een overzicht ontstaat van de goede en zwakke diensten. Een continue aandacht voor evaluaties en verbeteringen is noodzakelijk voor het zo optimaal mogelijk laten functioneren van het testcenter. Zo ontstaat er inzicht in de kosten, doorlooptijd en kwaliteit van het testproces. Deze gegevens zijn nog belangrijker voor het testcenter in het geval er concurrentie is te duchten van andere aanbieders van testdiensten. Het testcenter is overal een organisatie met dynamiek. Het aanbod van diensten aan projecten is niet alleen zeer divers, maar het is ook variabel. Met andere woorden, het implementeren van nieuwe diensten en het afstoten van overbodige, te dure, diensten is onlosmakelijk verbonden met een testcenter. Om greep te krijgen op, het beheer van, de testdiensten zijn er testcenters die hiervoor een op Itil gebaseerde aanpak kiezen. Voorbeelden hiervan zijn het afsluiten van testdienstniveau-overeenkomsten met klanten en het inrichten van de interne testcenterprocessen die het mogelijk moeten maken om aan een niveau van een testdienst te kunnen voldoen. Terugverdienen Het leveren van faciliteiten aan klanten van een testcenter is natuurlijk ook een dienst. Denk bijvoorbeeld aan het ter beschikking stellen of inrichten van de testinfrastructuur en/of testomgeving. Bij het opstellen van een toptien van de meest gevraagde diensten, zou deze met stip op nummer één staan. Dus van een testcenter kan minimaal worden verlangd dat deze over een startklare testinfrastructuur beschikt, waarbij het mogelijk moet zijn om testtrajecten parallel aan elkaar uit te kunnen voeren. Het is overigens niet zo dat het machinepark ook daadwerkelijk fysiek in een testcenter aanwezig moet zijn. In verreweg de meeste gevallen voert het testcenter het logisch beheer over de testinfrastructuur en testomgevingen, terwijl een afdeling als bijvoorbeeld systeemmanagement het fysieke beheer hierover voert. Het aanbieden van testtools is een interessant onderwerp. Aanschaf- en licentiekosten van testtools zijn een behoorlijke kostenpost. Het terugverdienen van deze investering gebeurt door het hergebruiken van de tools. De door het testcenter aangeschafte tools kunnen door alle projecten worden gebruikt, waardoor de investering kan worden terugverdiend. Ook wordt zo de drempel om testtools te gebruiken verlaagd aangezien het testcenter kennis heeft van zowel de tools als een methode om tests te automatiseren. Hergebruik is belangrijk en dit geldt zeker voor testautomatisering. Dit betekent dat de hulpmiddelen, scripts en dergelijke goed beheerd moeten worden. Door dit centraal bij het testcenter neer te leggen, wordt ‘wildgroei’ voorkomen en worden eventuele noodzakelijke/gewenste aanpassingen, bijvoorbeeld bij een nieuwe versie van het tool, integraal doorgevoerd. Hierdoor heeft een volgend project weer de beschikking over een actuele versie van het hulpmiddel en de scripts. Zonder klanten geen testcenter. Een manager van een testcenter moet zich terdege realiseren waar het om gaat. Namelijk om het uitvoeren van de moeilijke, dure en tijdrovende testactiviteiten die sneller, goedkoper en beter uitgevoerd kunnen worden door ze uit de projecten te halen en in een centrale testorganisatie onder te brengen. De testcenter-manager zal dus goed naar een projectmanager en andere klanten moeten luisteren om het dienstenaanbod af te stemmen op de behoefte. Succesvol Niet alle bedrijven die een testcenter hebben ingericht blijken hier even succesvol mee te zijn. Op de vraag: ‘Wat zijn in uw bedrijf succesfactoren gebleken bij het inrichten van het testcenter?’, zijn de volgende succesfactoren, in willekeurige volgorde, genoemd: • Het dienstenaanbod moet aansluiten bij de behoeften van de klanten van een testcenter. • Besteed continu aandacht aan het commitment van het management. • De testcenter-manager moet enthousiasme op zijn omgeving weten over te brengen. • Bouw het dienstenaanbod van het testcenter stap voor stap uit. • Toon regelmatig de baten van het testcenter aan het management. • Zorg dat het testcenter betrokken is bij het maken van het projectvoorstel en de planning van de projecten. • Zorg ervoor dat de opdrachtgever en/of klant betrokken is bij de testopdracht. • Voorkom te allen tijde bureau- cratie. • Wees geen ‘ivoren toren’-instituut. • Vind een goede balans tussen vaste en tijdelijke krachten. De praktijk leert dat een testcenter dat pragmatisch werkt en zich weet aan te passen aan de dynamiek van het bedrijf en de projecten, een substantiële bijdrage levert aan het sneller en goedkoper testen. En dit: met behoud van kwaliteit. Leo van der Aalst is Business Development-manager bij de divisie Software Control van IQUIP Informatica BV (aalstleo@iquip.nl).