In de tweede stap van Model Based Testing (MBT) worden op basis van de requirements en testdoelen, selectiecriteria gekozen. Deze selectiecriteria worden hieronder besproken en vervolgens de bijbehorende testtechnieken.
Deze worden onderverdeeld in de volgende 5 groepen:
- Structural Model Coverage Criteria
- Data Coverage Criteria
- Requirements-Based Coverage Criteria
- Ad hoc logische testgevallen
- Fault-based criteria
Elk van deze selectiecriteria, die gebruikt worden bij het automatisch genereren van logische testgevallen, zullen hieronder verder beschreven worden.
Structural Model Coverage Criteria
Deze hebben te maken met de dekking van de control-flow door het model, welke gebaseerd is op de ideeën van de control-flow voor programma’s. Hierbij is het meten en het maximaliseren van de dekking van het model het belangrijkste. Het model vertegenwoordigd op hoog niveau de testdoelstellingen. Het drukt de aspecten uit van de systeem gedragingen die de ontwikkelaar wil testen. Dus dekking van alle onderdelen van het gedrag is belangrijk.
Dit kan gedaan worden met verschillende mogelijkheden, namelijk:
- Control-flow-georienteerde coverage criteria
- Data-flow-georienteerde coverage criteria
- Transitie-gebaseerde coverage criteria
- UML-gebaseerde coverage criteria
Data Coverage Criteria
Data Coverage heeft te maken met de dekking van de ruimte voor invoergegevens van een aanpassing op een overgang in het model.
Deze manier is handig voor het kiezen van goede representatieve waardes voor de input van de tests.
Voor een domein (X), zijn er twee extreme data coverage criteria:
- een waarde: op z’n minst één waarde van X (in combinatie met andere testcriteria die misschien bruikbaar zijn)
- alle waardes: elke waarde in X
Echter is het ook mogelijk en makkelijker om gebruik te maken van grenswaardes, statistische data coverage of pairwise testing.
Requirements-Based Coverage Criteria
Deze heeft als doel om een testsuite te genereren die verzekerd dat alle informele specificaties getest worden. Traceability van de specificaties van het model maakt het mogelijk om dit proces te automatiseren. Specificaties kunnen gebruikt worden om de hoeveelheid dekking van de gegenereerde testcases te meten en om het genereren van de testen aan te drijven. Requirements-Based Coverage registreert de eisen binnen het gedragsmodel (zoals annotaties). Tevens worden de specificaties geformaliseerd en gebruikt als een testselectiecriteria.
Ad Hoc logische testgevallen
Staat het toe om expliciet aan te geven of er een bepaalde test, of set van testen, vanuit het model gegenereerd moet worden. Er zijn verschillende test specificatie talen gedefinieerd voor MBT en deze geven een precieze controle over de gegenereerde testen.
Fault-Based Criteria
Deze criteria genereren testsuites die goed zijn in het opsporen van bepaalde soort fouten in het model. Ervan uitgaande dat de SUT soortgelijke fouten bevat, dat zal de testsuite deze fouten waarschijnlijk detecteren. Dit is een testtechniek die gebruik maakt van data die ontwikkeld is om de afwezigheid van een set vooraf gedefinieerde fouten te demonstreren.
Fault-Based criteria maakt gebruik van mutatie testen. Waarbij programma aanpassingen gecreëerd worden door de syntactische transformatie van de SUT. Hierbij wordt gebruik gemaakt van mutatie operatoren. Het uitvoeren van een testsuite op alle aanpassingen leidt ertoe dat snel te zien is hoe veel aanpassingen meteen gestopt worden door de testsuite (dit geeft een fout in de aanpassing aan).
Welke testtechnieken kunnen gebruikt worden?
In de onderstaande tabel wordt per selectiecriteria aangegeven welke testtechnieken het meest gebruikt worden voor het genereren van testen. Dit is gedaan voor licht testen, normaal testen en zwaar testen.
A
Ook interessant?
Wat is Model Based Testing (MBT)?
Stappen binnen Model Based Testing proces
Tools voor Model Based Testing
Selenium Suite
- Wat is Selenium Suite?
- De voordelen en nadelen van de ...