# Elementaire vergelijkingentest

Elementaire Vergelijkingentest (EVT) is een formele testontwerptechniek, bedoeld om de functionaliteit van een testobject gedetailleerd te testen. Voor het kunnen toepassen van de EVT moet in de testbasis beslispunten gedetailleerd en gestructureerd uitgewerkt zijn. De basistechniek die hiervoor standaard gebruikt wordt, is de Modified Condition Decision Coverage (MCDC), maar variaties zijn mogelijk door bijvoorbeeld te kiezen voor Multiple Condition Coverage.

## Stappen

De EVT kent 4 generieke stappen: 1. Identificeren testsituaties
    Als de testbasis geen pseudocode bevat, moet deze eerst uitgewerkt worden in termen van ALS..DAN..ANDERS..EINDALS. De beslispunten in de pseudocode moeten voorzien worden van een unieke identificatie. Per beslispunt wordt de gewenste dekking uitgewerkt in een waarheidstabel. Voor de leesbaarheid wordt daarna de waarheidstabel uitgeschreven in logische termen. Eventueel kan een testgraaf opgesteld worden om de testsituaties grafisch weer te geven.
2. Opstellen logische testgevallen
    Een testgeval kent een begin en een eind en bevat één of meer beslispunten. Bij ieder beslispunt wordt één testsituatie genomen. In een matrix worden deze testsituaties als het ware aan elkaar geknoopt tot een testgeval. Hierbij moet opgelet worden dat in een testgeval geen testsituaties meegenomen worde die elkaar tegenspreken.
3. Opstellen fysieke testgevallen
    Alle variabelen krijgen in deze stap een concrete invulling.
4. Vaststellen uitgangssituatie
    De benodigde handelingen voor het verkrijgen van de initiële situatie.

## Voorbeeld

In de (fictieve) toekomst wordt een studietoelage toegekend als wordt voldaan aan een geldige studie, een geldige aanvraag en leeftijd niet ouder dan 34 jaar. Als aan een van deze eisen niet voldaan, wordt een foutmelding gegeven. Daarnaast wordt een uitwonendencomponent toegekend als je opgeeft uitwonend te zijn.
Stap 1. Identificeren testsituaties
Bovenstaand voorbeeld moet omgezet worden in pseudocode, waarbij de beslispunten meteen voorzien worden van een identificatie:
    ALS geldige studie EN geldige aanvraag EN leeftijd<=34 (=B1)
    DAN studietoelage
       ALS uitwonend (= B2)
       DAN toekennen uitwonendencomponent
       EINDALS
    ANDERS foutmelding
    EINDALS
Bovenstaand pseudocode levert de volgende waarheidstabellen op basis van MCDC op.
| B1: A en B en C | 1 | 0 |
| A: geldige studie | 1 1 1 (1) | 0 1 1 (2) |
| B: geldige aanvraag | 1 1 1 | 1 0 1 (3) |
| C: leeftijd <= 34 | 1 1 1 | 1 1 0 (4) |
| B2: A | 1 | 0 |
| A: uitwonend | 1 (1) | 0 (2) |
In logische termen betekent dit:
| B1: Testsituatie | B1.1 1 1 1 | B1.2 0 1 1 | B1.3 1 0 1 | B1.4 1 1 0 |
| geldige studie | ja | nee | ja | ja |
| geldige aanvraag | ja | ja | nee | ja |
| leeftijd <= 34 | ja | ja | ja | nee |
| Resultaat | Studietoelage Ga door naar B2 | foutmelding | foutmelding | foutmelding |
| B2: Testsituatie | B2.1 1 | B2.2 0 |
| uitwonend | ja | nee |
| Resultaat | Uitwonendencomponent | geen Uitwonendencomponent |
Stap 2. Opstellen logische testgevallen De volgende logische testgevallen worden opgesteld:
* TG1 - B1.1 - B2.1
* TG2 - B1.1 - B2-2
* TG3 - B1.2
* TG4 - B1.3
* TG5 - B1.4
De stappen 3 en 4 spreken voor zich en worden niet verder uitgewerkt.
* TMap Next voor resultaatgericht testen, ISBN 9072194799, Uitgeverij Tutein Nolthenius, 2006, §14.4.4 Elementaire Vergelijkingentest (EVT)