Testen
Van Wikipedia
Er is een aantal definities van testen beschikbaar.
Centraal in ieder van de definities staat een toets, een vergelijking van het object onder test met een norm (verwachting, correcte werking, eis). Van belang is om te weten wat je gaat testen (testobject), waarmee je gaat vergelijken (norm: eisen, verwachtingen) en hoe je gaat testen (test methoden en technieken).
Inhoud |
[bewerk] Definities
Onder andere de volgende definities van 'testen' bestaan:
- Het methodisch proces van het aantonen van afwijkingen tussen de werkelijke werking versus de verwachte werking van een systeem of machine.
- De activiteit waarbij de kwaliteit van het gehele systeem of product wordt gecontroleerd.
- Het proces waarmee de correcte werking van een systeem of machine wordt aangetoond.
- Activiteiten zoals meten, onderzoeken, beproeven, keuren met kalibers van één of meer kenmerken van een product of dienst en het vergelijken van de uitkomsten met de gestelde eisen, om te bepalen of aan deze voorwaarde is voldaan. (Definitie volgens de standaard ISO 8402 [11].)
Ook een persoon kan worden getest teneinde zijn lichamelijke of geestelijke conditie of andere eigenschappen van die persoon te bepalen. Een persoon kan zich ook vrijwillig als testpersoon beschikbaar stellen om een nieuw medicijn te testen. Dit is meestal niet zonder risico.
[bewerk] Twee stromingen
We zien globaal twee stromingen in het testen die afhankelijk van het toepassingsgebied worden toegepast:
- De negatieve benadering, gericht op het aantonen dat er fouten in het geteste product of systeem zitten.
- De positieve benadering, waarbij wordt aangetoond dat het systeem of het product voldoet aan de eisen van gebruik.
[bewerk] Doel van testen
Uiteindelijk gaat het bij testen om beheersen van risico's. Wat betreft pc-software kunnen we stellen dat er geen (nieuwe) foutvrije programmatuur bestaat. Het is niet mogelijk om alles te testen. Daarom worden er aan de diverse risico's en eisen prioriteiten toegekend.
[bewerk] Dynamisch of statisch
Bij testen kan worden gesproken van dynamisch testen en van statisch testen:
- Statisch testen wordt uitgevoerd zonder het systeem daadwerkelijk uit te voeren
- Bij dynamische testen vindt controle van het draaiende systeem plaats.
Een voorbeeld van statisch testen is de syntaxiscontrole die een compiler uitvoert, een voorbeeld van dynamisch testen is het draaien van een computerprogramma en controleren of het programma een functie correct uitvoert. Bij een product voert men een optische controle uit (statisch) of men laat de machine proefdraaien (dynamisch).
[bewerk] Black Box of White Box
Een andere onderverdeling van testen zit in de manier waarop het object van de test benaderd wordt:
- Black Box
- Van het testobject is niets (of maar een klein deel) van de werking bekend bij de tester. De tester zet zijn tests op volledig onafhankelijk van de interne werking en alleen gebaseerd op wat de invoer is en wat de verwachte uitvoer zou moeten zijn.
- White Box
- De interne werking van het testobject is bekend, tests zijn gebaseerd op hoe de interne werking er uit ziet. Tests volgen de diverse relevante paden door het te testen object heen.
(naast de onderverdeling in de hoofdstromen,het blackbox en whitebox testen, is er nog een variant, namelijk gray box testen: "It doesn't matter whether a cat is black or white as long as it catches mice.")
[bewerk] Impliciet of expliciet
Bij het testen kan ook nog een onderverdeling worden gemaakt naar impliciet testen of expliciet testen.
- Impliciet
- Bij het impliciet testen wordt er wel aandacht besteed aan het testen van het testobject op een bepaalde kwaliteitseigenschap, maar de test vindt zijdelings plaats naast andere tests. Een voorbeeld is het impliciet testen van performance. Naast bijvoorbeeld een functionele test kan een tester dan een checklist invullen om de performance van het testobject bij te houden in termen als het aantal seconden voor het openen van een scherm.
- Expliciet
- Bij het expliciet testen wordt een testobject juist heel direct getest op bepaalde kwaliteitseigenschappen. Een voorbeeld is dat een tester heel bewust een test opzet voor het meten van performance waarin hij van te voren de uit te voeren acties en controles definieert, inclusief verwachte resultaten. Vervolgens voert de tester zijn test uit om te controleren of het object voldoet aan de gedefinieerde performance verwachtingen.
[bewerk] Normen
Een belangrijk aspect bij testen is het vaststellen van de norm. Oftewel de vraag: wat is goed? Bij computerprogramma's kan dit vastliggen in een functioneel ontwerp, bij andere producten is er vaak sprake van een productbeschrijving, offerte of norm. Het functioneel ontwerp van een programma beschrijft wat de functies zijn, definieert wat je van een programma mag verwachten. Dat ontwerp is dan de norm, die bepaalt of een programma correct werkt of niet. Wat overigens niet hetzelfde is als de vraag of het programma correct is of niet, immers ook het ontwerp kan fout zijn, dus als het programma volgens ontwerp goed is wil dat nog niet per definitie zeggen dat het voor het gebruik voldoet.
[bewerk] Methoden en Technieken
Voor het opzetten van tests op een gestructureerde wijze zijn verschillende methoden beschikbaar. Die methoden maken vervolgens weer gebruik van een veelheid aan testtechnieken.
[bewerk] Testmethoden
- SmarTEST
- Test Management Approach (Tmap) (methode om het testproces te beheren.)
- TestFrame
- TestGoal
- Agile testing
- Exploratory testing
- Whitebox testing
- Blackbox testing
- Acceptance and Regression Testing
[bewerk] Testtechnieken
- Test Strategie Bepaling
- Testpuntanalyse
- Formele Inspectie
- Testspecificatietechnieken
- Checklist
- Unittesten
[bewerk] Kwaliteitsattributen
- Functionaliteit
- Betrouwbaarheid
- Onderhoudbaarheid
- Bruikbaarheid
- Portabiliteit
- Efficiency