# Beslispunt

Ieder systeem heeft te maken met beslispunten dat afhankelijk van de uitkomsten een bepaald systeemgedrag vertoont. Volgens de Test Management Approach (TMap) is een beslispunt een samenstelling van één of meer condities die de voorwaarden definieert voor de verschillende mogelijkheden in het daaropvolgende systeemgedrag.
Een beslispunt met een enkelvoudige conditie is simpelweg met ja of nee te beantwoorden. Voorbeeld: ALS persoon heeft rijbewijs DAN auto kopen. Deze kun je testen met twee testgevallen:
* persoon heeft een rijbewijs (waar)
* persoon heeft geen rijbewijs (onwaar)
Een beslispunt kan ook uit meerdere condities bestaan die met de termen EN en/of OF met elkaar verbonden zijn. Dit wordt dan een beslispunt met samengestelde condities genoemd. Ook dit leidt tot een situatie die waar is én een situatie die onwaar is. Echter is dit afhankelijk van hoe de uitkomsten van de aparte condities ingevuld worden én de wijze waarop deze met elkaar verbonden zijn. Met behulp van booleaanse algebra kunnen de combinaties uitgewerkt worden. Een handig hulpmiddel hierbij is het gebruik van een waarheidstabel. Booleaanse algebra kent vele operatoren, voor het softwaretesten is over het algemeen afdoende om de elementaire operatoren EN, OF en NIET te gebruiken.
Neem als voorbeeld het volgende beslispunt: ALS (aantal bestellingen > 10 OF besteld_bedrag > 500 euro) DAN geen verzendkosten berekenen. Als alle mogelijke combinaties getest moeten worden, kan de volgende waarheidstabel opgesteld worden:
| Aantal bestellingen > 10 | Besteld_bedrag > 500 euro | Uitkomst |
| WAAR | WAAR | WAAR |
| WAAR | ONWAAR | WAAR |
| ONWAAR | WAAR | WAAR |
| ONWAAR | ONWAAR | ONWAAR |
Het aantal mogelijke combinaties wordt bepaald door het aantal condities. Uitgaande van de uitkomsten WAAR en ONWAAR is de formule: 2 tot de macht <het aantal condities>. In het geval van vijf condities zijn er 32 mogelijke combinaties. Het testen van al deze combinaties kan zeer tijdrovend zijn. Het testen van software heeft gauw te maken met de duivelsdriehoek. De keuze hoe beslispunten binnen een systeem te testen is een samenspel van de beschikbare tijd, de beschikbare geld én de gewenste kwaliteit. Afhankelijk van de situatie en de te verwachten risico's geeft de opdrachtgever aan hoe goed hij een systeem getest wil hebben. In veel gevallen kan gekozen worden voor een bepaalde mate van dekking, waarbij een subset van de mogelijkheden genomen wordt om deze gewenste dekking te behalen. De volgende dekkingsvormen zijn mogelijk:
| Dekkingsvorm beslispunt | Omschrijving |
| Condition coverage | De mogelijke uitkomsten (waar of onwaar) van elke conditie worden minimaal één keer getest |
| Decision coverage | De mogelijke uitkomsten van de beslissing worden minimaal één keer getest. |
| Condition Decision coverage | De mogelijke uitkomsten van elke conditie én van de beslissing worden minimaal één keer getest. |
| Modified Condition Decision Coverage (MCDC) | Elke mogelijke uitkomst van een conditie is minimaal één keer bepalend voor de uitkomst van de beslissing |
| Multiple Condition Coverage | Alle mogelijke combinaties van uitkomsten van condities in één beslissing worden minimaal één keer getest. |