Skip to main content

De wereld staat vol software die perfect voldoet aan al zijn gedocumenteerde vereisten, maar er toch niet in slaagt waarde voor zijn gebruikers te creëren.

Toen ik lang geleden software-engineering studeerde, betekende kwaliteit naleving, oftewel conformiteit met vereisten. Ik leerde ook dat kwaliteitsborging alle maatregelen omvat die worden genomen om kwaliteit mogelijk te maken, te creëren en te verifiëren, en dat testen een belangrijke methode van kwaliteitsborging is. 

Tegenwoordig definieert Wikipedia testen als het onderzoeken van de artefacten en het gedrag van de software die wordt getest door middel van validatie en verificatie. Testen wordt gedefinieerd als een activiteit, waarbij het doel ervan wordt opengelaten. De definities die ik op de technische opleiding leerde, zijn zeer verenigbaar met de Wikipedia-definitie van compliantesten: testen waarmee wordt vastgesteld of een proces, product of dienst voldoet aan de vereisten van een specificatie, technische norm, contract of voorschrift. Merkwaardig genoeg gebruikt geen van beide definities het woord kwaliteit überhaupt. 

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.

Wat is kwaliteit?

Tegenwoordig vermijd ik de verleiding om kwaliteit te definiëren, behalve indirect aan de hand van vier dimensies: voordelen, functies, proces en ervaring. Laten we nadenken over iets dat iedereen kent, bijvoorbeeld Paypal. Mensen gebruiken het om online geld over te maken; dit is de functie ervan. De voordelen die zij zoeken, zijn gemak, veiligheid en lage kosten. Het gebruik van PayPal omvat verschillende gebruikersprocessen en de software begeleidt de gebruiker daarbij. De gevoelens die de gebruiker ervaart tijdens het gebruik van Paypal, zoals blijdschap, frustratie of voldoening, vormen de ervaring. Wat kwaliteit ook is, zonder al deze vier dimensies kan er nauwelijks sprake van zijn.

Testen richt zich meestal op functionele naleving, oftewel controleren of de software doet wat in de vereisten staat en niets anders doet. Er kunnen ook niet-functionele vereisten zijn, zoals responstijden, het aantal gelijktijdige transacties dat wordt verwerkt en de beveiliging van de gegevens van de gebruiker. Normen en voorschriften, zoals SOC2 of GDPR, brengen aanvullende vereisten met zich mee, net als de overeenkomsten van Paypal met creditcardmaatschappijen. Deze hebben mogelijk weinig te maken met de daadwerkelijke functies en waarde van de software, maar eraan voldoen is een voorwaarde om aan de zakelijke activiteiten te kunnen deelnemen. 

Kwaliteit gaat verder dan louter naleving. Bekijk voor het bereiken van beide onze zorgvuldig samengestelde lijst met de beste softwaretestplatforms

De ideale wereld

Goede testers hanteren zowel een op naleving gebaseerde visie, die zich richt op het voldoen aan de vereisten, als een op resultaten gebaseerde visie, die zich richt op het realiseren van de voordelen. In een ideale wereld zou het voldoen aan de gedocumenteerde vereisten impliceren dat de voordelen voor de gebruiker worden gerealiseerd, maar de wereld is zelden ideaal. Zelfs als de software perfect zou zijn, zijn de gebruikers dat niet. De realisatie van de voordelen hangt sterk af van de handelingen van de gebruiker, en de handelingen van de gebruiker hangen af van de manier waarop de software met haar communiceert en haar begeleidt. Deze factoren beïnvloeden op hun beurt de kwaliteit van de volledige ervaring. Deze kenmerken van de software kunnen nauwelijks worden vastgelegd in nalevingsvereisten of formele testgevallen. Nogmaals, in een ideale wereld worden al deze uitdagingen vroeg genoeg opgelost door gebruikersgericht ontwerp - maar de wereld is verre van ideaal en een tester moet als plaatsvervanger van de echte gebruiker optreden.

Compliantesten versus resultaatgericht testen

Compliantesten en resultaatgericht testen vereisen verschillende denkwijzen. Compliantesten is als het opzetten van vallen: de vereisten lezen, bedenken wat er mis kan gaan en testomstandigheden ontwerpen waaronder de software waarschijnlijk faalt. Resultaatgericht testen lijkt meer op een daad van nieuwsgierigheid: begrijpen wat de gebruiker moet bereiken, zich alle dingen voorstellen die zij zou kunnen doen, bepalen hoe de software zou moeten reageren en het vervolgens uitproberen. 

Naleving is een voorwaarde voor kwaliteit. In veel sectoren is het voldoen aan formele nalevingsvereisten zelfs een voorwaarde om aan de zakelijke activiteiten te kunnen deelnemen. Men kan aansprakelijkheidsrisico's ook beperken door gedocumenteerd bewijs te leveren dat de naleving naar behoren is getest. Ik denk doorgaans dat compliantesten je helpt het risico op mislukking te verkleinen en dat resultaatgericht testen je helpt de kans op succes te vergroten.