Heutzutage wird bei der überwiegenden Mehrzahl von Softwareprojekten nicht mehr gefragt, ob getestet wird, sondern nur noch was, wie und wie viel. Zur Effizienzsteigerung wird dabei insbesondere auf die automatisierte Durchführung der Tests gesetzt. Modellbasiertes Testen zielt in erster Linie darauf ab, die Automatisierung auf bislang weniger zugängliche Tätigkeiten in früheren Phasen des Testens auszudehnen. Dort werden nach wie vor aus oft umgangssprachlich formulierten Anforderungen und Systemspezifikationen unter Benutzung mehr oder weniger methodischer Verfahren Testfälle manuell erstellt [Umf16]. Das modellbasierte Testen konzentriert sich auf die Erstellung eines oder mehrerer formaler Modelle, anhand derer zum Beispiel die Testfälle nach vorgegebenen Testkriterien automatisch generiert (und auch ausgeführt) werden können.
»MBT ist schwierig einzuführen«
Folgende Herausforderungen sind beim M BT aktuell noch gegeben ([Bra14], [Win16]):
- Der Testprozess muss dafür eine ausreichende Reife aufweisen, sonst führt MBT eher zu neuen Problemen, als dass es zur Lösung von bestehenden beiträgt.
- Für eine effiziente Nutzung von MBT müssen Entwicklungs- und Testteam sowie fachliche Anforderer gemeinsam arbeiten und eine einheitliche Arbeitsumgebung (Modellierungssprache und -werkzeug) nutzen. Die Organisationsstruktur vieler Unternehmen stellt auch heute noch ein Hindernis hierfür dar.
- Die Auswahl an Werkzeugen und Modellierungssprachen sowie deren Einbindung in typische Entwicklungs- und Testwerkzeuglandschaften ist besser geworden. Dennoch werden MBT-Werkzeuge noch lange nicht als benutzerfreundlich wahrgenommen und die Hürde für ihren produktiven Einsatz ist weiterhin hoch.
Gleichwohl findet man immer häufiger Berichte über den erfolgreichen Einsatz von MBT in der Softwareindustrie ([Hof12], [Kra13]). Dazu hat auch das International Software Testing Qualifications Board (ISTQB) beigetragen, welches Ende 2015 das modellbasierte Testen mit dem Lehrplan „ISTQB Model Based Tester“ in das Zertifizierungsschema ISTQB Certified Tester aufgenommen hat [ISTQB].
Ist MBT-Neuland?
Die Nutzung von Modellen bei der Testfallerstellung ist kein Neuland – der Testspezialist Robert Binder schreibt sogar, testing is always model based [Bin00]. Tester nutzen nämlich seit jeher vereinfachende Bilder der zu testenden Systeme, um Testfälle und Testszenarien zu definieren. Oftmals sind diese Bilder aber nur als mentale Modelle implizit in ihren Köpfen vorhanden. Ein wesentliches Ziel von MBT liegt darin, diese Modelle explizit und formal (also eindeutig interpretierbar und maschinenlesbar) zu machen. Dadurch werden komplexe Sachverhalte verständlich, eindeutig und nutzbar für die Automatisierung von Testaktivitäten.
Drei Modellkategorien für MBT
Beim modellbasierten Testen wird das zu testende System, seine Umgebung oder der Test beziehungsweise die „Testware“ selbst über Modelle betrachtet, die sich auf besondere Eigenschaften des Testobjekts beziehungsweise der Tests konzentrieren, meist auf deren Verhalten. Diese Modelle können eigenständig, parallel zu Entwicklungsmodellen erstellt oder aber aus diesen abgeleitet werden. Wie alle softwaretechnischen Artefakte sind sie Gegenstand der Qualitätssicherung. Aus den Modellen werden unter anderem Testfälle automatisch generiert, hinsichtlich der Testdaten sowie des Testobjekts konkretisiert und über entsprechende Testrahmen ausgeführt.
Vorgehen bei MBT
Statt die Tests in Form von umfangreichen und manchmal schwer verständlichen Textdokumenten zu spezifizieren, beschreibt man sie bei MBT in Form von Modellen. Testdesigner nutzen beziehungsweise erstellen diese bereits während der Analyse der Anforderungen. Ein Testfallgenerator erzeugt dann automatisiert aus diesen abstrakteren Modellen Testfälle für die manuelle oder Testskripte für die automatische Testdurchführung (s. Abb. 1).
Abb. 1: MBT zur Testfall- oder Testskript-Erstellung
Nutzen von MBT
Die Nutzung von einfachen grafischen Modellen im Test erleichtert die Einbindung nichttechnischer Stakeholder und fördert die effiziente Kommunikation zwischen den Beteiligten. Aktivitätsdiagramme, Zustandsdiagramme und auch Strukturdiagramme erlauben es, Vollständigkeit und Konsistenz von Anforderungen konstruktiv zu hinterfragen, sich frühzeitig über das erwartete Verhalten der zu entwickelnden Software auszutauschen, Fragen zu klären und sowohl die Modelle als auch Anforderungen zu validieren.
Diese Diskussion und auch die Generierung von Testfällen können vor der Implementierung des Systems erfolgen! Dies ist ein genereller Vorteil beim Einsatz von Modellen, sofern der zu beschreibende Sachverhalt eine Modellierung lohnt. Die Fragestellung „Entwickeln wir das richtige Produkt?“ wird so frühzeitig Gegenstand der Kommunikation im Team. Auch ein flexibles Reagieren auf Änderungswünsche wird erleichtert: Änderungen an einem Modell sind meistens schneller und kontrollierter durchführbar als an einem unübersichtlichen Berg von textuellen Anforderungen.
Ein weiterer Nutzen von MBT liegt in der Anwendbarkeit auf allen Teststufen: vom Komponententest über den Integrationstest bis hin zum System- und teilweise zum Abnahmetest. Die dabei erfolgende Verfeinerung und Anreicherung der entsprechenden Modelle ermöglicht überdies die Verfolgbarkeit von Anforderungen und Tests über den gesamten Entwicklungs- und Lebenszyklus.
Ausprägungen von MBT
Folgende MBT-Ausprägungen beschreiben die Tiefe und den möglichen Nutzen der Einführung von MBT ([Win16]):
- Modellorientiertes Testen nutzt (grafische) Modelle primär zur Kommunikation und zur Dokumentation. Durch die Nutzung werden Missverständnisse vermieden, frühzeitig Fehler gefunden und Grundlagen für einen systematischen Testfallentwurf geschaffen.
- Modellgetriebenes Testen setzt (formale) Modelle zur (teilweisen) werkzeuggestützten Generierung von Testartefakten ein (s. Abb. 1). Die Generierung ermöglicht die Erhöhung der Testüberdeckung und/oder die Senkung des Aufwands für die Testfallerstellung und -wartung.
- Modellzentrisches Testen verwendet Modelle nicht nur als Quelle zur Generierung von Testartefakten, sondern auch als Ziel für die Ablage von abgeleiteten Informationen.
Während modellorientiertes und modellgetriebenes Testen eher im Testentwurf sowie bei der Testrealisierung und Testdurchführung zum Tragen kommt, arbeiten beim Modellzentrischen Testen alle wesentlichen Aktivitäten des Testprozesses auf der Basis von Modellen (s. Abb. 2). Durch die gemeinsame Arbeitsgrundlage für alle Beteiligten und den Wegfall von Medienbrüchen entstehen zusätzliche Transparenz und Effizienz.
Abb. 2: Modellzentrisches Testen
MBT in der Praxis – Engineering und Test von Leitsystemen
In einem Projekt der Siemens AG wurden modellbasierte Methoden im Engineering und Test von Leitsystemen eines Zuges eingesetzt [Götz16], siehe auch Abbildung 3. Das Ziel war, eine maximale Testautomatisierung aus der End-2-End-Sicht eines Triebfahrzeugführers unter Zuhilfenahme eines kombinierten SysML- und Keyword-basierten Modellierungsansatzes zu erreichen. Daher wurde eine modellbasierte, testgetriebene Entwicklungsmethode (M-TDD) entwickelt, die ein modellzentrisches System- und Testengineering mit SysML unterstützt, aus den Modellen die unmittelbare Ableitung der Keywords für die Testautomatisierung erlaubt sowie maximal durch eine integrierte Werkzeugkette unterstützt wird. Ferner wurde die Simulation der Umgebung und notwendigen Infrastruktur von Anfang an berücksichtigt, genauso wie die Prozessvorgaben des Teststandards ISO29119, die zur Erfüllung der übergeordneten regulatorischen Anforderungen einer EN50128 notwendig sind.
Abb. 3: Modellzentrische, testgetriebene Entwicklung (M-TDD) nach [Götz16]
»Die Testfälle können vollständig automatisiert werden«
Die realisierte Testumgebung, ein vollständiges Schienenfahrzeug der neuen Intercity-Plattform im Testlabor, umfasst über 3.000 reale Signale in Echtzeit zwischen den einzelnen Steuerungen und interagiert mit über 58.000 simulierten Komponenten und Subsystemen. Als ein Referenzbeispiel bezüglich der Leistungsfähigkeit des M-TDD Ansatzes sei das End-2-End-Testszenario „Anfahren” angeführt. Dieses setzt sich aus genau 791 Testfälle zusammen, wobei wiederum jeder Testfall aus 20 bis maximal 100 einzelnen, modular aufgebauten Testschritten besteht. Alle 791 Testfälle sind zu 100 Prozent aus Testmodellen abgeleitet und automatisch durchführbar. Die ebenfalls automatisch erzeugte Testspezifikation hatte einen Seitenumfang von 1.512 Seiten. Damit ist klar, dass MBT auch bei größeren und komplexeren Projekten in der Praxis einsetzbar ist und funktioniert.
Fazit
Zusammenfassend lässt sich feststellen:
- Der Einsatz von Modellen im Test ermöglicht Verbesserungen im Testprozess. Dies gilt sowohl für die Wiederverwendung vorhandener Systemmodelle durch den Test also auch für den Einsatz eigenständiger Testmodelle.
»Modellbasiertes Testen ist kein „Allheilmittel“, sondern eine sinnvolle Ergänzung«
- Testmodelle können für Transparenz sorgen, Komplexität reduzieren und Tests veranschaulichen helfen. Die Möglichkeit, Generatoren für Tests einzusetzen, macht den Testprozess personenunabhängig und sorgt durch Automatisierung für mehr Wirtschaftlichkeit.
- Der generative Übergang von Modellen zu Tests bringt darüber hinaus Vorteile bei Traceability und Pflege.
- Modellbasiertes Testen ist dabei kein „Allheilmittel“, sondern stellt eine sinnvolle Ergänzung der Teststrategie dar. Auch gibt es nicht „das“ MBT von der Stange, sondern es bleibt Aufgabe des erfahrenen Testdesigners, sein Testvorgehen an der richtigen Stelle um modellbasierte Vorgehensweisen anzureichern.
Referenzen
[Bin00]
R. V. Binder, Testing Object-Oriented Systems, Addison-Wesley, 2000
[Bra14]
C. Brandes, Warum hebt modellbasiertes Testen – noch – nicht ab?, in: OBJEKTspektrum, 06/2014
[Götz16]
H. Götz, I. Tritchkov, M-TDD Model-centric Test Driven Development am Beispiel der neuen Intercity Plattform ICx der DB AG, imbus QS-Tag, 2016
[Hof12]
B. Hofer, F. Wotawa, Fallstudien zum Einsatz modellbasierter Testtechniken in der industriellen Praxis, in: OBJEKTspektrum, Online Themenspecial Testing, 2012
[ISTQB]
ISTQB Model-Based Tester Extension Syllabus, ISTQB, 2015, siehe:
https://www.istqb.org/downloads/syllabi/model-based-tester-extension-syllabus.html
[Kra13]
A. Kramer, M. Beisser, Achilles und die Schildkröte: Mit modellbasierter Testautomatisierung schneller zum Ziel, in: OBJEKTspektrum, 04/2013
[Umf16]
Umfrage zu Softwaretest in Praxis und Forschung, GTB e.V., HS Bremerhaven, HS Bremen, TH Köln, 2016, siehe:
http://www.softwaretest-umfrage.de/
[Wei11]
S. Weißleder u.a., Trend Qualitätsmanagement: Modellbasiertes Testen: Hype oder Realität?, in: OBJEKTspektrum, 06/2011
[Win16]
M. Winter u.a., Basiswissen modellbasierter Test, dpunkt.verlag, 2016