TMap® in een notendop
Wat is testen? “Activiteiten die uitgevoerd worden om één of meerdere kenmerken van een product, proces of dienst vast te stellen volgens een gespecificeerde procedure.” [ISO/IEC Guide 2, 1991] Testen levert informatie op over de kwaliteit van een (onderdeel van) informatiesysteem Geeft inzicht in de risico’s die genomen worden bij aanvaarding van een mindere kwaliteit Idealiter onderdeel van een kwaliteitssysteem, familie van reviewing, simulatie, auditing etc. Onderscheid tussen testen en toetsen
TMap® gehanteerde definitie van testen “Testen is een proces van plannen, voorbereiden, uitvoeren en beoordelen, 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.”
Waarom testen? Inzicht in de kwaliteit van het geteste systeem vóór de in- productiename Voorkomt “gokken” Fouten worden in een vroeg stadium gevonden en mogelijk voorkomen Doorlooptijd van het ontwikkelproces wordt korter Een betrouwbaar testproces is een vereiste om onderbouwde antwoorden over de kwaliteit te kunnen geven
Doelstelling van testen Het mogelijk maken om de risico’s die kleven aan het invoeren van een nieuw informatiesysteem te beheersen Het mogelijk maken om, op basis van een patroon van gevonden fouten, het ontwikkelproces te verbeteren en zo toekomstige fouten voorkomen Kwaliteit moet in een informatiesysteem worden gebouwd, niet erin worden getest Het herstellen van fouten eerder in het ontwikkelproces is goedkoper dan het herstellen van fouten later in het ontwikkelproces. Testen dient daarom vroeg in het ontwikkelproces van start te gaan!
Barry W. Boehm Herstelkosten nemen exponentieel toe naarmate een fout later wordt gevonden en hersteld (“de tijd tussen ontstaan en detectie groter wordt”) De kosten van testen liggen tussen de 20% en 50% van de fase Bouw
In het kader van testen.. Bij het ontwikkelen en onderhouden van informatiesystemen hoort de aandacht voor de kwaliteit centraal te staan Testen is idealiter onderdeel van een kwaliteitssysteem Informatica (“ICT”) is een jong vakgebied met gemiddeld nog niet zo’n beste naam als het gaat om het afleveren van kwaliteit
Wat is testen niet? Niet slechts het uitvoeren van de tests, maar vooral ook het plannen en voorbereiden ervan Testen is niet vrijgeven of accepteren; testen levert advies over de kwaliteit Testen is geen foutherstel, dit doen de ontwikkelaars Testen is niet de fase ná de ontwikkeling, maar juist een parallelle set van activiteiten Testen is ook niet implementeren of opleiden van gebruikers Niet het vaststellen van de volledigheid en juistheid van de functionaliteit Testen is niet goedkoop…
Kwaliteit Kwaliteit is “het geheel van eigenschappen en kenmerken van een product of dienst dat van belang is voor het voldoen aan vastgestelde of vanzelfsprekende behoeften” [ISO 8402, 1994] Testen is niet dé oplossing voor een gebrek aan kwaliteit Kwaliteit is vaak een wat “ongrijpbaar begrip” Het stellen van eisen aan de kwaliteit van een informatiesysteem
Kwaliteitsborging “Het geheel van alle geplande en systematische acties nodig om in voldoende mate het vertrouwen te geven dat een product of dienst voldoet aan de gestelde kwaliteitseisen” [ISO 8402, 1994] Levert het volgende resultaat: Duidelijkheid over de eisen die aan (deel-) producten worden gesteld Mogelijk om (door derden) de producten aan bepaalde normen te toetsen Traceerbaarheid van de oorspronk van “fouten” Onderscheid tussen preventie, detectie en correctie
ISO 9126 6 kwaliteitsattributen Functionality (functionaliteit) Reliability (betrouwbaarheid) Usability (bruikbaarheid) Efficiency (efficiëntie) Maintainability (onderhoudbaarheid) Portability (portabiliteit) Elk van de kwaliteitsattributen is verder onderverdeeld in één of meerdere subattributen Onderscheid tussen dynamische en statische kwaliteitsattributen
Dynamisch testen Dynamisch expliciet testen Het “draaien” van programma’s Vergelijken van actueel en verwachte resultaten Meest gangbare manier van testen Dynamisch impliciet testen Bijhouden en analyseren van “loggegevens” Betrouwbaarheid gedurende een bepaalde periode Zowel gepland als ongepland Ook aan de hand van “verzamelde klachten” van bijvoorbeeld een helpdesk
Statisch testen Activiteiten op het raakvlak van toetsen en testen zoals reviewen, onderzoeken, controleren en analyseren Nodig voor o.a.: Technische infrastructuur Organisatie Administratieve procedures Implementitie- en conversieplannen Kwaliteitsplannen
V-model wens functioneel ontwerp technisch ontwerp systeem realisatie programma en integratietest acceptatietest gebruik en beheer systeemtest verwachting
Testsoorten “Groep van testactiviteiten die gezamenlijk worden georganiseerd en aangestuurd” Onderscheid in white-box testsoorten en black-box testsoorten Voorbeelden: Programmatesten en integratietesten zijn white-box testsoorten Systeemtesten en acceptatietesten zijn black-box testsoorten
Testvormen “Groep van activiteiten die als oogmerk hebben het informatiesysteem op een aantal samenhangende kwaliteitsattributen te controleren” Voorbeelden: Interfacetest controleert de functionele aansluiting met andere systemen Stresstest bepaalt de continuïteitsaspecten bij de verwerking van grote hoeveelheden en aantallen Regressietest heeft tot doel om onbedoelde wijzigingen aan te tonen
Ongestructureerd testen Tijdsdruk door het ontbreken van een goede planning, te late start en te weinig gekwalificeerd personeel De onverklaarbare “wachthouding” Wegwerpmethoden en heruitvinding van het wiel Bekende technieken worden niet of nauwelijks gebruikt Specificaties hebben de nijging dynamisch te zijn Geen configuratie- en wijzigingsbeheer Onrijpe producten door ontbrekende testsoorten vroeg in het ontwikkeltraject Ontbrekende testcoördinatie
Gestructureerd testen Tijdige en flexibele planning, aangevuld met voortgangsbewaking Tijdige start, voldoende personeel en sluitende afspraken Projectmatige aanpak Fasering van testactiviteiten Voorschriftgeving en controle op naleving Gestructureerd en passend gebruik van testtools Inrichting beheer Teambuilding en reductie van tegengestelde belangen Testcoördinatie
De Vier Pijlers van TMap® Centraal belegd is de fasering van de testactiviteiten (F) Organisatorische inbedding (O) Een goede infrastructuur (I), bijvoorbeeld de testomgeving Bruikbare technieken (T) voor de uitvoering van de activiteiten T IO F
Testplanning Verdeling van de totale testtijd: 20% planning 40% voorbereiding 40% uitvoering Alle uit te voeren testactiviteiten worden vooraf in een testplan vervat Per testsoort één testplan Overkoepelend een mastertestplan Het mastertestplan wordt éérst opgesteld, aan de hand waarvan de testplannen voor de onderliggende testsoorten worden gemaakt
Hiërarchie van testplannen Mastertestplan Acceptatietestplan Systeemtestplan White-box testplanToetsplan Mastertestplan
TMap® pijler testfasering (1) Testproces bestaat uit verschillende activiteiten Activiteiten kennen onderlinge afhankelijkheid en volgorde Resultaat van iedere activiteit is een product In de fasering wordt het gehele testproces opgedeeld in fasen en de fasen in activiteiten Het faseringsmodel zorgt ervoor dat het overzicht blijft behouden Relaties met overige aspecten zijn onderdeel van het testfaseringsmodel T I O F
TMap® pijler testfasering (2) VSUA P&B Voorbereiding Specificatie Uitvoering Afronding Planning en Beheer T I O F
VSUA P&B VSUA Testfasering per testsoort VSUA P&B Programmatest Acceptatietest Systeemtest
Fase Planning en beheer Start tijdens de specificatiefase van de ontwikkeling Anticipatie op toekomstige projectonwikkelingen Bevat de activiteiten: Opdrachtformulering Globale intake en studie Vaststellen testbasis Bepalen teststrategie Inrichten testorganisatie Inrichten testproducten Definiëren benodigde testinfrastructuur Inrichten testbeheer Bepalen planning Opstellen en fixeren van het testplan Uitvoeren testbeheer Rapporteren Bepalen detailtestplanning VSUA P&B
Fase Voorbereiding Start na de fixatie van het testplan Opleiding van testpersoneel is de eerste activiteit in de fase voorbereiding Overige activiteiten: Uitvoeren detail intake testbasis Definiëren van de testeenheden Toewijzen van testtechnieken Specificeren van de testinfrastructuur VSUA P&B
Fase Specificatie Specificatie van de logische en fysieke testgevallen Definiëren uitgangsbestanden en overige testdata Overige activiteiten: Opstellen testscripts Opstellen testdraaiboek Specificeren intake testobject Specificeren intake infrastructuur Realiseren infrastructuur VSUA P&B
Fase Uitvoering Start zodra de eerste testbare componenten beschikbaar zijn Sterk afhankelijk van de voorbereidings- en specificatiefase Begint met een intake van infrastructuur en testobject Overige gedefinieerde activiteiten: Vulling van de uitgangsbestanden (testdatacreatie) Uitvoeren van (her)tests Controleren en beoordelen testresultaten Onderhouden testscripts en testdraaiboek VSUA P&B
Fase Afronding Selectie van te bewaren, conserveren en te beheren testware Evaluatie van het testproces, onder meer op basis van de verzamelde metrics Overige activiteiten: Evalueren testobject Opstellen evaluatierapport Decharge testteam VSUA P&B
TMap® pijler technieken Technieken ter ondersteuning van het planningsproces, technieken voor intake en rapportagetechnieken Technieken voor testspecificaties, variërend van informeel tot formeel Testpuntanalyse vereist specifieke kentallen T I O F
Technieken voor strategiebepaling Communicatie met opdrachtgever voor bepaling strategische keuzes Bepaling belangrijke en minder belangrijke kwaliteitsattributen Risicotaxatie om de absolute en relatieve testinspanning te kunnen bepalen en benodigde testdekking vast te stellen Bepalen van de optimale balans tussen gewenste kwaliteit en hiervoor benodigde hoeveelheid tijd en geld
Techniek testpuntanalyse (TPA) Manier om de benodigde tijd te begroten wanneer de manier van testen vastligt Vaak gerelateerd aan de bouwinspanning, bijvoorbeeld een percentage van de bouwtijd Sluit aan bij Functie Punt Analyse, een manier om de omvang van de functionaliteit van een systeem te bepalen Specifiek geschikt voor black-box testen in de systeem- en acceptatietest Herleidt functiepunten naar testpunten waarop vervolgens het aantal testuren berekend wordt Houdt rekening met specifieke testbeïnvloedingsfactoren, waaronder complexiteit van het systeem en kwaliteit testbasis
Techniek detail intake testbasis Testbasis is iedere vorm van documentatie en “informatiebron” op basis waarvan een test wordt voorbereid De “intake” van de testbasis beoogt dat gedurende de feitelijke voorbereiding geen verrassingen ontstaan over de volledigheid en kwaliteit van de testbasis De volgende vragen worden met de detail intake beantwoord: Voldoende compleet Accuraat Intern consistent (niet met zichzelf in tegenspraak) Extern consistent (niet met andere documenten in tegenspraak)
Testspecificatietechnieken Een testgeval bestaat uit een de volgende elementen: Uitgangssituatie Veranderingsproces (“actie”) Resultaatvoorspelling Een testgeval wordt op basis van “uitgangsinformatie” (de testbasis) bepaald Testspecificatietechnieken vormen een gestandaardiseerde manier om vanuit uitgangsinformatie testgevallen af te leiden Individuele testgevallen worden gebundeld in testscripts, de testscripts in testdraaiboeken
Checklists TMap® voorziet in een groot aantal checklists, controlelijsten aan de hand waarvan de volledigheid van een (test)activiteit kan worden bepaald Ondersteuning van het gehele proces, van planning en beheer tot aan de afronding
TMap® pijler infrastructuur Randvoorwaarde om een test te kunnen uitvoeren De testomgeving moet stabiel, beheersbaar en representatief zijn Afgescheiden van andere omgevingen Hulpmiddelen in de vorm van testtools Werkomgeving met kantoorapplicaties T I O F
Testomgeving (1) Traditioneel drie testomgevingen, waarbij de acceptatietesten een “als-ware-het-productie” voorstelt PTITSTFATPAT Laboratorium Systeem test Acceptatietest Omgevingen Testsoorten
Testomgeving (2) Benuttingsgraad specifieke testomgevingen per testsoort vaak laag, uit efficiëncy-overwegingen worden de omgevingen ook per testvorm geclusterd Testomgevingen laten afhangen van de te testen kwaliteitsattributen Inzet testomgevingen dienen vroegtijdig te worden bepaald, ook al omdat de levertijd van een testomgeving lang (weken, maanden) kan bedragen
Testtools Testtools ondersteunen het testproces in de breedste zin van het woord Per TMap®-fase zijn verschillende testtools beschikbaar Belangrijkste tools: Bevindingenadministratie, configuratiemanagement, testmanagement (P&B) CASE tool analyzer, Electronic Meeting Systems (V) Testontwerp (S) Testdata generator, debugger, record & playback, load & stress, simulators, stubs & drivers, statische analyse-tools, comparator, testcoverage, query-talen, montoring (U)
Kantoorinrichting Zonder effectieve werkomgeving is het niet efficiënt testen Vanaf de specificatiefase volledig beschikbaar Ook een vergaderruimte is van belang Cateringvoorziening in geval van overwerk Beperk de geografische afstand tussen rekencentrum (beheerafdeling), bouwers en testers
TMap® pijler organisatie Onderscheid tussen de organisatie binnen het testteam en de plek van het testteam binnen de overkoepelende projectorganisatie Beschrijving van wie welke test uitvoert, wie waarvoor verantwoordelijk is, wie controleert dat de test goed doorlopen is en aan wie de resultaten worden doorgegeven T I O F
Operationeel testproces Kent verscheidenheid aan functies, waaronder: Testen Testmanagement Beheer Afhankelijk van testsoort en omvang Black-box testen in teamverband uitvoeren Expertise nodig op het gebied van: Materie Het ontwikkelde systeem en de infrastructuur Testen en testmanagement
Bij het testproces betrokken disciplines Opdracht- gever Stuurgroep Project mgt Functioneel mgt Lijn mgt Reken- centrum DBA Implementatie Configuratie beheer Systeem ontwerper Functioneel ontwerper Accountancy TEST
Testorganisatie Voorwaardescheppende testfuncties: Testvoorschriftgeving Coördinatie testprocessen Testbeheer Methodische en technische ondersteuning Operationele testfuncties: Testspecificatie Testuitvoering Testmanagement Geen universele organisatievorm!
Testbeheer Beheervormen: Beheer testproces Beheer testinfrastructuur Beheer testproducten In principe belegd bij iedere betrokkene “Way of living” Sommige beheertaken extern belegd
Personeel en opleidingen Testen is een vak, teamleden dienen vakkundigheid te zijn Naast “testteamleden” kunnen ook gebruikers en beheerders testinspanningen leveren Personeelsvoorziening is een groot onderdeel van testmanagement Het beste resultaat van een opleiding wordt verkregen door een theoretisch introductie te laten volgen door een training-on-the-job
Structurering testproces Het komen tot een gestructureerde testorganisatie is een veranderingsproces met een eigen aanpak en dynamiek Teststructureringsprojecten mislukken nogal eens door onderschatting van de veranderingsimplicaties (tijd, geld, middelen, impact) Strategie en know-how van essentieel belang Stapgewijze transformatie van ist naar soll Tijd en tact spelen een belangrijke rol