Was ist modellbasiertes Testen?
Was ist modellbasiertes Testen?
Modellbasiertes Testen ist eine Softwaretesttechnik, bei der das Laufzeitverhalten der zu testenden Software anhand von Vorhersagen eines Modells überprüft wird. Ein Modell ist eine Beschreibung des Verhaltens eines Systems. Verhalten kann anhand von Eingabesequenzen, Aktionen, Bedingungen, Ausgabe und Datenfluss von der Eingabe zur Ausgabe beschrieben werden. Es sollte praktisch verständlich und wiederverwendbar sein; shareable muss eine genaue Beschreibung des zu testenden Systems enthalten.
Es stehen zahlreiche Modelle zur Verfügung, die verschiedene Aspekte des Systemverhaltens beschreiben. Beispiele für das Modell sind:
- Datenfluss
- Kontrollfluss
- Abhängigkeitsdiagramme
- Entscheidungstabellen
- Zustandsübergangsmaschinen
Modellbasiertes Testen beschreibt, wie sich ein System als Reaktion auf eine (durch ein Modell bestimmte) Aktion verhält. Geben Sie Maßnahmen ein und prüfen Sie, ob das System wie erwartet reagiert.
Es handelt sich um eine einfache formale Methode zur Validierung eines Systems. Diese Tests können sowohl auf Hardware- als auch auf Softwaretests angewendet werden.
Beispiel für modellbasiertes Testen
Das obige Modell erläutert den vereinfachten Ansatz des Schreibens von Gedichten im Notizblock und die möglichen Aktionen im Zusammenhang mit jedem Schritt. Für jede einzelne Aktion (z. B. Starten, Eingeben eines Gedichts, Speichern) Testfall generiert und die Ausgabe überprüft werden kann.
Arten von MBT
Es gibt zwei Arten von modellbasierten Test-Frameworks:
- Offline / a priori: Generierung von Testsuiten vor deren Ausführung. Eine Testsuite ist nichts anderes als eine Sammlung von Testfällen.
- Online / on-the-fly: Generierung von Testsuiten während der Testausführung
Verschiedene Modelle im Test
Um den MBT zu verstehen, ist es notwendig, einige der unten erläuterten Modelle zu verstehen. Gehen wir sie einzeln durch:
Finite-State-Maschinen
Dieses Modell hilft Testern, das Ergebnis abhängig von der gewählten Eingabe zu beurteilen. Verschiedene Kombinationen der Eingaben können zu einem entsprechenden Zustand des Systems führen.
Das System verfügt über einen bestimmten Status und einen aktuellen Status, der durch eine Reihe von Eingaben der Tester gesteuert wird.
Betrachten Sie das Beispiel:
Es gibt ein System, das es den Mitarbeitern ermöglicht, sich in die Anwendung einzuloggen. Jetzt ist der aktuelle Status des Mitarbeiters „Abwesend“ und wird zu „Anwesend“, sobald er sich beim System anmeldet. Im Status „In“ kann ein Mitarbeiter Dokumente im System anzeigen, drucken und scannen.
Staatskarten
Es handelt sich um eine Erweiterung der Finite-State-Maschine und kann für komplexe Echtzeitsysteme verwendet werden. Zustandsdiagramme werden verwendet, um verschiedene Verhaltensweisen des Systems zu beschreiben. Es gibt eine bestimmte Anzahl von Zuständen. Das Verhalten des Systems wird analysiert und für jeden Zustand in Form von Ereignissen dargestellt.
Beispielsweise -
Fehler werden im Fehlermanagement-Tool mit dem Status „Neu“ gemeldet. Sobald das Problem von den Entwicklern behoben wurde, muss es in den Status „Behoben“ geändert werden. Wenn ein Fehler nicht behoben wird, ändern Sie den Status in „Erneut öffnen“. Zustandsdiagramme sollten so gestaltet sein, dass für jeden Staat ein Ereignis angezeigt wird.
Einheitliche Modellierungssprache (UML)
Einheitliche Modellierungssprache (UML) ist eine standardisierte Allzweck-Modellierungssprache. UML umfasst eine Reihe grafischer Notationstechniken zur Erstellung visueller Modelle, die das sehr komplizierte Verhalten des Systems beschreiben können.
UML hat Notationen wie:
- Aktivitäten
- Schauspieler
- Business Process
- Komponenten
- Programmiersprache
Herausforderungen des modellbasierten Testens
Der Einsatz von MBT in jeder Organisation erfordert offensichtlich hohe Investitionen und Anstrengungen. Im Folgenden sind die Nachteile von MBT in Software Engineering.
- Notwendige Fähigkeiten, die bei Testern erforderlich sind
- Die Lernkurvenzeit wird länger sein
- Das Modell selbst ist schwer zu verstehen
Vorteile des Modelltests
Die Vorteile von MBT sind:
- Einfache Wartung von Testfällen/-suiten
- Kostenreduzierung
- Verbesserte Testabdeckung
- Kann verschiedene Tests auf n Maschinen ausführen
- Frühzeitige Fehlererkennung
- Anstieg der Fehleranzahl
- Zeitersparnis
- Höhere Arbeitszufriedenheit der Tester
Fazit
Tester konstruieren während ihrer Prüfung ohnehin mentale Modelle. Diese mentalen Modelle können in Modelle auf Papier umgewandelt werden. Dies hilft Testern, Lesbarkeit und Wiederverwendbarkeit zu erreichen.
Modellbasiertes Testen ist ein neuer Ansatz Softwaretest. Die Entwicklung des Softwaretests ist unten dargestellt –