Skip to main content

Model Based Testing

Alle Ausführungen zum Thema Effizienz durch Automatisierung im Zusammenhang mit repository-gestützten Requirement Management und MDSE lassen sich auf das Thema Testing übertragen. Auf gleiche Art wie in obigen Disziplinen helfen Metastrukturen und Standardisierte Notationselemente (z.B. auf Basis des UTP - UML Testing Profile der OMG) formaler zu spezifizieren und damit Arbeitsschritte zu automatisieren. Semiformale Spezifikationen in Form von Sequenzdiagrammen lassen sich mit wenig Aufwand direkt in Testspezifikationen überführen, die zum automatisierten Ablauf von Tests ("Regression Tests") verwendet werden können.

Kunden die modellbasiert testen, verkürzen ihre Projektlaufzeiten signifikant. Die Integration der Verifikation bereits in den frühen Projektlaufphasen birgt ein enormes, selten ausgeschöpftes Potential für die Effizienzsteigerung.

Bei heutigen Engineering Vorgehen müssen Tests nicht länger codezentrisch und manuell erstellt werden, sie können aus einer formalen oder semiformalen Spezifikation mit wenigen Ergänzungen automatisiert erstellt werden. Hinzu kommt, dass Modelgetriebene Entwicklung auf Basis von Simulation ein erstes Ausführen der Tests zu sehr viel früheren Phasen ermöglicht.

Dieselben Tests können zu späteren Zeitpunkten genutzt werden, um sie auf der realen Target-Hardware durchzuführen. Seit einiger Zeit bereits etabliert sich die Automatisierung auch von System- und Unit-Tests auf Modellebene und erweist sich als besonders effizienzsteigernd, da bestimmte Kategorien an Fehlern sehr viel früher gefunden werden.

Das UTP (UML Testing Profile) ist durch die OMG standardisiert und liefert die gemeinsame Basis. Werkzeuge wie der IBM TestConductor setzen hier auf und ergänzen Entwicklungsumgebungen wie das Willert Embedded UML Studio zu einer effizienten, voll integrierten Umgebung auch für Software Tests. Modellbasierend ermöglicht der IBM TestConductor die automatische Generierung von Testarchitekturen.

Ein weiterer Vorteil des Model Based Testing für das Embedded Software Engineering liegt im Umgang mit der Traceability. Wird z.B. die Testarchitektur aus der Applikations-Architektur oder die Testspezifikation aus der Systemspezifikation automatisch generiert, kann auch die Tracability aus den Testspezifikationen automatisch daraus abgeleitet werden. In einem Zuge ist damit die Traceability zwischen Requirements, Modell-Elementen, generiertem Code und Testfällen gewährleistet. Gerade die Erstellung und Pflege der Traceability ist bei Projekten im Safety Kontext nicht nur eine zeitfressende, sondern häufig auch eine unbeliebte Aufgabe für die Entwickler.

∨ mehr Text anzeigen

Durch Model Based Testing ergeben sich im Einzelnen die folgenden Vorteile.

  • Automatische Generierung von:
    • Testarchitekturen aus UML-Modellelementen im Lösungskontext (Klassen-Diagramme)
    • Testspezifikationen für Unit-, Integration- und Systemtests aus den den UML-Modellelementen im Spezifikationskontext
    • Generierung des SUT (System under Test) auf Basis der UML-Modellelemente im Verhaltenskontext (Activity-Diagramme, FlowCharts oder StateCharts)
  • Automatische Erstellung von Traceability und Abgleich von Änderungen von/zu Requirements
    • Automatische Erstellung der Traceability zum Ausgangsobjekt (vollständige Traceability von Requirements, über Modell-
    • Elemente und Code zu korrespondierenden Testfällen)
    • Requirements Change und Impact Analyse (Req-Synchronisation in RM-Tools)
    • Auto Reports über TestCoverage in Bezug auf Modell-Elemente und Requirements
  • Automatische Erzeugung von Dokumentation (Reports über Coverage, Ausführung und Ergebnis)

Hinweis für 3GL Systementwicklung: Model Based Testing kann auch auf externen C/C++ Code angewendet werden, indem man die Schnittstellen in IBM Rhapsody über die Reverse Engineering Funktion bekannt macht. Der Code muss nicht in das Modell übernommen werden und kann extern bleiben. Unsere Tools funktionieren in beiden Welten. So können sowohl 3GL Programme, als auch 4GL Modelle automatisiert getestet werden.

Resümee

Die Embedded Software Engineering Branche steckt mitten im Paradigmenwechsel von der strukturierten Programmierung in 3 GL Notationen zum Model Driven Software Engineering auf Basis von 4 GL Notationen. In klassischen Projektabläufen mit Coding durch Entwicklungs-Teams und Weitergabe an Test-Teams beansprucht das Testen häufig 50% der Gesamtprojektlaufzeit. Zusätzlich wird der Quellcode mit TestCode und Testskripten versehen und die Traceability wird zeitaufwändig und fehlerträchtig in externen Tabellen gepflegt.

Und genau hier steckt das Effizienzpotenzial von Model Based Testing. Kunden die modellbasiert testen, bestätigen dass sich Projektlaufzeiten signifikant verkürzen. Hier liegt also enormes Potential für Effizienzsteigerung, dass selten ausgeschöpft wird, weil die Verifikation erst zu späten Phasen des Engineerings durch eigenständige Abteilungen durchgeführt wird. Die Integration der Verifikation bereits in den frühen Phasen auf Basis von modellgetriebenem Vorgehen ist daher ein mächtiger Hebel der selten genutzt wird.

Ganz nebenbei hat sich bei vielen die Zusammenarbeit zwischen Entwicklungs- und Test-Teams verbessert. Die Investition in die Werkzeuge und Mitarbeiterschulungen für Model Based Testing ist aufgrund des möglichen Einsparungspotentials hoch rentabel.

Hinweis: Unsere Webseite nutzt Cookies. Wenn Sie fortfahren, nehmen wir an, dass wir Ihre Erlaubnis haben Cookies zu setzen. Informationen zum Einsatz von Cookies sowie unsere Datenschutzbestimmungen finden Sie in unserer Datenschutzerklärung und über unser Impressum.