MBtech Mercedes-Benz Technologie
Fraunhofer-Institut für Experimentelles Software Engineering IESE
Modellbasiertes und statistisches Testen: Wie gut ist Software?
Seit den 70er Jahren sind systematische Softwaretestverfahren Gegenstand intensiver Forschung und werden mittlerweile in weiten Teilen der Industrie als zwingende Notwendigkeit akzeptiert. Doch bei einem Test handelt es sich in der Regel nur um eine kleine Stichprobe aus den möglichen Benutzungsszenarien der zu prüfenden Software. Die Gründe dafür liegen in der Wirtschaftlichkeit und Komplexität: Viele Testfälle verteuern den Testprozess und erschweren den Überblick hinsichtlich Konsistenz und möglicher Redundanzen. Eine weitere wichtige Anforderung an Tests ist die Automatisierbarkeit von Testfallerstellung, Testdurchführung und Testauswertung.
Der ideale Softwaretest beruht also auf einer kleinen, am besten automatisch generierten und dabei trotzdem möglichst fehlersensitiven Menge von Testfällen. Wie lässt sich das erreichen?
Ähnlich wie in der Softwareentwicklung setzte sich in den vergangenen Jahren auch beim Testen die Einsicht durch, zunächst ein Modell des Tests zu erstellen. Modelle können deutlich schneller und leichter auf Inkonsistenzen und Redundanzen überprüft werden als vollständig implementierte und integrierte Softwaresysteme.
Ein weiterer Vorteil des modellbasierten Testens liegt im hohen Potenzial zur Automatisierung der Generierung, Ausführung und Auswertung von Testfällen, was die Möglichkeit zu einer wirtschaftlichen Steigerung der zur selben Zeit durchführbaren Testfälle und damit zu einer Vergrößerung der Stichprobe eröffnet. Die signifikante Vergrößerung dieser Stichprobe durch Automatisierung erlaubt dann sogar den Rückschluss auf nicht-funktionale Qualitätseigenschaften der Software. Mittels statistischer Methoden und Schätzverfahren sind so Größen wie Restfehlergehalt, Zuverlässigkeit oder Verfügbarkeit mit vertretbarem Kostenaufwand zugänglich.
In Kooperation mit Unternehmen aus dem Automobilsektor hat das Fraunhofer IESE die Praxistauglichkeit und Leistungsfähigkeit des modellbasierten und statistischen Testens evaluiert. Anhand von Spezifikationen gerade in der Entwicklung befindlicher Systeme wurden Testmodelle inkrementell entwickelt. Im Rahmen der Projekte wurde gezeigt, dass manueller Aufwand nur noch für die Erstellung des Testmodells nötig ist. Die sich daran anschließenden Aktivitäten wie Testfallableitung, Testdurchführung und -auswertung konnten vollständig automatisiert werden.
Insgesamt wurden jeweils mehrere Hundert Testfälle ausgeführt und diverse Inkonsistenzen zwischen dem spezifizierten Systemverhalten und dem im Test ermittelten Verhalten aufgedeckt. Teilweise konnten Fehler schon bei der Testmodellerstellung entdeckt werden.
Ein aus vielen Komponenten bestehendes, komplexes Softwaresystem verlangt in der Regel ein komplexes Testmodell. Da die Komplexität zukünftiger Systeme weiter zunimmt, wird die Entwicklung komponentenbasierter Ansätze zur Konstruktion und Analyse adäquater Testmodelle eine entscheidende Rolle spielen. Auch der Übergang von Softwaremodellen zu Systemmodellen (z.B. für eingebettete Systeme) wird in Zukunft in den Vordergrund treten. Das Fraunhofer IESE konzentriert sich daher in weiteren Forschungsarbeiten auf industrierelevante Komponentenbegriffe und Systemmodelle im Hinblick auf deren Praxistauglichkeit.



Social Bookmarks