Wat is Grenswaardenanalyse (boundary value analysis)?
Techniek voor blackboxtesten die, omdat defecten zich vaak ophopen bij de grenzen tussen equivalentieklassen, de waarden direct aan beide kanten van elke grens test (bijvoorbeeld 0, 1, 100 en 101 als 1 tot 100 wordt geaccepteerd). Ze is goed in het vinden van fouten zoals verwisselde vergelijkingsoperatoren.
Japanse benaming: 境界値分析
“Grenswaardenanalyse (boundary value analysis)” komt voor in 3 oefenvragen uit 1 onderwerpen, bijv. Softwareontwikkeling en projectmanagement.
Vakgebied: Softwareontwikkeling en projectmanagement
De waarden kiezen
Worden gehele getallen van 1 tot 100 geaccepteerd, dan worden 0 en 1 gekozen bij de ondergrens en 100 en 101 bij de bovengrens. Een fijnere variant test elke grenswaarde en haar beide buren (0, 1, 2 en 99, 100, 101). Zijn er meerdere categorieën, zoals tariefcategorieën, dan worden waarden aan beide kanten gekozen van elke grens waar de categorie verandert. Bij decimale invoer wordt de naburige waarde bepaald door de resolutie die in de specificatie is vastgelegd (zoals stappen van 0,1).
Grenzen in software dicht bij de hardware
Embedded software heeft veel numerieke grenzen in haar specificatie, zoals drempels op ADC-waarden, het punt waarop een timerteller van zijn maximum naar 0 terugspringt, het punt waarop een buffer precies vol raakt, en de maximale pakketlengte van een communicatieprotocol. Rekenfouten treden vaak op rond de overloop van 255 naar 0 bij een 8-bitsteller, of rond de grens tussen 32.767 en −32.768 bij een 16-bits geheel getal met teken. Zulke grenzen worden opgespoord aan de hand van zowel de getallen in de specificatie als de bereiken van de datatypen.
Veelgestelde vragen
Hoe worden equivalentiepartitionering en grenswaardenanalyse samen gebruikt?
Meestal worden ze gecombineerd. Equivalentiepartitionering verdeelt de invoer in klassen en test een representant van elke klasse, en grenswaardenanalyse voegt tests toe aan beide kanten van de klassengrenzen. Equivalentiepartitionering alleen beperkt het aantal tests, maar mist gemakkelijk fouten bij de grenzen.
Is grenswaardenanalyse een techniek voor whiteboxtesten?
Ze kiest waarden bij de grenzen van de bereiken die in de specificatie staan, dus het is een techniek voor blackboxtesten. Sommige grenzen, zoals arraygrootten en bereiken van datatypen in de implementatie, staan echter niet in de specificatie, dus soms worden waarden toegevoegd na het bekijken van de broncode.