Fachbereich Informatik

Fachbereich Informatik - Aktuell

11.09.2018

Disputation Matthias Hirzel

am Donnerstag, 20.09.2018, um 15:00 Uhr in Raum A104, Sand 1

Matthias Hirzel

Regression Testing of Transcompiled Cross-Platform Applications

Berichterstatter 1: Prof. Dr. Herbert Klaeren

Berichterstatter 2: Prof. Dr. Torsten Grust

Regressionstests sind ein gängiges Verfahren, um die Qualität von Software sicher zu stellen.
Allerdings sind sie sehr zeitaufwändig und damit teuer, insbesondere wenn Benutzeroberflächen
getestet werden. Es stellen sich daher drei Fragen: Wie kann der Aufwand für die Ausführung der
Tests reduziert werden? Wie kann die Lokalisierung von Fehlern im Code unterstützt werden? Welche
Teile des Codes erfordern zusätzliche Tests?
Diese Fragen sind im Bereich von transcompilierten plattformübergreifenden Anwendungen noch
wenig erforscht. Das Ziel bei dieser Art von Anwendung ist, Mehrfachimplementierungen derselben
Software für unterschiedliche Betriebssysteme und Endgeräte zu vermeiden. Stattdessen wird mit
Hilfe eines Transcompilers automatisch Code von einer bestimmten Quellprogrammiersprache in
möglicherweise mehreren Zielprogrammiersprachen übersetzt, sodass die Software für die gewünschten
Systeme und Geräte zur Verfügung steht. Allerdings verhindert die Transkompilation
den Einsatz gängiger Verfahren zur Regressionstestselektion. Sie erschwert zudem die Lokalisierung
von Fehlern und lässt keine vollständige Beurteilung der Testabdeckung zu.
In diesem Vortrag werden Techniken vorgestellt, welche die Herausforderungen der drei genannten
Problemstellungen auch für transcompilierte plattformübergreifende Anwendungen lösen. Dazu gehört
unter anderem die Einführung zweier Code-Instrumentierungstechniken, die universell in verschiedenen
Transcompilern einsetzbar sind. Sie bilden den Grundstein für die Erweiterung einer
Regressionstest-Selektionstechnik, die mit Hilfe von Kontrollflussgraphen und Code-Identifier genau
die Tests selektieren, die von Code-Änderungen in der Quellprogrammiersprache betroffen sind.
Um die wichtigsten Tests mit der größten Chance zur Fehleraufdeckung als erstes auszuführen
wurde zudem die Regressionstest-Selektionstechnik mit einer von sechs neuen Priorisierungstechniken
kombiniert.
Für eine möglichst hohe Effizienz des Ansatzes wurden Heuristiken entwickelt. Sie ermöglichen es
einerseits, Testfehlschläge in einer der Zielprogrammiersprachen möglichst exakt auf Fehler im
Code der Quellprogrammiersprache zurückführen. Andererseits halten sie den Speicherverbrauch
möglichst gering und reduzieren den Analyseaufwand. Schließlich lassen sich auf Basis der Analysen
unabhängig von der Art der Softwaretests genaue Metriken für die Beurteilung der Testabdeckung
erheben.
Der Dekan

Back