UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 Lehr-
veranstaltungen
   Personen/
Einrichtungen
   Räume   Forschungs-
bericht
   Publi-
kationen
   Internat.
Kontakte
   Examens-
arbeiten
   Telefon &
E-Mail
 
 
 Darstellung
 
Druckansicht

 
 
Einrichtungen >> Technische Fakultät (TF) >> Department Informatik (INF) >> Lehrstuhl für Informatik 11 (Software Engineering) >>
Entwicklung von Verfahren zur Bewertung der Software-Zuverlässigkeit für ausgewählte software-intensive Siemens-Produkte mittels herstelleradäquater Architekturmodellierung

Dank der durch Wiederverwendung vorgefertigter und betriebsbewährter Software-Bausteine ermöglichten Einsparung an Entwicklungs- und Zertifizierungskosten gewinnen komponentenbasierte Software-Systeme sowohl wirtschaftlich als auch qualitativ zunehmend an Attraktivität. Selbst im Falle neu zu entwickelnder Module unterstützt das strukturbetonte Bausteinprinzip die Transparenz und somit auch die Verständlichkeit logisch komplexer Entwürfe.

Obgleich diese inzwischen weit verbreitete Vorgehensweise die Konstruktion komplexer Entwurfslogik deutlich erleichtert, erfordert sie gleichzeitig die Anwendung neuer Ansätze zur Überprüfung der Angemessenheit der zwischen Komponenten realisierten Interaktion. Zahlreiche Vorfälle des vergangenen Jahrzehnts weisen auf die zunehmende Gefahr fehlerhafter Schnittstellen zwischen inhärent korrekten Komponenten hin. Einerseits wurden in der Vergangenheit bereits Ansätze zum Erstellen von Testfällen entwickelt, die verschiedene Überdeckungskriterien sowohl auf Ebene des Programmcodes als auch auf Modellebene erfüllen. Diese Testfallmengen sind allerdings nicht zur Herleitung einer quantitativen Zuverlässigkeitsaussage geeignet. Andererseits existiert mit der statistischen Stichprobentheorie bereits ein fundierter Ansatz zur Herleitung eben einer solchen Zuverlässigkeitsaussage. Bei diesem reinen Black-Box-Test wird jedoch die innere Struktur des untersuchten Programms nicht berücksichtigt.

Ziel des Forschungsvorhabens ist es, die Testphase so zu gestalten, dass nicht nur eine möglichst hohe Überdeckung hinsichtlich der Interaktion der Komponenten auf Programmcodeebene erreicht wird, sondern zusätzlich eine quantitative Zuverlässigkeitsbewertung der Software für verschiedene funktionale Anforderungen abgeleitet werden kann. Dazu wurden zunächst verschiedene Teilziele definiert, die sich aus den Voraussetzungen der statistischen Stichprobentheorie und der Überdeckung der Interaktion von Komponenten ergeben. Zum Zweck der Messung der drei identifizierten Teilziele – statistische Unabhängigkeit, Betriebsprofiltreue und Überdeckungsgrad der Interaktion – wurden adäquate Metriken identifiziert. Der neu entwickelte Ansatz evaluiert und kombiniert diese Metriken mittels genetischer Algorithmen, um eine Testfallmenge zu generieren, die sowohl eine fundierte quantitative Zuverlässigkeitsbewertung, als auch eine möglichst hohe Interaktionsüberdeckung zwischen vorgegebenen Komponenten gewährleisten kann.

Das Vorhaben bestand aus folgenden Arbeitsschritten:

Erweiterung der kopplungsbasierten Integrationstestkriterien. Die Überdeckungskriterien nach Jin & Offutt wurden dahingehend erweitert, dass einige bisher noch nicht behandelte Sonderfälle bei der Interaktion zwischen Komponenten berücksichtigt werden.

Statische Analyse. Um die erzielbare Überdeckung eines Programms gemäß einem vorgegebenen Überdeckungskriterium zu ermitteln, wurde ein statischer Analysator implementiert, welcher alle dynamisch zu überdeckenden Def-Use-Paare bestimmt. Die statische Analyse arbeitet dabei sowohl fluss- als auch kontextsensitiv.

Dynamische Analyse. Zwecks dynamischer Analyse wird der Quellcode derart automatisch instrumentiert, dass die erzielte Überdeckung gemäß den kopplungsbasierten Integrationskriterien von Jin & Offutt bei Ausführung des Programms mit vorgegebenen Testfällen gemessen werden kann. Der so ermittelte Wert wird anschließend zur Optimierung der Testfallmengen verwendet.

Einsatz des entwickelten Verfahrens. Das entwickelte Verfahren wurde auf ein selbst erstelltes Beispielprogramm angewendet und die Ergebnisse veröffentlicht. Dabei wurde gezeigt, dass die Schnittstellentestüberdeckung – bei gleichzeitiger Aufrechterhaltung der Bedingungen zur Anwendung der statistischen Stichprobentheorie – wesentlich erhöht werden konnte.

Berücksichtigung der Sicherheitsrelevanz einzelner Kopplungspaare. Der Ansatz wurde derart erweitert, dass nicht nur ein kumulativer Überdeckungswert ermittelt wird, sondern einzelne Kopplungspaare entsprechend ihrer Relevanz mit unterschiedlicher Intensität getestet werden können.

Automatische Erstellung eines Testtreibers für instrumentierte Programme. Infolge der relativ hohen Anzahl notwendiger Testfälle hat die Testausführung besonders effizient zu erfolgen. Dazu wurde ein Programm zur automatischen Erstellung performanter Testtreiber entwickelt. Diese Testtreiber garantieren die Unabhängigkeit der Testfallausführung und ermöglichen eine auf mehrere Kerne und Rechner verteilte Ausführung der Testfallmengen.

Lokale Optimierung zur Auffindung schwer zu überdeckender Entitäten. Zwar vermag die automatische Testfallgenerierung mittels genetischer Algorithmen mit verhältnismäßig geringem Aufwand qualitativ hochwertige Testfallmengen zu erstellen, allerdings gibt es keine Garantie, dass alle relevanten Entitäten durch die verwendete Heuristik tatsächlich überdeckt werden. Der Ansatz wurde deshalb um eine lokale Optimierung erweitert, die eine gezielte Suche nach Testfällen für die Ausführung bisher noch nicht überdeckter Entitäten ermöglicht. Diese Testfälle können dann in der globalen Optimierung zur weiteren Steigerung der Interaktionsüberdeckung verwendet werden.

Erweiterung des Ansatzes im Hinblick auf eine möglichst gleichmäßige Überdeckung der Kopplungsdefinitionen. Der Ansatz wurde dahingehend erweitert, dass im Falle nicht vollständiger Überdeckung der Kopplungspaare die relativen Anteile überdeckter Kopplungspaare pro Kopplungsdefinition möglichst gleichmäßig sind.

Erweiterung des Ansatzes im Hinblick auf eine möglichst gleichmäßige Überdeckung der Kopplungspaare. Darüber hinaus wurde der Ansatz auch dahingehend erweitert, dass im Falle vollständiger Überdeckung der Kopplungspaare die Häufigkeit ihres Auftretens möglichst gleichmäßig ist.

Automatische Unterstützung des Mutationstests. Die im davorliegenden Zeitraum bereits implementierte Instanziierung kopplungsbasierter Mutationsoperatoren zur Erzeugung von Programmmutanten wurde im Rahmen einer studentischen Abschlussarbeit effizienter gestaltet. Nach Generierung der mutierten Programmvarianten ist das Werkzeug in der Lage, die während der Testausführung beobachtbaren Verhaltensunterschiede zwischen dem ursprünglichen Programm und seinen Mutanten aufzuzeichnen und damit die nach verschiedenen Strategien generierten Testfälle im Hinblick auf ihr Fehleraufdeckungspotenzial vergleichend zu bewerten.

Evaluierung des Ansatzes mit Hilfe des Mutationstests. Optimierte Testfallmengen wurden mit Hilfe des entwickelten Werkzeugs im Hinblick auf ihre Fähigkeit zur Aufdeckung typischer Interaktionsfehler bewertet.

Grenzen der praktischen Einsetzbarkeit des Ansatzes. Im Rahmen einer weiteren industriellen Kooperation wurden im Zusammenhang mit einer Machbarkeitsstudie signifikante Erkenntnisse hinsichtlich der Randbedingungen gewonnen, unter denen der zur Interaktionsüberdeckung entwickelte Ansatz in seiner derzeitigen Form die Grenzen seiner Praxistauglichkeit erreicht: etwa im Hinblick auf die vom zugrundeliegenden genetischen Algorithmus zu erwartenden Datentypen, die derzeit auf skalare Datentypen bzw. aus skalaren Datentypen zusammengesetzte Objekte beschränkt sind, während weitere Datentypen, wie Zeichenketten bzw. Dateien, bisher nicht vorgesehen sind.

Dieses Forschungsprojekt wurde im vergangenen Berichtszeitraum 2015 schließlich durch die Fertigstellung einer Dissertation mit dem Titel „Quantitative Bewertung der Softwarezuverlässigkeit unter Berücksichtigung der Komponenteninteraktionen“ und Abschluss des zugehörigen Promotionsverfahrens erfolgreich beendet.

Projektleitung:
Prof. Dr. rer. nat. habil. Francesca Saglietti

Beteiligte:
Dr.-Ing. Matthias Meitner

Stichwörter:
Softwarezuverlässigkeit, Architektur, Integration, Testüberdeckung

Laufzeit: 1.10.2009 - 17.9.2015

Förderer:
Siemens Corporate Technology
Siemens Infrastructure and Cities

Publikationen
Meitner, Matthias: Quantitative Bewertung der Softwarezuverlässigkeit unter Berücksichtigung der Komponenteninteraktionen. Erlangen, FAU, Diss., 2015
Meitner, Matthias ; Saglietti, Francesca: Target-Specific Adaptations of Coupling-Based Software Reliability Testing. In: Fischbach, Kai ; Krieger, Udo R. (Hrsg.) : Measurement, Modelling, and Evaluation of Computing Systems, Dependability and Fault Tolerance (17th International GI/ITG Conference MMB & DFT 2014 Bamberg 17. - 19. März 2014). Berlin Heidelberg : Springer-Verlag, 2014, S. 192-206. (Lecture Notes in Computer Science Bd. LNCS 8376) - ISBN 978-3-319-05359-2
[doi>10.1007/978-3-319-05359-2_14]
Meitner, Matthias ; Saglietti, Francesca: Adaptation of Coupling-Based Reliability Testing for Safety-Relevant Software. In: Berekovic, Mladen ; Danek, Martin (Hrsg.) : 26th International Conference on Architecture of Computing Systems 2013 - ARCS 2013 - Workshop Proceedings (ARCS Workshop on Dependability and Fault Tolerance Prag (CZ) 19. Februar 2013). Berlin Offenbach : VDE Verlag, 2013, S. -. - ISBN 978-3-8007-3492-4
Meitner, Matthias ; Saglietti, Francesca: Software Reliability Testing Covering Subsystem Interactions. In: Schmitt, Jens B. (Hrsg.) : Measurement, Modelling and Evaluation of Computing Systems and Dependability and Fault Tolerance (16th International GI/ITG Conference MMB & DFT 2012 Kaiserslautern März 2012). Berlin Heidelberg : Springer-Verlag, 2012, S. 46-60. (Lecture Notes in Computer Science Bd. LNCS 7201) - ISBN 978-3-642-28539-4
[doi>10.1007/978-3-642-28540-0_4]
Meitner, Matthias ; Saglietti, Francesca: Software Reliability Assessment based on Operational Representativeness and Interaction Coverage. In: Karl, Wolfgang ; Soudris, Dimitrios (Hrsg.) : 24th International Conference on Architecture of Computing Systems 2011 - ARCS 2011 - Workshop Proceedings (ARCS Workshop on Dependability and Fault Tolerance Como (IT) 22. Februar 2011). Berlin Offenbach : VDE Verlag, 2011, S. 96-102. - ISBN 978-3-8007-3333-0
Meitner, Matthias ; Saglietti, Francesca: Softwarezuverlässigkeitsbewertung auf Basis von Betriebsprofiltreue und Schnittstellenüberdeckung. In: Gesellschaft für Informatik (Hrsg.) : Softwaretechnik-Trends. Bonn : GI, 2011, (Softwaretechnik-Trends Bd. 31, Nr. 3), S. 44-48.ISSN 0720-8928
UnivIS ist ein Produkt der Config eG, Buckenhof