"Met Reasoning in Testing verbind je technische kwaliteit met echte gebruikerswaarde. Zo test je niet alleen wat software doet, maar vooral waarom het bestaat.”
De vier niveaus van redeneren
Het model onderscheidt vier niveaus die samen een compleet beeld geven van softwarekwaliteit:
- Vorm
De vorm beschrijft hoe de software is gerealiseerd of aangeboden. Dit kan betrekking hebben op verschillende aspecten, zoals:
- Technische vorm — bijvoorbeeld de gebruikte programmeertaal
- Functionele vorm — het systeem of platform waarop het draait
- Leveringsvorm — bijvoorbeeld open source of SaaS
- Interactievorm — bijvoorbeeld een mobiele app of webapplicatie
Deze keuzes worden grotendeels tijdens ontwerp en ontwikkeling gemaakt, maar blijven relevant tijdens het testen.
- Eigenschappen
Uit de gekozen vorm volgen eigenschappen: kenmerken van de software die het gedrag onder bepaalde omstandigheden beschrijven.
Voorbeelden zijn:
- Functionele eigenschappen (bijv. consistentie)
- Niet-functionele eigenschappen (bijv. betrouwbaarheid)
- Structurele eigenschappen (bijv. herbruikbaarheid)
- Proces- en lifecycle-eigenschappen (bijv. verifieerbaarheid)
Eigenschappen kunnen meetbaar of kwalitatief zijn. Testers richten zich vooral op eigenschappen die onafhankelijk zijn van de omvang van de software, zoals correctheid, robuustheid en betrouwbaarheid.
- Functie
Functies beschrijven waarvoor de software bedoeld is; de doelen die gebruikers ermee willen bereiken. In tegenstelling tot eigenschappen zijn functies contextafhankelijk. Verschillende gebruikers kunnen verschillende functies hebben voor hetzelfde product; de behoeften van een hacker – die de software wil uitbuiten om deze te misbruiken – zijn bijvoorbeeld anders dan die van een reguliere gebruiker – die gewoon hun doel wil bereiken.
- Behoeften en waarden
Op het hoogste niveau gaat het om de achterliggende behoeften en waarden die met de software worden gerealiseerd. Software is uiteindelijk een middel om iets mogelijk te maken: communicatie, veiligheid, efficiëntie, gemak of verbondenheid.
Wanneer software deze waarden ondersteunt, levert zij daadwerkelijk betekenisvolle waarde voor de gebruiker.
Waarom dit model waardevol is voor testers
Reasoning in Testing helpt testers om verder te kijken dan alleen bugs en functionaliteit. Het ondersteunt bij:
- Het kiezen van relevante teststrategieën
- Het begrijpen van gebruikerscontext
- Het signaleren van risico’s en ontbrekende waarde
- Het verbinden van technische kwaliteit met gebruikersbehoeften
Je test daarmee niet alleen de software zelf, maar ook de reden waarom zij bestaat.
Methoden die Reasoning in Testing ondersteunen
Verschillende technieken kunnen helpen om deze manier van redeneren in de praktijk toe te passen:
Function Analysis
Helpt om functies systematisch te identificeren en te structureren, zodat duidelijk wordt welke doelen de software moet ondersteunen.
Problem Definition
Maakt expliciet welk probleem de software oplost en voor wie, waardoor testdoelen scherper worden.
Persona’s
Brengen gebruikers tot leven en maken behoeften, context en verwachtingen concreet. Dit helpt bij het ontwerpen van realistische en relevante testscenario’s.
Tot slot: testen als doordacht redeneren
Reasoning in Testing laat zien dat testen in essentie een denkproces is. Door bewust te schakelen tussen vorm, eigenschappen, functies en waarden ontstaat een testaanpak die zowel technisch als betekenisvol is. Je kijkt niet alleen naar hoe software werkt, maar ook naar waarom zij werkt, en voor wie. Daardoor sluit het testwerk beter aan op de context, verwachtingen en echte behoeften van gebruikers.
Ik ben benieuwd: herkennen andere testers dit model in hun dagelijkse werk? En gebruiken jullie bewust analyse en synthese tijdens het testen? Laten we ervaringen uitwisselen.
BRON: Delft Design Guide, Annemiek va Boeijen, Jaap Daalhuizen, Jelle Zijlstra en Roos van der Schoor.