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) >>
Automatische Testdatengenerierung zur Unterstützung inkrementeller modell- und codebasierter Testprozesse für hochzuverlässige Softwaresysteme

Das Vorhaben mit dem Verbundpartner AFRA GmbH verfolgt das Ziel, deutlich über den derzeitigen Stand der Technik hinaus die Testphase hochzuverlässiger, insbesondere sicherheitskritischer Software zu automatisieren, um dadurch bei reduzierten Kosten die Erkennung von Restfehlern in komplexer Software zu erhöhen.

Im Rahmen des Vorhabens UnITeD (bis Ende 2009 vom Freistaat Bayern als Bestandteil der Software Offensive Bayern gefördert), wurden neue Verfahren zur automatischen Testunterstützung entwickelt und in entsprechende Werkzeuge umgesetzt. Diese Verfahren ermöglichen eine signifikante Reduzierung des erforderlichen Testaufwands in den frühen Entwurfsphasen und erlauben, den Bedarf ergänzender, auf Codebetrachtungen basierender Überprüfungen rechtzeitig festzustellen. Die automatisierte Testprozedur wurde im realen medizintechnischen Umfeld beim Pilotpartner Siemens Medical Solutions erprobt.

Das Projekt ist in zwei Teilprojekte gegliedert. Das erste Teilprojekt betrachtet die automatische Testdatengenerierung auf Komponentenebene, während das zweite Teilprojekt den Integrationsaspekt von Komponenten in den Vordergrund stellt und Verfahren zur Automatisierung des Integrationstests entwickelt. In beiden Fällen soll das am Lehrstuhl für die Codeebene bereits erfolgreich umgesetzte Konzept (Projekt ".gEAr") auf Modellebene übertragen werden. Darauf aufbauend sollen die Fehleraufdeckungsquoten von modellbasiertem und strukturellem Testen verglichen werden, um Anhaltspunkte für die optimale Inkrementierung von modellbasierten Testkriterien herleiten zu können.

Teilprojekt 1: Automatische Testdatengenerierung auf Komponentenebene

Folgende Teilaufgaben wurden durchgeführt:

  • Definition modellbasierter Überdeckungskriterien für den Komponententest. Zur automatischen Generierung von Testfällen anhand struktureller Merkmale eines Modells sind Überdeckungskriterien auf Modellebene erforderlich. Eine Reihe solcher Überdeckungskriterien wurde definiert und in einer Kriterienhierarchie eingeordnet. Hierfür wurden sowohl bereits bestehende, generische Kriterien (z.B. Knotenüberdeckung, Kantenüberdeckung) hinzugezogen, als auch dedizierte Kriterien hergeleitet.

  • Generierung von Testfällen. Zur Überdeckung eines Modells nach einem der definierten Überdeckungskriterien sind sowohl Testszenarien (Abläufe) als auch Testdaten (Parameter) notwendig. Für die Generierung von Testfällen (Testszenarien mit den dazugehörigen Daten) wurde ein evolutionäres Verfahren konzipiert, das die zur Überdeckung benötigten Testfälle automatisch generiert und dabei gleichzeitig die Anzahl der dafür benötigten Testfälle minimiert.

  • Entwicklung eines Modellsimulators. Um den durch einen Testfall erzielten Überdeckungsgrad zu ermitteln, wurde ein Werkzeug entwickelt, welches UML-Modelle zu simulieren und dadurch die bei der Ausführung des Testfalls erreichten Modellelemente zu erfassen erlaubt. Diese Information wird anschließend zur Optimierung der Testfälle während der Generierung verwendet. Der Modellsimulator wurde exemplarisch am Beispiel von Zustandsmaschinen und Aktivitätsdiagrammen umgesetzt.

  • Unterstützung des Regressionstests. Das Werkzeug UnITeD wurde um eine Funktionalität erweitert, welche es dem Tester erlaubt, bereits validierte Testfälle zu identifizieren, die von Änderungen am Modell oder System nicht betroffen sind. Somit müssen derartige Testfälle nicht erneut untersucht werden, was den Testaufwand bedeutend zu reduzieren vermag. Stattdessen werden lediglich zusätzlich erforderliche Testfälle automatisiert hinzu generiert.

  • Unterstützung der Testverfeinerung. Im Rahmen dieser Teilaufgabe wurde der Begriff der Verfeinerung von UML-Zustandsmaschinen definiert und analysiert; insbesondere wurde ein Verfahren entwickelt, das zu jedem Testfall auf einer vorgegebenen Modellebene alle zugehörigen Testfälle auf einer sich durch Verfeinerung ergebenden Modellebene identifiziert. Dabei wurde die Zuordnung korrespondierender feiner und grober Testfälle durch sogenannte "Stammbäume" visualisiert.

Teilprojekt 2: Automatisierung des Integrationstests

Hauptziel dieses Teilprojekts ist das Testen der Schnittstellen zwischen bereits eigenständig oder in einem fremden Kontext getesteten, miteinander interagierenden Komponenten.

Folgende Teilaufgaben wurden durchgeführt:

  • Definition modellbasierter Schnittstellenüberdeckungskriterien. Auf der Basis vorausgegangener Lehrstuhlprojekte wurden Schnittstellenüberdeckungsstrategien für den modellbasierten Integrationstest definiert und hierarchisch eingeordnet - besonderer Schwerpunkt ist dabei die Berücksichtigung der einzelnen Komponentenzustände und der Aufrufparameter. Für jedes identifizierte Testkriterium wurde anschließend anhand der maximalen Gesamtanzahl zu überdeckender Modellentitäten ein Aufwandsindikator ermittelt, welcher den Testmanager in den frühen Phasen bei der Auswahl der jeweils optimalen Teststrategie unterstützen soll.

  • Generierung von Testfällen. Ein evolutionäres Verfahren wurde entwickelt, das Integrationstestfälle automatisch generiert und optimiert, welche den oben genannten, zustandsbasierten Überdeckungskriterien genügen. Dafür wurde der Modellsimulator aus Teilprojekt 1 dahingehend erweitert, dass auch Interaktionen zwischen mehreren kommunizierenden Zustandsmaschinen simuliert und protokolliert werden können.

Teilprojekt 3: Übergeordnete Aufgaben

Für beide Teilprojekte 1 und 2 relevant war die Durchführung folgender Teilaufgaben:

  • Visualisierung der von generierten Testfällen überdeckten Modellelementen. Die im Rahmen dieser Teilaufgabe entwickelten Plugins für Magic Draw und Enterprise Architekt erlauben die Markierung der durch eine vorgegebene Testfallmenge überdeckten Modellelemente. Die Konzepte, auf denen diese Plugins basieren, ermöglichen die differenzierte Darstellung erforderlicher bzw. optionaler Entitäten mittels unterschiedlicher graphischer Hilfsmittel (Färbung bzw. Notiz-Textfelder).

  • Untersuchung und Klassifizierung typischer Fehlerarten, welche mit den entwickelten Verfahren und Werkzeugen aufgedeckt werden: typische Fehlerklassen, die bei der Modellierung von Zustandsmaschinen auftreten können, wurden identifiziert und als Vorlage für Mutationsoperatoren eingesetzt.

  • Implementierung eines Mutationsgenerators. Zum Zweck der anschließenden Bewertung des entwickelten Testverfahrens mittels Mutationstests wurde im Rahmen dieser Teilaufgabe ein Modellmutationsgenerator implementiert. Zunächst wurden Mutationsoperatoren auf Modellebene beschrieben und klassifiziert. Diese lassen sich anschließend jeweils einzeln in einem gemeinsamen initialen Modell instanziieren, wodurch ebenso viele Modellmutanten generiert werden. Darauf aufbauend erfolgt die Bewertung einer Testfallmenge durch Ausführen aller Modelle (des ursprünglichen und aller Mutationen) mit der zu bewertenden Testfallmenge und durch Vergleich des sich jeweils ergebenden Verhaltens. Die Anzahl der dabei erkannten Modellmutationen lässt sich als Indikator des Fehlererkennungspotentials einer Testfallmenge interpretieren.

  • Erprobung und Evaluierung der entwickelten Testverfahren und des implementierten Werkzeugs an realen, medizintechnischen Anwendungen. Zur praktischen Erprobung des entwickelten Werkzeugs wurde dieses im Bereich Magnetresonanztomographie des Pilotpartners Siemens eingesetzt. Am Ende des Piloteinsatzes lag der Anteil der automatisch generierten Testfälle bei 70 Prozent der Gesamtanzahl erstellter Testfälle. Der hohe Anteil an automatisch generierten Testfällen deutet auf eine hohe Akzeptanz des Werkzeugs (insbesondere im Zusammenhang mit der Regressionstestphase) seitens des Pilotpartners hin. Zur Evaluierung der Effizienz automatisch generierter Testfälle, vor allem im Vergleich gegenüber manuell erstellten Testfällen, wurde das Werkzeug anhand einer realen medizintechnischen Anwendung erprobt; dabei handelte es sich um eine software-basierte Überprüfung der Lage der Patientenliege; es wurden einerseits Testfälle ausgeführt und ausgewertet, die anhand der Spezifikation manuell ermittelt worden waren, andererseits Testfälle, die auf der Basis eines Modells automatisch generiert worden waren. Es stellte sich heraus, dass Letztere eine deutlich höhere Überdeckung des Modells als die manuellen Testfälle erzielten und darüber hinaus drei Fehler aufzudecken erlaubten, die bei der Ausführung der manuellen Tests unerkannt blieben. Das höhere Fehlererkennungspotential automatisch generierter Testfälle fordert jedoch einen nicht unbeträchtlichen Preis, der durch den zusätzlichen Aufwand zur Erstellung des Modells bedingt wird.

  • Evaluierungsstudie über die Effizienz modellbasierter Überdeckungskriterien für den Komponenten- und Integrationstest im Hinblick auf Anzahl und Art erkennbarer Modellierungsfehler: Zum Zwecke der experimentellen Evaluierung des Fehlererkennungsgrads eines Überdeckungskriteriums wurden zunächst Mutanten zur Simulation fehlerhafter Komponenten bzw. fehlerhafter Interaktionen generiert. Zu unterschiedlichen Komponenten- bzw. Integrationstestkriterien wurden anschließend Testfallmengen automatisch generiert, mit denen die entsprechenden Mutanten ausgeführt wurden. Für das anspruchsvollste Integrationskriterium betrug der Anteil an erkannten Mutanten über 80 Prozent. Was die Art der erkannten Mutanten betrifft, konnte erwartungsgemäß festgestellt werden, dass wesentliche strukturelle Mutationen zu einem deutlich höheren Anteil entdeckt werden konnten, als datenflussspezifische Mutationen.

  • Modellbasierte Testüberdeckung für UML Sequenzdiagramme. Zur Modellierung des Verhaltens wurden neben Zustands- und Aktivitätsdiagrammen auch Sequenzdiagramme eingesetzt. Deshalb wurde das Werkzeug zur automatischen Testfallgenerierung dahingehend erweitert, dass nun auch diese Diagrammart unterstützt wird. Dazu wurde im Rahmen eines Teilprojektes ein Simulator für Sequenzdiagramme zur Messung der Testüberdeckung implementiert.

Im Berichtzeitraum 2012 wurde auf Basis einer Dissertation mit dem Titel „Automatische Optimierung und Evaluierung modellbasierter Testfälle für den Komponenten- und Integrationstest“ das Forschungsvorhaben mit einer Promotion erfolgreich abgeschlossen.

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

Beteiligte:
Dipl.-Inf. Florin Pinte, Dipl.-Inf. Claudia Schieber, Dipl.-Inf. Oster, Norbert

Stichwörter:
Testdatengenerierung; Testprozesse; Softwaresysteme; Verifikation; Validierung; modelbasiert; Integrationstest

Laufzeit: 1.3.2006 - 31.5.2012

Förderer:
Bayerisches Staatsministerium für Wirtschaft, Infrastruktur, Verkehr und Technologie

Publikationen
Oster, Norbert ; Schieber, Claudia ; Saglietti, Francesca ; Pinte, Florin: Automatische, modellbasierte Testdatengenerierung durch Einsatz evolutionärer Verfahren. In: Koschke, Rainer ; Herzog, Otthein ; Rödiger, Karl-Heinz ; Ronthaler, Marc (Hrsg.) : Informatik 2007 - Informatik trifft Logistik (Informatik 2007 - 37. Jahrestagung der Gesellschaft für Informatik e.V. (GI) Bremen 24-27.09.2007). Bd. 2. Bonn : Köllen Druck+Verlag GmbH, 2007, S. 398-403. (Lecture Notes in Informatics Bd. P-110, Nr. 2) - ISBN 978-3-88579-204-8
Saglietti, Francesca ; Oster, Norbert ; Pinte, Florin: Interface Coverage Criteria Supporting Model-Based Integration Testing. In: Platzner, Marco ; Großpietsch, Karl-Erwin ; Hochberger, Christian ; Koch, Andreas (Hrsg.) : ARCS '07 - Workshop Proceedings (Workshop proceedings of the 20th International Conference on Architecture of Computing Systems (ARCS 2007) Zürich(CH) 15.03.2007). Zürich : VDE Verlag GmbH Berlin/Offenbach, 2007, S. 85-93. - ISBN 978-3-8007-3015-5
Pinte, Florin ; Saglietti, Francesca ; Oster, Norbert: Automatic Generation of Optimized Integration Test Data by Genetic Algorithms. In: Maalej, Walid ; Brügge, Bernd (Hrsg.) : Software Engineering 2008 - Workshopband (Software Engineering 2008 - Workshop "Testmethoden für Software - Von der Forschung in die Praxis" München 2008). Bonn : Gesellschaft für Informatik (GI) e. V., 2008, S. 415-422. (Lecture Notes in Informatics (LNI) Bd. P - 122) - ISBN 978-3-88579-216-1
Pinte, Florin ; Baier, Gerhard ; Saglietti, Francesca ; Oster, Norbert: Automatische Generierung optimaler modellbasierter Regressionstests. In: Hegering, Heinz-Gerd ; Lehmann, Axel ; Ohlbach, Hans Jürgen ; Scheideler, Christian (Hrsg.) : INFORMATIK 2008 - Beherrschbare Systeme dank Informatik (Band 1) (Workshop on Model-Based Testing (MoTes 2008) München 09.09.2008). Bd. 1. Bonn : Gesellschaft für Informatik, 2008, S. 193-198. (Lecture Notes in Informatics Bd. P-133) - ISBN 978-3-88579-227-7
Pinte, Florin ; Oster, Norbert ; Saglietti, Francesca: Techniques and Tools for the Automatic Generation of Optimal Test Data at Code, Model and Interface Level. In: ACM (Hrsg.) : Companion Proceedings (30th International Conference on Software Engineering (ICSE) Leipzig 10 - 18 May 2008). USA : ACM, 2008, S. -.
Pinte, Florin ; Saglietti, Francesca ; Neubauer, Achim: Visualisierung überdeckter sowie zu überdeckender Modellelemente im modellbasierten Test. In: Fischer, Stefan ; Maehle, Erik ; Reischuk, Rüdiger (Hrsg.) : Informatik 2009 - Im Focus das Leben (Informatik 2009, Workshop on model-based Testing (MoTes 2009) Lübeck 29.9.2009). Bonn : Gesellschaft für Informatik (GI), 2009, S. 358, 2815-2822. (Lecture Notes in Informatics (LNI) Bd. P-154) - ISBN 978-3-88579-248-2
Pinte, Florin: Automatische Optimierung und Evaluierung modellbasierter Testfälle für den Komponenten- und Integrationstest. Erlangen, Universität Erlangen-Nürnberg, Diss., 2012. - 195 Seiten.
UnivIS ist ein Produkt der Config eG, Buckenhof