Entwicklung und Analyse von Auto-Encodern für GUI-basiertes Software-Testing durch KI: Unterschied zwischen den Versionen

Aus SDQ-Institutsseminar
(Die Seite wurde neu angelegt: „{{Vortrag |vortragender=Felix Rittler |email=felix.rittler@student.kit.edu |vortragstyp=Masterarbeit |betreuer=Daniel Zimmermann |termin=Institutsseminar/2022-…“)
 
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
|betreuer=Daniel Zimmermann
|betreuer=Daniel Zimmermann
|termin=Institutsseminar/2022-01-28
|termin=Institutsseminar/2022-01-28
|kurzfassung=TBD
|vortragsmodus=online
|kurzfassung=Das Testen von Software über deren graphischen Benutzeroberflächen wird mit zunehmender Komplexität der Software (und damit einhergehender Variabilität in der Benutzeroberfläche) aufwendiger. Rein manuelles Testen durch den Entwickler und das Schreiben von Testfällen sind oft nicht mehr möglich. Daher sind neue Ansätze aus dem Bereich des maschinellen Lernens erforderlich, um diese Arbeiten zu erleichtern. Ein Lösungsansatz kann der Einsatz neuronaler Netze sein, die am Forschungszentrum Informatik (FZI) entwickelt werden. Als Eingabedaten sollen dabei Zustände einer graphischen Benutzeroberfläche als Bild dienen, welche jedoch zu komplex sind, um in Echtzeit von diesen Netzen verarbeitet zu werden. In dieser Masterarbeit wurde untersucht, inwiefern eine Kompression der Daten durch den Encoder-Teil von Autoencodern stattfinden kann. Hierzu wurden vier verschiedene Autoencoder-Architekturen entwickelt und analysiert, inwiefern sie sich für diesen Zweck eignen. Um die Autoencoder zu trainieren, wurde ein Trainingsdatengenerator in Rust unter Verwendung von dort vorhandenen GUI-Toolkits als Mock-Applikation einer realen GUI entwickelt. Der Trainingsdatengenerator eignet sich sehr gut zum Training der Autoencoder, da er sehr passgenau Trainingsdaten generieren kann. Aufgrund des frühen Stadiums der verwendeten Werkzeuge traten jedoch während der Entwicklung Fehler auf, die die Entwicklung hemmten. Für diese wurden Workarounds entwickelt, die teilweise die Handhabung des Generators erschweren. Darüber hinaus lässt sich feststellen, dass der Aufwand zur exakten Nachbildung einer Applikation als Mock sehr hoch ist.
Bezüglich der Kompression von Informationen über Benutzeroberflächen durch die Autoencoder waren die Ergebnisse dagegen vielversprechend, da die Testdaten auch in hoher Auflösung von 900 x 935 Pixeln mit hoher Genauigkeit rekonstruiert werden konnten. Erste Experimente ergaben, dass die Autoencoder darüber hinaus Fähigkeiten entwickeln, Applikationen mit ähnlichem Farbschema oder ähnlicher Designsprache zu kodieren und wiederzugeben. Ein erstes Fazit über die Fähigkeiten zur Generalisierung fällt daher ebenso positiv aus. Die Genauigkeit der Reproduktion sinkt, wenn die Eingabe farblich oder designtechnisch stark von den Trainingsdaten abweicht.
}}
}}

Aktuelle Version vom 20. Januar 2022, 17:05 Uhr

Vortragende(r) Felix Rittler
Vortragstyp Masterarbeit
Betreuer(in) Daniel Zimmermann
Termin Fr 28. Januar 2022
Vortragsmodus online
Kurzfassung Das Testen von Software über deren graphischen Benutzeroberflächen wird mit zunehmender Komplexität der Software (und damit einhergehender Variabilität in der Benutzeroberfläche) aufwendiger. Rein manuelles Testen durch den Entwickler und das Schreiben von Testfällen sind oft nicht mehr möglich. Daher sind neue Ansätze aus dem Bereich des maschinellen Lernens erforderlich, um diese Arbeiten zu erleichtern. Ein Lösungsansatz kann der Einsatz neuronaler Netze sein, die am Forschungszentrum Informatik (FZI) entwickelt werden. Als Eingabedaten sollen dabei Zustände einer graphischen Benutzeroberfläche als Bild dienen, welche jedoch zu komplex sind, um in Echtzeit von diesen Netzen verarbeitet zu werden. In dieser Masterarbeit wurde untersucht, inwiefern eine Kompression der Daten durch den Encoder-Teil von Autoencodern stattfinden kann. Hierzu wurden vier verschiedene Autoencoder-Architekturen entwickelt und analysiert, inwiefern sie sich für diesen Zweck eignen. Um die Autoencoder zu trainieren, wurde ein Trainingsdatengenerator in Rust unter Verwendung von dort vorhandenen GUI-Toolkits als Mock-Applikation einer realen GUI entwickelt. Der Trainingsdatengenerator eignet sich sehr gut zum Training der Autoencoder, da er sehr passgenau Trainingsdaten generieren kann. Aufgrund des frühen Stadiums der verwendeten Werkzeuge traten jedoch während der Entwicklung Fehler auf, die die Entwicklung hemmten. Für diese wurden Workarounds entwickelt, die teilweise die Handhabung des Generators erschweren. Darüber hinaus lässt sich feststellen, dass der Aufwand zur exakten Nachbildung einer Applikation als Mock sehr hoch ist.

Bezüglich der Kompression von Informationen über Benutzeroberflächen durch die Autoencoder waren die Ergebnisse dagegen vielversprechend, da die Testdaten auch in hoher Auflösung von 900 x 935 Pixeln mit hoher Genauigkeit rekonstruiert werden konnten. Erste Experimente ergaben, dass die Autoencoder darüber hinaus Fähigkeiten entwickeln, Applikationen mit ähnlichem Farbschema oder ähnlicher Designsprache zu kodieren und wiederzugeben. Ein erstes Fazit über die Fähigkeiten zur Generalisierung fällt daher ebenso positiv aus. Die Genauigkeit der Reproduktion sinkt, wenn die Eingabe farblich oder designtechnisch stark von den Trainingsdaten abweicht.