Wat is modelgebaseerd testen?

Wat is modelgebaseerd testen?

Modelgebaseerd testen is een softwaretesttechniek waarbij het runtimegedrag van de geteste software wordt gecontroleerd aan de hand van voorspellingen van een model. Een model is een beschrijving van het gedrag van een systeem. Gedrag kan worden beschreven in termen van invoersequenties, acties, omstandigheden, uitvoer en gegevensstroom van invoer naar uitvoer. Het moet praktisch begrijpelijk zijn en herbruikbaar zijn; deelbaar moet een nauwkeurige beschrijving bevatten van het te testen systeem.

Er zijn talloze modellen beschikbaar, die verschillende aspecten van het systeemgedrag beschrijven. Voorbeelden van het model zijn:

  • Informatiestroom
  • Controle stroom
  • Afhankelijkheidsgrafieken
  • Beslissingstabellen
  • Machines voor staatstransitie

Modelgebaseerd testen beschrijft hoe een systeem zich gedraagt ​​als reactie op een actie (bepaald door een model). Voer actie uit en kijk of het systeem reageert volgens de verwachting.

Het is een lichtgewicht formele methode om een ​​systeem te valideren. Deze tests kunnen worden toegepast op zowel hardware- als softwaretests.

Modelgebaseerd testvoorbeeld

Modelgebaseerd testen

Het bovenstaande model legt de vereenvoudigde aanpak uit van het schrijven van poëzie in notitieblok en mogelijke acties die verband houden met elke stap. Voor elke actie (zoals starten, een gedicht invoeren, opslaan), Testgeval kan worden gegenereerd en de uitvoer kan worden geverifieerd.

Soorten MBT

Er zijn twee soorten modelgebaseerde testframeworks:

  1. Offline / a priori: Generatie van testsuites voordat deze worden uitgevoerd. Een testsuite is niets anders dan een verzameling testgevallen.
  2. Online / on-the-fly: genereren van testsuites tijdens de testuitvoering

Verschillende modellen in testen

Om de MBT te begrijpen, is het noodzakelijk om enkele van de hieronder uitgelegde modellen te begrijpen. Laten we ze een voor een doornemen:

Eindige-toestandsmachines

Dit model helpt testers om het resultaat te beoordelen, afhankelijk van de geselecteerde input. Verschillende combinaties van de ingangen kunnen resulteren in een overeenkomstige toestand van het systeem.

Het systeem heeft een specifieke status en huidige status, die wordt bepaald door een reeks invoergegevens die door de testers worden gegeven.

Denk aan het voorbeeld-

Er is een systeem waarmee medewerkers kunnen inloggen op de applicatie. De huidige status van de werknemer is nu 'Uit' en deze wordt 'In' zodra hij zich aanmeldt bij het systeem. Onder de status ‘in’ kan een medewerker documenten in het systeem bekijken, afdrukken en scannen.

Eindige-toestandsmachines

Staatskaarten

Het is een uitbreiding van de Finite state machine en kan worden gebruikt voor complexe en realtime systemen. Statecharts worden gebruikt om verschillende gedragingen van het systeem te beschrijven. Het heeft een bepaald aantal toestanden. Het gedrag van het systeem wordt geanalyseerd en weergegeven in de vorm van gebeurtenissen voor elke toestand.

Bijvoorbeeld -

Defecten worden gemeld in de tool voor defectbeheer met de status Nieuw. Zodra het door de ontwikkelaars is opgelost, moet het worden gewijzigd naar de status Opgelost. Als een defect niet is verholpen, wijzigt u de status naar Opnieuw open. Staatskaarten moeten zo worden ontworpen dat er voor elke staat een gebeurtenis nodig is.

Staatskaarten

Uniforme modelleringstaal (UML)

Uniforme modelleringstaal (UML) is een gestandaardiseerde modelleringstaal voor algemene doeleinden. UML omvat een reeks grafische notatietechnieken om visuele modellen te creëren die het zeer gecompliceerde gedrag van het systeem kunnen beschrijven.

UML heeft notaties zoals:

  • Activiteiten
  • Acteurs
  • Bedrijfsproces
  • Onderdelen
  • Programmeertaal

Uniforme modelleringstaal

Uitdagingen van modelgebaseerd testen

Implementatie van MBT in elke organisatie vereist uiteraard een hoge mate van investering en inspanning. Hieronder volgen de nadelen van MBT in Software Engineering.

  • Noodzakelijke vaardigheden die vereist zijn voor testers
  • De leercurvetijd zal langer zijn
  • Het model zelf is moeilijk te begrijpen

Voordelen van modeltesten

De voordelen van MBT zijn:

  • Eenvoudig onderhoud van testcases/suites
  • Verlaging van de kosten
  • Verbeterde testdekking
  • Kan verschillende tests uitvoeren op n aantal machines
  • Vroegtijdige detectie van defecten
  • Toename van het aantal defecten
  • Tijdwinst
  • Verbeterde werktevredenheid van testers

Conclusie

Testers construeren sowieso mentale modellen tijdens het testen. Die mentale modellen kunnen worden omgezet in modellen op papier. Dit helpt testers om leesbaarheid en herbruikbaarheid te bereiken.

Modelgebaseerd testen is een nieuwe aanpak software testen. De evolutie van softwaretesten wordt hieronder weergegeven:

Evolutoïne van softwaretesten