Bij het testen van software denken we meestal aan testacties waarbij we de testgevallen in een vaste volgorde doorlopen. Er zijn systemen die niet altijd deze volgorde aanhouden. Dan hangt de volgorde af van de, al dan niet, van buiten komende gebeurtenissen. Het eerste type systemen is transactieverwerkend. Die systemen zien we bijvoorbeeld bij administratieve toepassingen. Het tweede type wordt meestal aangeduid met de term ‘event driven’. Voorbeelden hiervan zijn webgebaseerde systemen en procesbesturingssystemen.

Verschil voor de tester

Voor de tester ligt het belangrijkste verschil in voorspelbaarheid van de uitkomst. Kijk naar banktransacties. Bij het uitvoeren van een reeks van betalingen van de ene naar de andere rekening wordt het saldo van de eerste rekening verlaagd met de som van de betalingen. Het saldo van de andere rekening wordt met hetzelfde bedrag verhoogd. Bij event driven software is die volgtijdelijkheid niet vanzelfsprekend, doordat gebeurtenissen (events) die er tussendoor komen invloed hebben op de uitkomst.

Groot aantal mogelijkheden

Intel bijvoorbeeld, test de werking van het energiebeheer van een laptop bij verandering van de status van die laptop. Dat energiebeheer reageert op acties zoals aan- en uitzetten, openen en sluiten. Intel test dit in alle mogelijke combinaties, omdat niet elke gebruiker hetzelfde werkt. Hierdoor wordt het aantal te testen mogelijkheden erg groot, zelfs in dit relatief eenvoudige voorbeeld. Denk je eens in hoeveel mogelijke combinaties er bestaan bij gebruik van je smartphone, waarbij je de agenda, foto’s en andere apps willekeurig door elkaar en soms gecombineerd gebruikt. Dat levert een ongekend aantal mogelijke combinaties op. Reden voor een doelgerichte aanpak.

Model Based Testing

Model Based Testing (MBT) is een techniek om software geautomatiseerd te testen. Het testsysteem genereert testgevallen en voert deze uit op basis van een model dat (functionele) aspecten van het te testen systeem beschrijft. Tijdens het uitvoeren, wordt meteen gecontroleerd of de uitkomsten overeenkomen met wat wordt verwacht. Omdat het volgende testgeval wordt bepaald aan de hand van de uitkomst van het vorige, is deze aanpak bijzonder geschikt voor het testen van complexe software waarbij de volgorde van werken niet vooraf vaststaat.

Het begint bij het model

Zoals de term al zegt, wordt bij MBT een model van de te testen situatie gebruikt als basis voor het vaststellen van de testgevallen. Het systeem interpreteert het model en voor elke statusverandering wordt een testgeval bepaald. Een veel gebruikt model is het statusdiagram. Dit is een model waarin alle statussen waarin het systeem kan verkeren in rechthoeken worden geplaatst met pijlen daartussen, die de overgangen aangeven. Hieronder een voorbeeld van een eenvoudig statusdiagram van een digitaal horloge.

Model based testing
Figuur 1 Statusdiagram

 

Aan de hand van dit eenvoudige model kunnen we voor overgangen tussen de statussen (de pijlen) testgevallen definiëren. Als we dat voor elk individuele statusovergang (pijl) doen, zonder de volgende statusovergang mee te nemen, komen we op 10 testgevallen. Wanneer we echter de combinaties van pijlen in voor en na een status meenemen, worden dat er veel meer.

Geautomatiseerd testen

Model based testing: geautomatiseerd testen
Figuur 2 Werking MBT

Model Based Testing is geautomatiseerd testen. Dat betekent dat een speciaal voor MBT ontwikkeld testsysteem dit model kan inlezen. Dit systeem interpreteert alle combinaties van statussen en statusovergangen en definieert daarvoor testgevallen. Bij dat definiëren moeten we wel aangeven met welk doel de test wordt uitgevoerd en op welke combinaties het systeem speciaal moet letten. Bij de testgevallen voorspelt het systeem de uitkomsten. Vervolgens voert het systeem de testgevallen uit en controleert of de uitkomst overeenkomt met de status die door het testsysteem is voorspeld. De resultaten van de testuitvoering worden in een testverslag gerapporteerd.

Nadelen

Als nadeel van MBT wordt wel genoemd dat de test ‘zo goed is als het model’. Een model is nooit een exacte weergave van de realiteit en heeft een bepaalde abstractie. Daardoor kunnen details over het hoofd worden gezien. Ook kan het opstellen van een model erg arbeidsintensief zijn en fouten bevatten.

Voordelen

Tegenover de nadelen staan een aantal belangrijke voordelen, zeker bij het testen van complexe software, zoals bij embedded systemen of de werking van een smartphone. Hier zijn voor een tester de uitkomsten van de acties moeilijk te voorspellen. Ook is in veel gevallen het systeem niet via een gebruikersinterface te benaderen. Hierdoor vraagt het testen veel inspanning en is de testuitvoering foutgevoelig. MBT geeft de tester hulpmiddelen om ook in deze complexe situaties een grondige test uit te voeren.

Alles wordt getest

Een belangrijk voordeel is dat MBT-systemen geen ‘voorkeur’ hebben voor bepaalde gebieden. Bij toepassing van MBT wordt een groot aantal, soms miljoenen, testgevallen gegenereerd die telkens opnieuw kunnen worden uitgevoerd. Daardoor weten we dat alle uithoeken van de software worden geraakt, een dekking die één tester of zelfs een team van testers nooit zal bereiken. Door de vastlegging in een testsysteem is ook regressietesten gegarandeerd. Andere voordelen van MBT zijn die, die we kennen van geautomatiseerde testuitvoering: herhaalbaarheid, reproduceerbaarheid en consistentie.

Menu