Skip to main content

Noot van de redactie: Welkom bij de serie Leiderschap in testen van softwaretestgoeroe en consultant Paul Gerrard. De serie is bedoeld om testers met enkele jaren ervaring — vooral degenen in agile teams — te helpen uitblinken in hun rollen als testleider en manager.

In het vorige artikel schetsten we een risicomanifest om managers te helpen. In dit artikel stellen we de aloude vraag “Hoeveel testen is genoeg?”. Spoiler: dat wordt bepaald door de belanghebbenden.

Schrijf je in voor de nieuwsbrief van The QA Lead om een melding te ontvangen wanneer nieuwe delen van de serie verschijnen. Deze berichten zijn fragmenten uit Pauls cursus Leiderschap in testen, die we ten zeerste aanbevelen voor een diepere duik in dit en andere onderwerpen. Als je dat doet, gebruik dan onze exclusieve kortingscode QALEADOFFER voor $60 korting op de volledige cursusprijs!

Ongeacht het project, de organisatie of de aanpak is er altijd plaats voor documentatie. Goede documentatie is een uitkomst en biedt een nuttig overzicht van de aanpak, reikwijdte, plannen, ontwerpen en de resultaten van analyse-, ontwikkel- en testactiviteiten. 

In dit artikel bespreek ik:

Laten we beginnen.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

De waarde van documentatie

In gestructureerde projecten worden documenten doorgaans op zichzelf als op te leveren producten beschouwd. In agile of continue werkwijzen kan documentatie als bijproduct met meer of minder waarde worden geproduceerd.

Het schrijven van documenten kan de primaire activiteit van professionele technisch schrijvers zijn, maar voor de meeste vakmensen is het een vervelende klus — hoe nuttig het ook kan zijn. Hoewel het schrijven van documenten voor sommige mensen saai kan zijn, is het echte probleem met documentatie dat de meeste documentatie in veel contexten simpelweg tijdverspilling is. Ze heeft weinig waarde, is verouderd, onnauwkeurig — of alledrie.

Elke testmanager heeft teststrategieën geschreven die mensen niet hebben gelezen of onderschreven. Testers schrijven enorme hoeveelheden testplannen, scripts en rapporten, terwijl de enige waardevolle inhoud voor belanghebbenden de samenvattingen van één pagina aan het begin of einde zijn.

We hebben allemaal documenten geschreven waarvan we weten dat ze weinig waarde hebben en die niemand zal lezen.

Dit komt voort uit veelvoorkomende problemen met documentatie die we tegenkomen in zowel grote als kleine projecten. Voor elk document dat we schrijven, moeten we verschillende vragen beantwoorden:

  • Welk type document? Een beleid of strategie, een aanpak of plan, een ontwerp of implementatie, of een resultaat en interpretatie?
  • Wat is het doel van het document?
  • Welke inhoud is nodig om dat doel te bereiken?
  • Welke kennisbronnen zijn nodig om de inhoud te creëren?
  • Als het document in de loop der tijd moet veranderen, hoe wordt het dan onderhouden?
  • Welk detailniveau is vereist?
Als testmanager of als team moet je bepalen welke soorten en indelingen van documentatie geschikt zijn en, als het nauwkeurige overzichten of zogenoemde levende documenten moeten zijn, hoe ze worden onderhouden.

Get regular tech leadership wisdom for delivering better software and systems.

Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form

De valkuilen van sjablonen en knippen/plakken

Als je project bepaalt dat een bepaald document vereist is, bijvoorbeeld een systeemtestplan of een risicoregister, is het verleidelijk om op internet een kant-en-klaar sjabloon voor dit soort documenten (en vele andere documenttypen) te zoeken.

Sommige sjablonen beweren dat ze voldoen aan een bepaalde norm of conventie en duizenden keren zijn gedownload en gebruikt. Soms lijkt een sjabloon precies geschikt voor jouw doel. Maar, zoals we zullen zien, kan zelfs een uitgebreide inhoudsopgave je in de problemen brengen.

Het kan ook zijn dat jij of anderen binnen je bedrijf voor eerdere projecten een vergelijkbaar document hebben opgesteld. Je komt misschien in de verleiding om dit document te kopiëren en te hernoemen, de verwijzingen naar het oude project te wijzigen en de inhoud aan te passen.

Waarschuwing: In mijn ervaring als onafhankelijke beoordelaar komt dit zeer vaak voor en is het vaak een echt probleem. 

Ten eerste is het meestal overduidelijk dat er een kopieer- en bewerkingsactie heeft plaatsgevonden. De taal die in de tekst wordt gebruikt, lijkt vaak los te staan van het project en overal zijn hiaten en overbodige tekst te vinden. Hoe komt dat?

Het gebruik van een vooraf opgesteld sjabloon of bestaand document als bron brengt verschillende risico’s met zich mee:

  • Het ziet er uitgebreid uit, maar het kan onderwerpen bevatten die ongepast zijn en andere onderwerpen uitsluiten die essentieel zijn.
  • Het biedt koppen voor een document, maar absoluut geen richtlijnen voor welke inhoud geschikt is voor elke kop.
  • Het kan tekst bevatten die herbruikbaar lijkt en ongewijzigd is gekopieerd uit een eerder, niet-gerelateerd project, maar die tekst kan een verkeerde indruk wekken of onjuist of onvolledig zijn.

Het kan nuttig zijn om sjablonen te gebruiken voor koppen en een basisindeling, maar het belangrijkste probleem met sjablonen is dit:

Het gebruik van een sjabloon kan tijd besparen; het risico is dat je niet genoeg aandacht aan het schrijven besteedt.

De verleiding bij sjablonen is om er te veel op te vertrouwen en vervolgens voor de verschillende secties omslachtige tekst te schrijven. Je zou immers kunnen denken dat het document een ‘afvinkvakje’ voltooit en dat toch niemand het zal lezen. Het risico van sjablonen is dat je stopt met nadenken en een document schrijft dat weinig waarde heeft.

Typen testdocumentatie

In dit gedeelte bekijken we de verschillende vormen van testdocumentatie en bespreken we enkele aandachtspunten bij gestructureerde of agile/continue projecten versus traditionele watervalmethodeprojecten. 

De belangrijkste testdocumenten vallen doorgaans in de volgende categorieën:

  • Beleid en strategie (soms bekend als mastertestplan)
  • Testdefinitie (ook wel specificatie of testplannen genoemd, wat verwarrend kan zijn)
  • Testontwerp
  • Testgevallen
  • Testprocedures of scripts
  • Testuitvoering
  • Planning
  • Logboek
  • Testrapport

De bovenstaande reeks documenttypen omvat de definitie van het testproces, de belangrijkste activiteiten voor definitie en uitvoering en de rapportage. 

Er zijn verschillende andere testgerelateerde documenten die in meer bureaucratische omgevingen definities en beheerprocessen voor testomgevingen, acceptatieprocedures, processen voor incidentbeheer enzovoort zouden omvatten (we behandelen incidentbeheer in een toekomstig artikel).

Een andere voor de hand liggende omissie in het bovenstaande zou een algemeen plan of een algemene planning voor testactiviteiten zijn. Een planning is niet echt een testdocument; het is een onderdeel van een algemeen projectplan voor een gestructureerd project (we behandelen het plannen van planningen ook in een toekomstig artikel, dus blijf op de hoogte!).

Beleid, strategie, mastertestplan

Doel
  • Een beleid bestrijkt doorgaans een organisatie en omvat een subset van onderwerpen die alle projecten omvatten. Een strategie bestrijkt doorgaans één project (of toepassing)
  • Over het geheel genomen bevat de strategie beslissingen over logistieke vraagstukken met betrekking tot aanpak, overdrachten, verantwoordelijkheden, omgevingen enzovoort.
  • Sommige van deze beslissingen kunnen vooraf worden genomen en in de strategie worden vastgelegd
  • Sommige beslissingen kunnen nu nog niet worden genomen, maar de strategie kan het proces, de methode of de informatie documenteren waarmee beslissingen kunnen worden genomen (binnen het project)
  • Voor onzekere situaties of ongeplande gebeurtenissen waarbij beslissingen moeten worden genomen, legt de strategie de algemene principes (of het proces) vast die moeten worden gevolgd.
Inhoud
  • Belanghebbenden, doelen en belangrijkste risico's die aandacht vereisen
  • Testprincipes/-aanpak die moet worden toegepast, bijvoorbeeld een risicogebaseerde testaanpak
  • Testproces (testfasen):
    • doelen en scope
    • acceptatiecriteria
    • methoden, technieken
    • opleveringen (documenten)
    • verantwoordelijkheid
    • Niet-functionele/technische testactiviteiten
    • Beleid voor het beheer van (test)leveranciers
    • Proces voor incidentbeheer
    • Bronnen van testgegevens
    • Testomgevingen
    • Strategie voor tools/automatisering
  • Documentatie-indelingen/sjablonen
Bronnen
  • Belanghebbenden, gebruikers, bedrijfsanalisten, ontwikkelaars en operationele medewerkers
Onderhoud
  • Doorgaans een eenmalig document dat voor een project of programma wordt opgesteld
Agile/continue aandachtspunten De teststrategie voor agile projecten die bijvoorbeeld Scrum gebruiken, zal waarschijnlijk vrij beknopt zijn en slechts enkele pagina's omvatten (als deze al wordt gedocumenteerd). Het testproces heeft mogelijk geen fasen, maar er zal waarschijnlijk wel een definitie zijn van testen op verschillende niveaus. Bijvoorbeeld:
  • Testen in een sprint of iteratie
  • Testen voor een release
  • Systeemintegratietesten (met andere systemen of interfaces)
  • Gebruikerstesten (tijdens de sprint en/of acceptatie op releaseniveau).
Hoe tools worden gebruikt bij tests door ontwikkelaars (en bijvoorbeeld BDD of TDD) wordt waarschijnlijk niet gedocumenteerd, maar van ontwikkelingsteams wordt verwacht dat zij een aanpak ontwikkelen en met andere teamleden overleggen wanneer zij nieuwe code toevoegen. De rol van de tester kan bestaan uit het interactief testen van functies zodra deze door ontwikkelaars worden uitgebracht, of uit het optreden als testcoach voor de rest van het team. Net als het gebruik van tools en/of TDD zal de werkwijze zich in de loop van de tijd ontwikkelen en mogelijk nooit formeel worden gedocumenteerd.

Testdefinitie (ontwerp, testgevallen, procedures)

Doel
  • Het aantonen van de stroom of traceerbaarheid tussen kennisbronnen en de uit te voeren tests
  • Het documenteren van de dekking (aan de hand van meerdere modellen) van aspecten van de vereisten, systeemfuncties of gebruikersgedrag
  • Belanghebbenden in staat stellen de scope, aanpak, dekking en keuzes bij het opstellen van de toe te passen tests te beoordelen
  • Instructies bieden voor het uitvoeren van tests op een overeengekomen detailniveau.
Inhoud
  • Testscope – zowel op hoog niveau, bijvoorbeeld functies, als op lager niveau, bijvoorbeeld gedragsmodellen
  • Dekking van tests ten opzichte van items binnen de scope (bijvoorbeeld een matrix voor vereistedekking of een ander testmodel)
  • Testgevallen waarin functies, randvoorwaarden, invoer en naverwachtingen (waaronder verwachte resultaten) worden geïdentificeerd
  • Testprocedures die herbruikbaar zijn voor het uitvoeren van geselecteerde testgevallen.
Bronnen
  • Belanghebbenden, gebruikers, vereisten, ontwerpen en specificaties
Onderhoud
  • In principe zou er bij vaste vereisten één overeengekomen versie van deze documenten moeten zijn
  • Wanneer vereisten of de scope veranderen, moeten testers de documenten aanpassen, de traceerbare aspecten van de documentatie onderhouden en een configuratiebeheer of wijzigingslogboek bijhouden.
Agile/continue aandachtspunten Het gebied van testdefinitie is waar de aanpak van agile het duidelijkst verschilt van gestructureerde projecten. Mogelijk maken testers die zich richten op functies zodra deze worden opgeleverd helemaal geen documentatie. Dit is passend als er bijvoorbeeld een organisatiebreed beleid of handvest voor het testen van functies bestaat. Waarschijnlijker is er voor het testen van elke functie in een verkennende testsessie een beknopt handvest. Een handvest is vergelijkbaar met een plan voor een korte verkenningsperiode. In het handvest wordt doorgaans het volgende vastgelegd:
  • De scope van de testsessie – de te behandelen functie(s) en/of bepaalde gespecificeerde functionaliteit of gedrag van het systeem
  • Het doel van de sessie – bepaalde gedragsaspecten verkennen, focussen op een risico of faalwijze, of bepaalde geselecteerde scenario's toepassen
  • De duur van de sessie bedraagt doorgaans 45-120 minuten. De scope van de sessie is noodzakelijkerwijs beperkt, maar testers zijn vrij om buiten de scope te verkennen als zij dat waardevol vinden
  • Een handvest kan gericht zijn op verkenning – leren wat een functie doet, specifieke gedragingen identificeren die het testen waard zijn, beoordelen hoeveel testen/hoeveel sessies nodig zijn om een grote of complexe functie te testen, begrijpen welke testgegevens nodig kunnen zijn om deze te testen enzovoort
  • Een handvest kan zich specifiek richten op het testen van een functie, maar kan bepaalde gebieden benadrukken die meer aandacht nodig hebben dan andere.
BDD-tools en gebruikersverhalen in een geselecteerde indeling, bijvoorbeeld in Cucumber- of Gherkin-indeling opgestelde verhalen en scenario's, kunnen de traceerbaarheid en inhoud bieden die testontwerpen en procedures bieden. Elk scenario met ‘gegeven/wanneer/dan’-clausules identificeert randvoorwaarden, invoer en naverwachtingen. Ze verwijzen naar één functie, waardoor ze een minimaal testgeval/een minimale procedure bieden en ten minste traceerbaar zijn naar functies. Tests die zijn gescript om door tools te worden uitgevoerd, hebben mogelijk wel of geen tussentijdse documentatie. Teams vertrouwen meer op observatie van geautomatiseerde tests en tabellen met testgegevens die door geautomatiseerde scripts worden gebruikt dan op gedocumenteerde testontwerpen.

Testuitvoering (planning, logboek)

Doel
  • De uitvoeringsvolgorde van tests specificeren
  • De status van tests vastleggen – uitgevoerd/niet uitgevoerd en status
  • De resultaten van de testuitvoering leveren voor rapportage
Inhoud
  • Testidentificatie, tester, datum/tijd van uitvoering, status
  • Voor tests die afwijkend gedrag lijken te vertonen (optioneel):
    • Details van de uitgevoerde test waar de details afwijken van het script
    • Werkelijke versus verwachte resultaten
    • Overige observaties, interpretatie
    • Teststatus (defect, afwijking in configuratie of omgeving enz.)
    • Id van observatie- of defectrapport (waar van toepassing)
Bronnen
  • Inventaris van testgevallen/procedures, testers
Onderhoud
  • De planning zou moeten veranderen in overeenstemming met de testomvang en de procedures die aan het plan worden gewijzigd, verwijderd of toegevoegd.
  • Tests worden waarschijnlijk meerdere keren uitgevoerd, hetzij als hertests of als regressietests. Het logboek moet een volledige geschiedenis bevatten van alle tests binnen de scope.
Overwegingen voor agile/continue ontwikkeling Als agile/continue projecten zich niet vastleggen op testdefinitiedocumenten, compenseren zij dit enigszins door testers aan te moedigen betere logboeken van de testuitvoering bij te houden. Waar testsessies worden uitgevoerd aan de hand van charters, wordt van de tester verwacht dat deze goede aantekeningen bijhoudt van de uitgevoerde tests. Er zijn maar weinig speciale hulpmiddelen voor het loggen van tests die meer bieden dan notitieboeken, dus veel testers gebruiken eenvoudige teksteditors, hulpmiddelen voor het maken van notities of papieren notitieboeken. Logboeken worden doorgaans gebruikt om alle belangrijke activiteiten en observaties tijdens sessies vast te leggen terwijl deze worden uitgevoerd. Een typisch logboek voor verkennend testen zou aspecten bevatten zoals:
  • Structuur van de onderzochte functies (een kaart van het terrein)
  • Observaties en vragen met betrekking tot de functies die tijdens de sessie zijn onderzocht
  • Modellen, lijsten en tabellen van testitems en testideeën
  • Uitgevoerde tests, vastgelegd met voldoende details om ze opnieuw uit te voeren
  • Gevonden afwijkingen – fouten, twijfelachtig gedrag, trage reacties, slechte gebruikerservaring enzovoort
  • Tijd besteed aan verkenning, testconfiguratie, testen, onderzoek, registratie van bugs, hertesten, regressietesten en niet-productieve tijd
  • Datum/tijd van de invoer
Wanneer testers hun sessieactiviteiten vastleggen in hulpmiddelen voor het maken van notities of andere hulpmiddelen, gebruiken zij een bepaalde opmaak of andere domeinspecifieke taal om hun notities te structureren. Deze kunnen door eenvoudige interne hulpmiddelen worden geparseerd om samenvattingen van activiteiten te leveren voor gebruik in het testrapport. Tests die door hulpmiddelen worden uitgevoerd (zowel propriëtaire als opensourcehulpmiddelen) houden automatisch logboeken bij. Doorgaans kunnen deze logboeken worden doorzocht met het hulpmiddel of met door gebruikers geschreven procedures.

Testrapport

Doel
  • Om het resultaat van een testfase, geselecteerde tests of een testsessie te communiceren
  • Kan ook van toepassing zijn op technische vereisten of niet-functionele testactiviteiten; in dat geval zou de inhoud worden aangepast aan het testdoel
  • Om belanghebbenden gedeeltelijk te informeren, zodat zij een beslissing kunnen nemen over de acceptatie of release van een systeem of subsysteem.
Inhoud
  • Begin- en eindtijd en duur van de test
  • Testomgeving
  • Software- en systeemversie(s) die worden getest
  • Doelen en scope van het testen (uit de teststrategie, testdefinitie)
  • Beschrijvende samenvatting van de resultaten
  • Functies waarvan wordt vastgesteld dat ze naar behoren werken
  • Risico's waarvan wordt vastgesteld dat ze zijn aangepakt
  • Openstaande tests van betekenis (mislukt of geblokkeerd)
  • Functies die gedeeltelijk of niet zijn getest
  • Risico's die gedeeltelijk of niet zijn aangepakt.
  • Details van de testresultaten met uitvoer uit testlogboeken enzovoort
  • Status van tijdelijke oplossingen voor openstaande anomalieën
  • Testanalyses
  • Testvoortgang en -status in de loop van de tijd
  • Incidentstatistieken
Bronnen
  • Teststrategie, testdefinities, testlogboek, incidentrapporten
  • Een groot deel van de inhoud van een testrapport bestaat uit de hulpmiddelen die zijn gebruikt om de testdefinitie(s), het testlogboek en het incidenten- of defectenlogboek vast te leggen.
Onderhoud
  • Dit is een momentopname van een testuitvoeringsfase en wordt niet bijgehouden.
Overwegingen voor Agile/continu werken Het doel van een testrapport in een agileproject kan betrekking hebben op één iteratie of sprint, op testen voor een release, of op een testfase op hoger niveau, zoals integratie of algemene systeemacceptatie. In alle gevallen blijft het doel hetzelfde. Een groot deel van de inhoud van een testrapport komt uit hulpmiddelen of aantekeningen van testers. De beschrijvende samenvatting van de resultaten wordt geschreven door een testleider of door de tester bij een testfase op kleinere schaal. Zoals gewoonlijk zal het rapport waarschijnlijk minder formeel zijn en zal er vermoedelijk minder onbewerkte data zijn die als basis kan dienen voor geavanceerde analyses. Zeker tijdens de iteratie(s) kan de voortgang binnen de iteratie, in termen van functies of gebruikersverhalen die zijn opgeleverd, getest en door de gebruikers goedgekeurd, worden vastgelegd in een hulpmiddel of op een openbaar KanBan-bord. Op deze manier blijven de belanghebbenden gedurende de hele iteratie op de hoogte van de voortgang en is er aan het einde van een testperiode minder behoefte aan een formeel rapport. Zichtbaarheid van de voortgang is een belangrijk aandachtspunt voor agileteams. Met regelmatige, misschien dagelijkse stand-ups rond bijvoorbeeld een Scrum-bord delen teamleden voortdurend hun inzicht in de voortgang, stellen ze elkaar vragen en stemmen ze een standpunt (en vervolgstappen) af. Op deze manier is een formeel testrapport mogelijk nooit nodig, omdat het team altijd geïnformeerd en op de hoogte is. Als de testers schriftelijke aantekeningen bijhouden van hun sessieactiviteiten, zijn er geen analyseerbare gegevens beschikbaar om geautomatiseerde rapporten te genereren. Rapportage over sessies en voortgang kan dan op een openbare, visuele manier worden gepresenteerd. Dit vereist een hoge mate van discipline en goede communicatieve vaardigheden van de testers. De testleider of manager zal op basis van mondelinge rapportages een overeenkomstig informatief rapport voor de belanghebbenden moeten opstellen.

Enig advies

Het onderwerp documentatie in projecten is een gevoelig onderwerp voor zowel testers als andere projectteamleden.

De meeste mensen beschouwen het schrijven van documentatie als een vervelende klus.

Hier zijn enkele zaken om rekening mee te houden bij het ontwerpen van je documentatie.

  1. Documentatie moet een duidelijk omschreven doel en doelgroep hebben. Als je doelgroep de documentatie niet nodig heeft, zullen ze die niet lezen. Als de documentatie niet aansluit bij hun eigen doelen, zullen ze er niet achter staan.
  2. Over het algemeen is het beter om de vastlegging van een activiteit te maken voordat je die uitvoert of terwijl je die uitvoert. TDD legt bijvoorbeeld tests vast voordat de code wordt geschreven. Testlogboeken van sessies moeten tijdens de sessie worden bijgehouden en niet achteraf worden geschreven.
  3. De essentiële gegevens om een aspect van het testen vast te leggen, kunnen minimaal zijn. Een test die bijvoorbeeld in een notitieboek is vastgelegd, kan voldoende zijn voor de tester, maar kan niet eenvoudig worden geanalyseerd. Misschien kan een eenvoudig tekstlogboek met enige opmaak net zo snel worden vastgelegd, maar kan het ook door een aangepast hulpmiddel worden geanalyseerd.
  4. Testprocedures zijn mogelijk helemaal niet nodig als testers het te testen systeem goed kennen. Misschien is alleen een testdoel of testcharter nodig. Voorbereide testgevallen kunnen minimaal worden gedocumenteerd in een spreadsheet.

Tot slot

Noodzaak is de moeder van documentatie.

Als je uitgebreide documentatie voor je belanghebbenden opstelt en zij die niet lezen, komt dat doordat ze de waarde ervan niet inzien.

Het is beter om een belanghebbende een leeg vel papier voor te leggen en samen de onderwerpen toe te voegen die in een document moeten staan, en van daaruit verder te werken. Misschien vragen ze om pagina's vol inhoud, maar wat ze werkelijk nodig hebben, is vrij eenvoudig. Blijf vragen: ‘waarom willen ze dit?’

Bedankt voor het lezen. Kom de volgende keer bij ons terug terwijl we de mouwen opstropen en beginnen met testplanning.

Schrijf je in voor de nieuwsbrief van The QA Lead om op de hoogte te worden gebracht wanneer nieuwe delen van de reeks worden gepubliceerd. Deze berichten zijn fragmenten uit Pauls cursus Leiderschap in testen, die we ten zeerste aanbevelen voor een diepgaandere behandeling van dit en andere onderwerpen. Als je dat doet, gebruik dan onze exclusieve kortingscode QALEADOFFER om $60 korting op de volledige cursusprijs te krijgen!