Softwaretests werden derzeit meist manuell spezifiziert. Dies ist ein aufwändiger Vorgang, bei dem Testdesigner oft viele Informationsquellen verwenden oder vergleichen müssen, um mögliche Eingaben und erwartete Reaktionen des Systems zu ermitteln.

Dem gegenüber besticht modellbasiertes Testen dadurch, dass zum automatischen Generieren vieler Tests nur wenige übersichtliche und verständliche Diagrammen benötigt werden. Dies vereinfacht zunächst einmal die formale Prüfung der Tests. Fachliche Änderungen und Änderungen an der Testmethodik lassen sich schnell und zielgerichtet ins Testmodell aufnehmen. Außerdem ist jederzeit nachvollziehbar, welche Testfälle aus dem Modell generiert werden. Gerade bei komplexen Tests erreicht man so in vielen Fällen eine systematischere und vollständigere Testabdeckung auf Ebene der System- oder Integrationstests.

Indem die Tests automatisch aus nur wenigen Systemmodellen generiert werden ermöglicht modellbasiertes Testen also, die Effizienz des Tests deutlich zu steigern.

Das Model Based Testing Plugin der imbus TestBench

UML-Aktivitätsdiagramm

Das Model Based Testing Plugin der imbus TestBench generiert Tests ausgehend von Aktivitäts- oder Sequenzdiagrammen. Für die Diagramme wird eine überschaubare Untermenge der Elemente von UML verwendet. Die Modelle sind so für jedermann mit grundlegenden UML-Kenntnissen lesbar, und die Lernkurve für das Bearbeiten oder Erstellen der Modelle ist flach. Zur Akzeptanz des modellbasierten Testens durch Tester trägt des weiteren bei, dass sich die Modelle an klassischen Testmethoden wie Äquivalenzklassen-Bildung und Grenzwertanalyse orientieren.

Bei der Modellierung möglicher Abläufe im UML-Aktivitätsdiagramm werden Parameter von Interaktionen mittels Pins und mit diesen verbundenen Objekten übergeben. An Verzweigungen im Ablauf stehen Bedingungen, auf die der Testfallgenerator bei der Pfadreduktion zugreift:


UML-Klassendiagramm

Datentypen werden mit Hilfe des Klassendiagramms modelliert. Die Abbildung der UML-Objekte auf Datentypen der imbus TestBench wird gemäß der verwendeten Stereotypen wie zum Beispiel <<MBT data type>> vorgenommen:


UML Objektdiagramm

Durch Instanziierung im Objektdiagramm wird festgelegt, welche Werte bei der Testfallgenerierung tatsächlich zur Verfügung stehen:


Um die Anzahl der generierten Testfallsätze und Testfälle zu beschränken, wird die Anzahl der generierten Pfade und Parameterkombinationen nach bestimmten Regelsätzen wie zum Beispiel Entscheidungstabellen begrenzt. Je nach eingesetztem Testgenerator können dabei unterschiedliche Testabdeckungskriterien ausgewählt werden wie zum Beispiel die vollständige Pfadabdeckung oder die paarweise Kombination von Datensätzen.

Für die Testdurchführung werden schließlich manuell Sollwerte in die generierten Testfälle eingetragen. So werden mögliche Fehler eines automatischen Testorakels vermieden und die generierten Testfälle zugleich einem fachlichen Review unterzogen.

Für Interessenten, die modellbasiertes Testen in der Praxis einsetzen möchten, bietet imbus auf Anfrage einen Workshop "Modellbasiertes Testen mit der imbus TestBench".