Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
CHECKLIST TESTING MATURITY MODEL Doel Het doel van deze checklist is het bepalen van de sterke en zwakke punten van het huidige testproces ten op zichte van het Testing Maturity Model (TMM). Met behulp van deze checklist kunnen de onderdelen testbeleid en aanpak, testplanning, testtechnieken en testomgeving worden beoordeeld. Op basis van de resultaten van het onderzoek kunnen concrete verbeterpunten met betrekking tot het testproces worden vastgesteld en plan van aanpak worden opgesteld voor het bereiken van TMM level 2.
Toepassingsgebied Het belang van software in de maatschappij neemt steeds grotere vormen aan. Software is niet meer gelimiteerd tot het domein van administratieve informatiesystemen, in allerlei industriële en consumenten producten stijgt de hoeveelheid software exponentieel (Rooijmans et al, 1996). Ondanks goede resultaten met diverse kwaliteitsmethodieken, is de IT-industrie nog steeds ver verwijderd van foutloze software. Veel softwareorganisaties trachten het ontwikkelproces te verbeteren door middel van “software process improvement”. Hierbij wordt het Capability Maturity Model (Paulk et al, 1993) veelal als referentiekader gehanteerd. Het Capability Maturity Model (CMM) is door de software industrie als kader algemeen geaccepteerd om de kwaliteit van haar softwareprocessen (en in het verlengde hiervan haar softwareproducten) continu te gaan verbeteren. Testen is én blijft een belangrijk onderdeel van het software ontwikkelings- en onderhoudsproces. Veelal neemt testen zo’n 30 – 40% van het totale budget voor haar rekening. Zowel het toenemend belang van software in de maatschappij als de kosten die testen met zich mee brengt, geven de noodzaak aan voor een gestructureerde testaanpak. In het CMM wordt echter maar zeer beperkt aandacht gegeven aan het testproces. Als antwoord op deze problematiek is het Testing Maturity Model (Burnstein et al, 1996) ontwikkeld. Het Testing Maturity Model (TMM) is een model dat kan worden gebruikt voor het verbeteren van de testprocessen. Daarbij is het gepositioneerd als complementair ten aanzien van het CMM.
1 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Auteurgegevens Drs. Erik P.W.M. van Veenendaal CISA (Improve Quality Services BV) is reeds een groot aantal jaren werkzaam binnen het vakgebied software kwaliteit. Hij heeft daarbinnen een specialisatie ontwikkeld op het gebied van testen en is co-auteur van onder andere “Testen volgens TMap”. Als testmanager en adviseur is hij betrokken geweest bij een groot aantal automatiseringsprojecten. Tevens heeft Erik bij een aantal omvangrijke organisaties meegewerkt aan teststructurering en test process improvement. Hij spreekt regelmatig op zowel nationale als internationale conferenties en is een internationaal gerespecteerd docent op het gebied van software kwaliteit en testen (o.a. ISEB geaccrediteerd). Momenteel voert hij de directie van Improve Quality Services BV, een dienstverlenende organisatie op het gebied kwaliteitsmanagement, usability, testen en inspecties. Als universitair docent is Erik part-time verbonden aan de faculteit Technology Management van de TU-Eindhoven. Tevens is hij lid van de Nederlandse standaardisatie commissie ten aanzien van software kwaliteit en was hij medeinitiatiefnemer voor de oprichting van TestNet (de Nederlandse vereniging van testers). Harrie Storimans is als testconsultant werkzaam bij Improve Quality Services BV. Hij heeft ruim 6 jaar ervaring op het gebied van software kwaliteit en testen. De laatste jaren is hij werkzaam geweest als testcoördinator, testconsultant en senior tester op diverse grote en middelgrote projecten. Harrie is als tester gecertificeerd op basis van het ISEB certificaat “Foundation Certificate in Software Testing”. Momenteel houdt hij zich bezig met test process improvement op basis van het Testing Maturity Model.
Voor vragen of nadere informatie kan contact worden opgenomen met Erik van Veenendaal, via Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard of per e-mail
[email protected].
2 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Checklist Testing Maturity Model Inleiding Het afgelopen decennia laat zich kenmerken door de bewustwording in de software industrie dat continue kwaliteitsverbetering van doorslaggevende betekenis kan zijn om op langere termijn te kunnen overleven. Dit kan onder andere verklaard worden doordat de markt steeds hogere kwaliteitseisen stelt aan softwareproducten. Voor een blijvende betrouwbare werking dienen de softwareproducten van hoge kwaliteit te zijn. Daarvoor worden softwareorganisaties gedwongen om kwaliteitssystemen te ontwerpen en in te richten die kwalitatief hoogwaardige softwareproducten kunnen voortbrengen. Een kwaliteitssysteem dat is ontworpen voor softwareorganisaties is het Capability Maturity Model (Paul et al, 1993). Het Capability Maturity Model (CMM) is door de sofware industrie als kader algemeen geaccepteerd om de kwaliteit van haar softwareprocessen (en in het verlengde hiervan haar softwareproducten) continu te gaan verbeteren. Testen is een cruciaal onderdeel van een volwassen softwareontwikkelproces. Ondanks goede resultaten met diverse kwaliteitsmethodieken, is de IT-industrie nog steeds ver verwijderd van foutloze software. Veelal neemt testen zo’n 30 – 40% van het totale budget voor haar rekening. In het CMM wordt echter maar zeer beperkt aandacht gegeven aan het testproces. Als antwoord op deze problematiek is het Testing Maturity Model (Burnstein et al, 1996) ontwikkeld. Het Testing Maturity Model (TMM) is een model dat ten aanzien van het CMM als complementair wordt gepositioneerd en een kader schept voor het verbeteren van de kwaliteit van de testprocessen.
Testen Alvorens gedetailleerd in te gaan op het Testing Maturity Model, wordt het begrip testen besproken en gedefinieerd. Wat is testen? Testen is vergelijken. Het vraagt om een te testen object en een referentiekader waaraan dat object moet voldoen. Testen bevredigt de behoefte aan informatie over het verschil tussen het object en de eisen. De Internationale Standaardisatie Organisatie (ISO) definieert het testen als volgt: Testen volgens ISO: activiteiten die uitgevoerd worden om één of meer kenmerken van een product, proces of dienst vast te stellen volgens een gespecificeerde procedure (ISO/IEC Guide 2, 1991) Testen geeft inzicht in het verschil tussen de actuele en vereiste status van een object. Waar kwaliteit te definiëren is als “het voldoen aan de gestelde eisen”, levert testen dus 3 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
advies over de kwaliteit. Het biedt inzicht in de risico’s die genomen worden bij aanvaarding van mindere kwaliteit. Bij testen is het vinden van fouten een belangrijke doelstelling: testen wil het gebrek aan kwaliteit aantonen, dat openbaart zich in fouten (Myers, 1979). Testen levert tevens vertrouwen in het product en is in feite een meting van de mate van software kwaliteit (Hetzel, 1984). Testen heeft zich de laatste jaren sterk ontwikkeld. Een groot aantal organisaties maakt op enigerlei wijze gebruik van gestructureerd testen. Veelal is dit gebaseerd op TMap (Test Management approach) of een daarvan afgeleide aanpak. Binnen TMap wordt testen gedefinieerd als: Testen volgens TMap: een proces van plannen, voorbereiden en meten, dat tot doel heeft de kenmerken van een informatiesysteem vast te stellen en het verschil tussen de actuele en de vereiste status aan te tonen. (Pol et al, 1995) De gestructureerde testmethode TMap biedt een groot aantal kaders, technieken, checklisten, practices etc. De vraag die veel organisatie hebben als men begint met de implementatie van een gestructureerde testaanpak is: “Waar moet ik beginnen?”, “Wat is de eerste stap?”. Om een antwoord te verkrijgen op dit soort vragen is een testverbetermodel, zoals TMM, noodzakelijk. TMM helpt bij het vaststellen van de prioriteiten tijdens het implementatie- c.q. verbetertraject.
Testing Maturity Model Het TMM definieert een aantal maturity levels (volwassenheidsniveaus) die doorlopen moeten worden tijdens het verbeteren van een testproces om gestructureerd testen op een bepaald level geïmplementeerd en geconsolideerd te krijgen. Binnen het TMM model is een vijftal niveaus onderkend op basis waarvan kan worden bepaald hoe volwassen het testproces is en welke verbeteringen noodzakelijk zijn c.q. prioriteit dienen te krijgen. Op elk niveau van het model wordt een aantal process areas (aandachtgebieden) onderkend, en voor elke aandachtsgebied een aantal maturity goals (doelstellingen) gedefinieerd. Een organisatie voldoet aan de eisen van een bepaald TMM level als aan alle gedefinieerde doelstellingen van het betreffende level is voldaan. Het TMM onderkent de volgende niveaus en process areas (zie figuur 1): - Level 1: Initial op dit level zijn geen process area’s gedefinieerd - Level 2: Definition met als process areas test policy and goals, test planning, test techniques and methods en test environment - Level 3: Integration met als process areas test organisation, test training, test life cycle and integration en control and monitor
4 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
(5) Optimization Defect Prevention Test process Optimization Quality Control
(4) Management and Measurement Organisational Alignment Peer Review Test Measurement Software Quality Evalution
(
(3) Integration Test Organisation Test Training Program Test Life Cycle and Integration Control and Monitor
(2) Definition Test Policy and Goals Test Planning Test Techniques and Methods Test Environment
(1) Initial
Figuur 1: TMM levels en process areas -
-
Level 4: Management and Measurement met als process area’s organizational alignment, peer reviews, test measurement en software quality evaluation Level 5: Optimization met als process area’s defect prevention, quality control en test process optimization.
Achtergronden en onderbouwing Het TMM raamwerk is in de jaren ’90 ontwikkeld door het Illinois Institute of Technology (US) (Burnstein et al, 1996) als een model, complementair aan het CMM, gericht op test process improvement. Recentelijk is in een nederlands research project, met als deelnemers Improve Quality Services, Lucent, Philips, Quality House, Thales 5 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
en TU-Eindhoven, een nadere invulling gegeven aan het TMM. Met name ten aanzien van de diverse aandachtsgebieden (process areas) zijn gedetailleerde uitwerkingen opgesteld. Bij de ontwikkeling van het TMM zijn een aantal expliciete uitgangspunten gehanteerd, namelijk het model moet herkenbaar zijn voor de testers en software ontwikkelaars, gebaseerd zijn op algemeen geaccepteerde testprincipes (Myers, 1979), een gefaseerde invoering en verbetering van gestructureerde testen ondersteunen en ondersteuning bieden bij het beoordelen van het testproces. Om concreet invulling te geven aan deze uitgangspunten is bij de ontwikkeling van het TMM gebruik gemaakt van onder andere de volgende bronnen: - Capability Maturity Model (Paulk et al, 1993) - Capability Maturity Model Integrated (SEI, 2000) - Evolutionary Testing Model (Gelperin and Hetzel, 1988) - Industry practices ten aanzien van software testen (o.a. Durant, 1993) Capability Maturity Model Bij de ontwikkeling van het TMM is gebruik gemaakt van een aantal karakteristieken die tevens zijn toegepast bij het CMM. Net als het CMM maakt ook het TMM gebruik van het concept van maturity levels voor procesevaluatie en -verbetering. Ook TMM levels hebben een interne structuur waarbij process areas (aandachts gebieden), goals (doelstellingen) en key practices (activiteiten) worden onderkend. Beide modellen maken gebruik van het verervingsprincipe (aan alle onderdelen van het onderliggende level moet zijn voldaan, om te kunnen beginnen met het daarop volgende level). Ter ondersteuning van de beoordeling maakt het TMM gebruik van de gestructureerde vragenlijst. TMM is niet alleen qua structuur vergelijkbaar met het CMM, het is tevens een aanvulling op het CMM toegespitst op het testproces. Recentelijk is door het Software Engineering Institute (SEI) de opvolger van het CMM gepresenteerd: het Capability Maturity Model Integrated (CMM-I). Het CMMI omvat meerdere disciplines dan alleen software en zal op en duur het CMM gaan vervangen. Bij de ontwikkeling van het TMM is nadrukkelijk gekeken naar de ontwikkelingen ten aanzien van het CMM-I. Het CMM-I is met name gebruikt bij de naamgeving en definities van de structuurelementen alsmede de uitwerking van sommige process areas. Evolutionary Testing Model Bij de ontwikkeling het TMM is tevens gebruik gemaakt van het evolutionary testing model beschreven door David Gelperin en Bill Hetzel in hun artikel “The Growth of Software Testing”. De eerste fase in het evolutionary testing model is beschreven als “debuggingoriented”. Gedurende deze periode kent de softwareorganisatie geen verschil tussen testen en debuggen. Testen wordt gezien als debugging activiteit. Het doel van testen is er voor te zorgen dat de software draait zonder “down” te gaan. In de daaropvolgende “demonstration-oriented” fase wordt het testen los gekoppeld van 6 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
debuggen. Beide activiteiten hebben hun eigen doelstelling: debuggen moet er voor zorgen dat de software draait en testen heeft als doel te laten zien dat de software functioneert volgens de specificaties. Tijdens deze fase worden testplanning en testtechnieken geïntroduceerd in de organisatie. Testen start echter pas relatief laat in het project. In de hierop volgende “destruction-oriented” fase wordt testen gezien als een activiteit om fouten te ontdekken. De stelling “dat er altijd fouten zijn” geldt hierbij als uitgangspunt. De testdoelstelling “aantonen dat de software functioneert volgens de specificatie”, wordt nadrukkelijk uitgebreid met het zogenaamde negatief testen. Tijdens de “evaluation-oriented” fase wordt testen geïntegreerd in het softwareontwikkelproces. Testen is nu een activiteit die al vroegtijdig in een project begint. De scope van testen wordt verruimd door ook het vinden van fouten in documentatie (bijv. requirements) met behulp van reviews als testen te beschouwen. Alle activiteiten, die te maken hebben met het vinden van fouten, worden gezien als onderdeel van het testproces. De doelstelling van testen wordt geformuleerd als (kwantitatief) inzicht bieden in de kwaliteit van het product. Het model wordt gecomplimenteerd door de “prevention-oriented” fase. Tijdens deze fase is testen een volledig gedefinieerd en beheerst proces. De focus van het testen is niet meer het vinden van fouten, maar het voorkomen van fouten zowel in het product als het proces. De testactiviteiten zoals reviews, testplanning, testontwerp zijn dan ook hierop gericht. Tevens worden nieuwe testactiviteiten zoals “causal analysis” in de organisatie geïntroduceerd. Industry Practices Diverse best-practice onderzoeken en artikelen op het gebied van software testen hebben bijgedragen om de TMM levels te definiëren. Met name het onderzoeksrapport van Durant (Durant, 1993) geeft inzicht in goede en slechte werkwijzen op het gebied van software testen. Het biedt de mogelijkheid om uit de gegevens een praktische teststandaard af te leiden, die mede gebruikt kan worden om de testactiviteiten te evalueren en te verbeteren.
De TMM structuur Zoals eerder beschreven is de structuur van het TMM hoofdzakelijk gebaseerd op de structuur zijn van het CMM(-I). Dit biedt een groot voordeel aangezien het CMM het meest bekende software process improvement model is en veel personen c.q. organisaties dientengevolge reeds bekend zijn met de structuur van het CMM. Een belangrijk onderscheid dat binnen de CMM structuur wordt gemaakt, namelijk tussen de verplichte onderdelen (de Goals) en onderdelen die slechts aanbevolen zijn (de Key Practices) is overgenomen door het TMM. De TMM structuur (zie figuur 2) bestaat uit de volgende elementen: Maturity Level (volwassenheidsniveau): het maturity level is een algemene afspiegeling van de volwassenheid van het testproces en de status van het testverbeteringsproces. Het maturity level van een organisatie wordt bepaald door de mate waarin aan de goals van de relevante process areas is voldaan. 7 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Process Area (aandachtsgebied): een process area is een cluster van gerelateerde aspecten binnen het testproces. Wanneer deze aspecten in onderlinge samenhang op een adequate wijze worden uitgevoerd zal dit een bijdrage leveren aan het bereiken van een aantal verbeterdoelstellingen en derhalve aan de volwassenheid van het testproces. Goals (doelstelling): goals zijn een verplicht onderdeel binnen de TMM structuur en zijn gekoppeld aan een bepaalde process area. Als aan alle goals van een bepaalde process area wordt voldaan, is sprake van volwassenheid ten aanzien van de bewuste process area. Key practices (activiteiten): de key practices binnen een process area beschrijven de essentiele activiteiten binnen die bepaalde process area. De key practices “moeten” worden uitgevoerd om de goals te bereiken. Key practices zijn niet verplicht; andere implementaties om de goals te bereiken zijn toegestaan. Er zijn binnen TMM, analoog aan CMM-I, verschillende typen key practices. De introductie van key practices types maakt de ontwikkeling en toepassing van het model gemakkelijker en consistenter. Voorbeelden van typen key practices zijn: policy, training, process, en activity. Common features (gemeenschappelijke kenmerken): de common features worden gebruikt om de key practices te groeperen. Op deze wijze wordt het duidelijk waarom een key practice aanwezig is en op welke wijze hij kan worden geïmplementeerd. De key practices zijn onderverdeeld in vijf common features: - Commitment to perform: groepeert alle “key practices” die betrekking hebben op beleid en management commitment voor proces verbetering. - Ability to perform: groepeert alle “key practices” die betrekking hebben op randvoorwaarden die nodig zijn om binnen een testproject daadwerkelijk tot verbetering te komen. Hieronder vallen bijvoorbeeld training en het opstellen van procedures en templates. - Activities performed: groepeert alle “key practices” die betrekking hebben op het uitvoeren van operationele testactiviteiten binnen een testproject of -organisatie. Dit betreft de daadwerkelijke verandering in het operationele testen. - Directing Implementation: groepeert alle “key practices” die betrekking hebben op het verzamelen, meten en analyseren van proces gerelateerde data. Het doel van deze activiteit is inzicht te bieden in de voortgang van het verbeterproces. - Verifying Implementation: groepeert alle “key practices” die betrekking hebben op het vaststellen of de activiteiten daadwerkelijk plaatsvinden en de mate waarin. Onderdeel van deze common feature is onder andere een periodieke management review. Subpractices (subactiviteiten): subpractices zijn beschrijvingen die een nadere invulling geven op de wijze waarop een bepaalde key practice kan worden geïmplementeerd. Subpractices dienen om gebruikers van het TMM verdere ondersteuning te bieden en om de key practice te verduidelijken Examples en elaborations (voorbeelden en uitwerkingen): beide zijn informatieve structuurelementen die aanwezig zijn in elke process area om de (sub) practices van 8 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
concrete voorbeelden te voorzien. Examples en elaborations worden niet meegenomen als een testorganisatie wordt beoordeeld ten opzichte van het TMM. Recommended literature (aanbevolen literatuur): om de TMM gebruiker die ten aanzien van een bepaalde process area verbeteringen wil doorvoeren verder te ondersteunen, wordt per process area een lijst van aanbevolen literatuur (onder andere teststandaards) gegeven. Veelal wordt binnen bepaalde literatuur verwezen naar een specifiek hoofdstuk.
Maturity Levels bestaan uit
geven aan
Process Capability
Process Areas gericht op verdeeld in
Goals
Common Features beschrijven bestaan uit
Implementatie en consolidatie
Key Practices
beschrijven n
activiteiten
ondersteund door
Subpractices Elaborations Examples
Figuur 2: De TMM structuur Voorbeeld uitwerking TMM structuur “Testplanning” Maturity level Process area Goal Common feature Key practices Common feature Key practice Sub practices
Level 2: Definition Testplanning De teststrategie en –aanpak worden gedefinieerd en geaccordeerd Ability to perform Technieken zijn geïdentificeerd en gedocumenteerd voor risicoanalyse en testsstrategie bepaling Activities performed Risico-analyse en teststrategie bepaling worden uitgevoerd op basis van gedocumenteerde technieken 1. De risico-analyse wordt uitgevoerd op basis van input van betrokken partijen 9
Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Recommended literature
2. De teststrategie wordt gereviewed met betrokken partijen Testen volgens TMap, Hoofdstuk 11 Teststrategiebepaling
De vijf volwassenheidniveaus Zoals eerder aangeven definieert het TMM een vijftal levels van testvolwassenheid. Hieronder worden de vijf levels kort getypeerd, inclusief de bijbehorende aandachtsgebieden. De 5 niveaus laten de evolutie zien van een chaotisch, ongedefinieerd testproces naar een controleerbaar en geoptimaliseerd testproces en weerspiegelen grotendeels de vijf fasen in de evolutie van het testmodel beschreven door Gelperin en Hetzel (Gelperin and Hetzel, 1988). TMM niveau 1 is gerelateerd aan de fase “debugging-oriented”, niveau 2 aan de fasen “demonstration-” en “destruction-oriented”, niveau 3 aan de fase “evaluation-oriented” en de niveaus 4 en 5 aan de fasen “evaluation-” en “preventionoriented”. Tevens zijn de vijf niveaus van testvolwassenheid vergelijkbaar met de opzet en de niveaus van het CMM. Level 1: Initial Testen is een chaotisch, nauwelijks gedefinieerd proces en wordt beschouwd als onderdeel van het debugging proces. Het doel van testen is het aantonen dat de software “werkt” c.q. draait zonder “down” te gaan. Softwareproducten worden gereleased zonder een expliciete uitspraak te doen over de kwaliteit. Er is een gebrek aan middelen, tools en goed opgeleide testers. Op dit niveau worden geen specifieke process areas onderkend. Level 2: Definition Testen is een gedefineerd proces en wordt nadrukkelijk losgekoppeld van debuggen. Het testproces start echter relatief laat in het ontwikkelproces, bijvoorbeeld tijdens de fase technisch ontwerp of zelfs pas tijdens de implementatie. In het kader van het structureren van het testproces wordt een testplan opgesteld met daarin een teststrategie. Ook wordt een begin gemaakt met het toepassen van technieken voor bepalen van testgevallen. Het doel van testen is aantonen dat de software is gemaakt volgens de specificaties. Process areas (aandachtsgebieden) op niveau 2 zijn: Test policy and goals Test planning Test techniques and methods Test environment. Level 3: Integration
10 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Testen wordt een integraal onderdeel van het software-ontwikkelproces. Het wordt onderkend op alle niveaus van het V-model (Daich et al, 1994). Testplanning gebeurt vroegtijdig in het project met behulp van een mastertestplan (Pol et al, 1995). De teststrategie wordt bepaald aan de hand van gedocumenteerde requirements. Er is een testorganisatie, een opleidings-programma voor testers en testen wordt gezien als een vakgebied. Ook reviews worden uitgevoerd, dit gebeurt echter nog niet volgens een gestructureerde procedure. Naast het aantonen dat software is gemaakt volgens specificaties ligt een belangrijk accent op het zogenaamde negatief testen. Process areas op niveau 3 zijn: Test organisation Test training program Test life cycle and integration Control and monitor. Level 4: Management and Measurement Testen is een goed gedefinieerd, onderbouwd en meetbaar proces. Reviews en inspecties vinden plaats gedurende het gehele ontwikkelproces en worden gezien als testactiviteiten. Software producten worden getest aan de hand van opgestelde kwaliteitseisen ten aanzien van kwaliteitsattributen zoals betrouwbaarheid, bruikbaarheid en onderhoudbaarheid. Testgevallen worden verzameld, opgeslagen en beheerd in een centrale database voor herbruikbaarheid en regressietesten. Het toepassen van een meetprogramma levert informatie over het testproces en over productkwaliteit. Testen wordt beschouwd als evalueren, waarbij alle activiteiten gedurende het gehele ontwikkelproces die zijn gericht op het vinden van fouten tot het testproces worden gerekend. Process areas op niveau 4 zijn: Organisational alignment Peer reviews Test measurement Software quality evaluation. Level 5: Optimization Op basis van alle resultaten die zijn bereikt door het voldoen aan de doelstellingen van niveau 2 tot en met 4, kan worden gesteld dat het testproces nu volledig is gedefinieerd en men is in staat om de kosten en effectiviteit te beheersen. Op niveau 5 worden de werkwijzen geoptimaliseerd en is er een continue aandacht voor het verbeteren van het testproces. Onder andere “Defect prevention” en Quality Control” worden als aandachtgebieden geïntroduceerd. Het testproces wordt gekenmerkt door statistisch verantwoorde steekproeven en kwaliteitsmetingen. Er is een procedure voor het selecteren en evalueren van testtools. Tools ondersteunen het testproces volledig bij het uitvoeren van tests, hertesten, bepalen en onderhouden van testgevallen etc. Testen wordt een activiteit gericht op het voorkomen van fouten. Aandachtsgebieden op niveau 5 zijn: 11 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
-
Defect prevention Quality Control Test process optimisation.
TMM niveau 2: Definition In het navolgende wordt in detail ingegaan op de process areas van niveau 2 inclusief de verbeterdoelstellingen. Test policy and goals Het doel van “Test policy and goals” is het ontwikkelen en implementeren van een testbeleid c.q. -filosofie, en een algemene testaanpak bestaande uit een definitie van de testsoorten met bijbehorende doelstellingen, taken, en verantwoordelijkheden. Indien men een testproces wenst te verbeteren zal er eerst een testbeleid gedefinieerd moeten worden. Doelstellingen van de organisatie met betrekking tot testen en de mate van onafhankelijkheid moeten worden vastgelegd. Uiteraard is het van belang dat het testbeleid aansluit op het kwaliteitsbeleid van de organisatie. Het vaststellen van een testbeleid is noodzakelijk om te komen tot een gemeenschappelijke visie ten aanzien van testen binnen de organisatie. Als onderdeel van het testbeleid dienen tevens doelstellingen ten aanzien van het testproces verbeter programma te worden gedefinieerd. De doelstellingen dienen vervolgens te worden vertaald in een aantal testproces performance indicatoren. De aanwezigheid van doelstellingen en performance indicatoren geeft een duidelijke richting aan alsmede inzicht in de gewenste en bereikte resultaten. Naast het testbeleid dient een algemene test aanpak te worden beschreven. Deze algemene testaanpak is bij voorkeur gebaseerd op reeds bestaande modellen zoals het V-Model of het incrementeel ontwikkelmodel (IEEE 610, 1990). Als onderdeel van de algemene testaanpak dienen de diverse testsoorten te worden geïdentificeerd en gedefinieerd, bijv. unit, integratie, systeem en acceptatietest. Per testsoort moeten de doelstellingen, taken, verantwoordelijkheden, en bij voorkeur entry en exit-criteria worden vastgesteld. Het testbeleid alsmede de algemene testaanpak dienen als leidraad voor de operationele testprojecten. Een belangrijk voordeel van een gedegen gedefinieerde (én geïmplementeerde) testaanpak is het voorkomen van overlap tussen de testsoorten met als gevolg een efficiënter testproces. De verbeterdoelstellingen binnen “Test policy and goals” zijn: - Een testbeleid, afgestemd op het bedrijfsbeleid, is gedefinieerd. - Een algemene testaanpak is gedefinieerd en geïmplementeerd, bestaande uit een identificatie van de testsoorten, de doelstellingen, taken en verantwoordelijkheden. 12 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
-
Een basisset testproces performance-indicatoren is gedefinieerd en geïmplementeerd.
Test planning Het doel van “Test planning” is het definiëren van een aanpak voor het bepalen en afstemmen van een teststrategie en het opstellen van testplannen . Het testplan legt de basis voor een beheersbaar en kwalitatief testproces. Nadat de testopdracht is goedgekeurd, wordt een intake uitgevoerd waarbij onder andere wordt gekeken naar de projectorganisatie, de functionaliteit, de kwaliteitseisen en de opzet van het ontwikkelproces. De teststrategie wordt bepaald op basis van een risicoanalyse. Afhankelijk van de risico’s wordt bepaald wat wel en wat niet wordt getest en met welke diepgang dit zal plaatsvinden. Deze afwegingen moeten worden gemaakt omdat het zowel economisch als technisch onmogelijk is om het product voor 100% te testen. Het doel is dan het bepalen van de best haalbare dekking op de meest risicovolle onderdelen van het systeem. De bepaling van de teststrategie vindt plaats in overleg met alle betrokken partijen. Als onderdeel van het testplan worden tevens de testorganisatie, de testproducten, de testinfrastructuur en het testbeheer gedefinieerd en beschreven. Tenslotte wordt op basis van de gedefinieerde activiteiten en aanpak een gedegen testbegroting opgesteld. De verbeterdoelstellingen binnen “Test planning” zijn: - De teststrategie en -aanpak worden gedefinieerd en expliciet goedgekeurd. - De testactiviteiten en afspraken worden vastgesteld en gedocumenteerd. - Een testbegroting wordt opgesteld en gebruikt voor de planning en voortgangsbewaking van het testproject. Test techniques and methods Het doel van “Test techniques and methods” is het definiëren van gestructureerde technieken en procedures voor de testfasen specificatie en uitvoering. Voor het bepalen van een goede set van testgevallen die een bepaalde mate van dekkingsgraad garanderen is het gebruik van gestructureerde testtechnieken onontbeerlijk. Testspecificatietechnieken worden gebruikt om volgens vaste regels testgevallen af te leiden uit brondocumenten. De testspecificaties worden vervolgens “vertaald” in testscripts aan de hand waarvan de testuitvoering kan plaatsvinden. In het kader van efficiency wordt bepaald of en in hoeverre, het mogelijk is om tijdens deze testactiviteiten gebruik te maken van ondersteunende tools. De bevindingen die worden gedaan tijdens de testuitvoering worden vastgelegd in een bevindingenregistratie. De bevindingenregistratie vormt de basis voor de op te stellen testrapportages. De afhandeling van de bevindingen vindt plaats op basis van een gedegen procedure, waarin ondere andere is voorzien in communicatie met de betrokken partijen.
13 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
De verbeterdoelstellingen binnen “Test techniques and methods” zijn: - Een set van testspecificatietechnieken wordt geselecteerd en toegepast bij het bepalen van testgevallen. - Testuitvoering vindt plaats aan de hand van de testscripts - Ondersteunende testtools worden geëvalueerd, en indien zinvol geselecteerd en toegepast gedurende de fasen testspecificatie en -uitvoering. - Bevindingebeheer vindt plaats op basis van een gedocumenteerde procedure. Test Environment Het doel van “Test Environment” is het opstellen van een vroegtijdige specificatie van de benodigde testomgeving, het structurenen van het testomgevingsbeheer en zorgdragen voor een adequate beschikbaarheid. De testomgeving dient zoveel mogelijk representatief te zijn voor de beoogde test, bijvoorbeeld gelijk aan de uiteindelijke productie-omgeving. Om het testobject steeds onder dezelfde omstandigheden te laten functioneren moet de testomgeving stabiel zijn. De testomgeving dient, in combinatie met het testobject, beheersbaar te zijn. Wijzigingen in alle componenten van de omgeving (hardware en software, testobject, procedures, etc) mogen alleen na toestemming van het testmanagement worden doorgevoerd. Alleen in een stabiele en beheerste omgeving is het mogelijk om het reproduceren van testgevallen te waarborgen. De eisen waaraan de testomgeving moet voldoen moeten zo vroeg mogelijk in het project worden gespecificeerd en vastgelegd in het testplan. De specificatie van de testomgeving moeten worden gereviewed op aspecten zoals technische correctheid, bruikbaarheid, haalbaarheid en representativiteit. Ook de testomgeving van de ontwikkeltests dient tijdig aandacht te krijgen; alleen door middel van een vroegtijdige specificatie en planning is er voldoende tijd beschikbaar voor het ontwikkelen van stubs en drivers. Bij het aspect beschikbaarheid van de testomgeving komt de vraag: “Is het noodzakelijk voor elke testsoort een aparte testomgeving te hebben?”. Dit is uiteraard een kostbare aangelegenheid die veelal niet leidt tot een zo efficiënt mogelijk gebruik van de testomgeving. Een andere mogelijkheid is om de testomgeving gelijktijdig te laten groeien met de testsoorten. Bijvoorbeeld kan men besluiten om een bepaalde requirement pas te testen op een hoger testniveau om te voorkomen dat stubs moeten worden ontwikkeld om bepaalde subsystemen te simuleren die op het hoger testniveau wel beschikbaar zijn. Uiteraard dient er met betrekking tot de testomgeving een back-up/restore mogelijk te zijn en moet de testomgeving worden beheerd op basis van configuratie management procedures. De verbeterdoelstellingen binnen “Test Environment” zijn: - Testomgevingen worden vroegtijdig gespecificeerd beschikbaarheid te garanderen.
om
een
tijdige
14 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
-
Voor hogere testsoorten is de testomgeving zoveel mogelijk representatief ten aanzien van de uiteindelijke productie-omgeving De testomgeving wordt beheerd en beheerst op basis van de gedocumenteerde procedures.
Samenvatting en status In de huidige samenleving spelen software systemen een steeds grotere rol, het is dan ook noodzakelijk dat kwaliteit gekoppeld wordt aan zowel het ontwikkelingprocess als aan het product. In het hierboven beschreven TMM ligt de focus op het testproces, het beschrijft het TMM als een aanvulling op het CMM. Het huidige TMM is ontwikkeld om softwareorganisaties te helpen bij het evalueren en verbeteren van het test proces. Binnen het TMM groeit testen van een chaotisch nauwelijks gedefinieerd proces, met een gebrek aan middelen, tools en goed opgeleide testers, naar een volledig gedefinieerd en beheerst proces waarin het voorkomen van fouten als belangrijkste doelstelling geldt. Het TMM volgt de structuur van het CMM, en is in zijn huidige vorm voldoende gedetailleerd uitgewerkt om als referentiemodel te kunnen functioneren bij testproces verbeteractiviteiten. De ervaringen uit de praktijk zijn positief en laten zien dat het gebruik van TMM kan leiden tot een effectiever en efficienter testproces. Testen wordt een vakgebied en een volledig geïntegreerd onderdeel van het softwareontwikkelproces. De aandacht verschuift van het vinden van fouten (detectie) naar het voorkomen van fouten (preventie).
15 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Checklist Test Maturity Model Level 2 Zoals eerder aangegeven is het doel van deze checklist het bepalen van de sterke en zwakke punten van het huidige testproces ten opzichte van de niveau 2 van het TMM. Met behulp van deze checklist kunnen de onderdelen testbeleid en aanpak, testplanning, testtechnieken en testomgeving worden beoordeeld. Op basis van de resultaten van het onderzoek kunnen concrete verbeterpunten met betrekking tot het testproces worden vastgesteld en plan van aanpak worden opgesteld voor het bereiken van TMM level 2. De volgende process areas zijn te onderscheiden op TMM niveau 2: - Testing policy and goals - Test planning - Test techniques and methods - Test environment.
Testing policy and goals Commitment to perform - Is er een kwaliteitsbeleid op organisatie niveau? Ability to perform - Is er een groep geïdentificeerd die de verantwoordelijkheden, bevoegdheden en kennis heeft om een testbeleid en een algemene test aanpak op te stellen? Activities to perform - Is er een testbeleid gedefinieerd en beschreven? - Is er een algemene test aanpak gedefinieerd en beschreven? - Is er een set van performance indicatoren gedefinieerd en beschreven? Directing implementation - Wordt de performance indicatoren daadwerkelijk toegepast? - Zijn de betrokken partijen op de hoogte van het opgestelde testbeleid en de algemene test aanpak? Verifying implementation: - Worden de activiteiten en producten van “test policy and goals” gereviewed en/of geaudit door de quality assurance groep? - Worden de activiteiten ten aanzien van “test policy and goals” periodiek gereviewed met het verantwoordelijke management?
16 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Test planning Commitment to perform - Is er in het testbeleid aandacht voor testplanning? Ability to perform - Is er een vastgelegde en geaccordeerde opdrachtformulering voor het test project? - Zijn er voldoende middelen beschikbaar voor het uitvoeren van de test planning activiteiten, bijv. tijd voor de testmanager en planningstools? - Is er een testmanager aangewezen die verantwoordelijk is voor het opstellen van het testplan en het maken van afspraken? - Zijn de testmanagers en andere betrokkenen opgeleid in testplanning en de bijbehorende procedures en technieken? - Is er een procedure (inclusief template) voor testplanning gedefinieerd en beschreven? - Zijn er testtechnieken geïdentificeerd en vastgelegd voor risico-analyse en teststrategiebepaling? - Is er een procedure voor testbegroten gedefinieerd en vastgelegd? Activities performed - Worden testplannen gemaakt volgens de testplanningsprocedure? - Worden de gedefinieerde technieken gebruikt voor risico-analyse en het opstellen van de teststrategie? - Is er een testfasering met geïdentificeerd en gedefinieerd in het testplan, minimaal bestaande uit planning, voorbereiding en uitvoering? - Worden afspraken gemaakt door het testproject met groepen buiten de organisatie geriewed met management? - Worden de testbegroting en -planning opgesteld volgens de procedure? - Worden de risico’s gerelateerd aan het testproject geïdentificeerd, beoordeeld en beschreven? Directing implementation - Wordt de testplannen beheerd en onderhouden met behulp van configuratiebeheer? - Worden metrieken bijgehouden om de status van de testplanningsactiviteiten vast te stellen? Verifying implementation - Worden de activiteiten en producten van “test planning” gereviewed en/of geaudit door de quality assurance groep? - Worden de activiteiten ten aanzien van “test planning” periodiek gereviewed met het verantwoordelijke management?
17 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Test Techniques and Methods Commitment to perform - Is er in het testbeleid aandacht voor testtechnieken? Ability to perform: - Zijn er voldoende middelen beschikbaar voor het specificeren, beheren en beschikbaar stellen van een adequate testomgeving? - Is er voldoende tijd beschikbaar gesteld aan de testers voor het uitvoeren van een gestructureerde testspecificatie- en testuitvoeringsfase? - Er zijn voldoende middelen beschikbaar voor het evalueren, implementeren en onderhouden van tools ter ondersteuning van testspecificatie, testuitvoering en bevindingenbeheer? - Is een groep (of persoon) verantwoordelijk voor het evalueren, implementeren en onderhouden van ondersteunende tools? - Worden testers opgeleid in het opstellen van testspecificaties met behulp van gestructureerde testtechnieken en in het uitvoeren van tests? - Worden testers die ondersteunende tools gebruiken hierin opgeleid? - Zijn gestructureerde testspecificatietechnieken (inclusief template) beschikbaar voor de verschillende testsoorten? - Is er een procedure voor de fase testuitvoering gedefinieerd en beschreven? - Is er een bevindingenprocedure gedefinieerd en beschreven? - Zijn tools voor testspecificatie, testuitvoering en bevindingenbeheer geëvalueerd, aanbevolen en eventueel geïmplementeerd? Activities performed - Worden testspecificaties opgesteld op basis van de beschreven testspecificatietechnieken? - Wordt de fase testuitvoering volgens de procedure uitgevoerd? - Worden de ondersteunende tools, indien mogelijk, toegepast testspecificatie en testuitvoering? - Wordt bevindingenbeheer uitgevoerd volgens de procedure? Directing implementation: - Wordt de testspecificaties en testscripts beheerd en onderhouden met behulp van configuratiebeheer? - Worden metrieken bijgehouden om de status van de testspecificatie- en testuitvoeringsactiviteiten vast te stellen? Verifying implementation: - Worden de activiteiten en producten van “test techniques and methods” gereviewed en/of geaudit door de quality assurance groep? - Worden de activiteiten ten aanzien van “test techniques and methods” periodiek gereviewed met het verantwoordelijke management? 18 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001
Test Environment Commitment to perform - Is er in het testbeleid aandacht voor testomgeving? Ability to perform - Wordt er voldoende personeel, middelen en faciliteiten geleverd voor het specificeren, beheren en de beschikbaarheid van een juiste test omgeving? - Is een groep (of persoon) verantwoordelijk voor het beheer van de testomgeving? - Worden de groep (of de persoon) verantwoordelijk voor het beheer van de testomgeving opgeleid in de technische aspecten van de testomgeving en de bijbehorende procedure? - Beschrijft de testplanningsprocedure de specificatie van de testomgeving en het beheer van de testomgeving? - Zijn er procedures voor beheer van de testomgeving gespecificeerd en vastgelegd, bijv. backup/restore, wijzigingsbeheer en configuratiebeheer? - Is er een procedure voor de regelen van de beschikbaarheid van de testomgeving gespecificeerd en vastgelegd? Activities performed - Wordt de testomgeving vroegtijdig in het testproject gespecificeerd volgens de procedure? - Vindt het beheer van de testomgeving plaats volgens de procedures? - Wordt de beschikbaarheid en het gebruik van de testomgeving door de testers en ontwikkelaars gecoördineerd volgens de procedure? - Worden de bevindingen ten aanzien van de testomgeving afgehandeld volgens de bevindingenprocedure? Directing implementation - Worden metrieken bijgehouden om de status van de testomgevingsactiviteiten vast te stellen? Verifying implementation - Worden de activiteiten en producten van “test environment” gereviewed en/of geaudit door de quality assurance groep? - Worden de activiteiten ten aanzien van “test environment” periodiek gereviewed met het verantwoordelijke management?
Literatuur Burnstein, I., T. Suwanassart, and C,R. Carlson (1996), The Developing a Testing Maturity Model: Part I, in: Crosstalk, Software Technology Support Center, Utah, August 1996
19 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]
Gepubliceerd in: Checklist Informatiemanagement, Aflevering 39, 2001 Burnstein, I., T. Suwanassart, and C,R. Carlson (1996), The Developing a Testing Maturity Model: Part II, in: Crosstalk, Software Technology Support Center, Utah, September 1996 Daich ,G., G.Price, B.Ragland, and M.Dawood (1994), Software Test Technologies Report, Software Technology Support Center, Utah, August 1994 Durant, J. (1993), Software Testing Practices Survey Report, Software Practices Research Center, Technical Report, TR-93, May 1993 Gelperin, D. en B. Heztel (1988), The growth of software testing, in: Communications of the ACM, June 1988, Volume 31 No. 6, pp. 687-695 Hetzel, W.C. (1984), The complete guide to software testing, QED Information Sciences, Wellesley IEEE (Institute of Electrical and Electronic Engineers) (1990), IEEE 610 Standard Glossary for Software Engineering Terminology, IEEE Standards Board, New York ISO/IEC Guide 2 (1991), General terms and definitions concerning standardization and related activities, International Organization of Standardization Paulk, M.C., C.V. Weber, B. Curtis and M.B. Chrissis (1993), The Capability Maturity Model; Guideline for Improving the Software Process, Addison-Wesley Publishing Company Pol. M., R.A.P. Teunissen en E.P.W.M. van Veenendaal (1995), Testen volgens TMap, Tutein Nolthenius, ’s Hertogenbosch, Rooijmans J., H. Aerts en M. van Genugten (1996), Software Quality in Consumer Electronic Products, in: IEEE Software, January 1996 Software Engineering Institute (2000), CMMI for Systems Engineering/Software Engineering, Version 1.02, Staged Representation, TR-CMU/SEI-2000-TR-028, Pittsburgh, November 2000 Myers, G.J. (1979), The Art of Software Testing, Wiley-Interscience, New York
20 Improve Quality Services BV, Waalreseweg 17, 5554 HA Valkenswaard Tel: 040-2089283, Fax: 040-2021450, E-mail:
[email protected]