Evaluating the Use of a Web Browser to Unify GUI Development for IDE Plug-ins
Ursprünglicher Titel bei der Anmeldung: Entwicklung eines Testframeworks für Saros mit Evaluation einer HTML-basierten GUI
bearbeitet von: Christian Cikryt
Abstract
Saros, an Eclipse plug-in for distributed collaborative programming, is currently being ported to the IntelliJ IDEA platform.
As both IDEs use different graphical widget toolkits, SWT and Swing respectively, this results in a duplication of the GUI code.
This thesis investigates whether the integration of a web browser into both plug-ins and the display of Saros in HTML-based technologies is a viable alternative.
It avoids the redundant implementation of the user interface and maximises the common code base.
After a thorough initial evaluation, a prototype is developed that encloses all fundamental mechanisms including GUI tests to assess this approach qualitatively.
The prototype has been closely integrated into Saros and provides a basis for further development and evaluation.
The choice and integration of the web browser constitutes a large part of this work.
In the process an existing wrapper for the SWT browser has been developed further into an external library.
Motivation
Das Eclipse-Plugin Saros ist ein Werkzeug zur verteilten Paarprogrammierung und wird derzeit auf IntelliJ IDEA portiert. Im Zuge der Portierung und in Hinblick auf geringe Code-Duplikation zwischen den verschiedenen Plattformen wird eine Neuimplementierung der GUI mit Webtechnologien in Erwägung gezogen. Des Weiteren ist die Anzahl der bisher vorhandenen Oberflächentests gering und das zur Erstellung dieser benutzte Framework (STF) ist nicht für IntelliJ geeignet.
Vorgehen
In dieser Arbeit wird zunächst die Evaluation der zu verwendenden GUI-Technologie in Zusammenarbeit mit Matthias Bohnstedt durchgeführt. Das Ermöglichen von IDE-unabhängigen GUI-Tests ist ein wichtiger Aspekt der Evaluation.
Es wird ein Prototyp entwickelt und in Saros integriert der alle grundlegende Fazetten des HTML-basierten Ansatzes abdecken soll.
Realitätsabgleich nach 3 Monaten Bearbeitungszeit
Da sich die eigentlich parallel stattfindende Masterarbeit zur Implementierung der HTML-Oberfläche aus verschiedenen Gründen verzögert, hat sich mein Fokus von der Implementierung eines Testframeworks zur grundlegenderen Erstellung und Evaluierung eines HTML-Prototypen verschoben.
Dazu gehört die Einbindung und Erweiterung des Browsers in die IDEs.
Genauer gesagt ist geplant eine von Björn Kahlert entwickelte Browserkomponente einzubinden. Das optimale Vorgehen hierzu gilt es noch auszuarbeiten.
Ferner ist eine prototypische Implementierung eines Ausschnittes der Saros-Oberfläche zu erstellen. Der Quellcode und das Verfahren für diesen Ausschnitt soll als Hilfe für eine zukünftige vollständige Implementierung dienen.
Da mittlerweile die dritte Masterarbeit an der neuen GUI geplant ist, wird hier erhöhten Abstimmungsbedarf geben, weil die Zuständigkeiten noch nicht geklärt sind und der Arbeitsbeging in der Zukunft liegt.
Als weiteren Punkt plane ich das Saros-Testframework für den Teil der GUI nahzuziehen, aber keine grundlegenden Änderungen an seinen Schnittstellen vorzunehmen.
Aktualisierte Ziele
- Hauptziel: Bewertung des HTML-basierten Ansatzes
- Entscheidung über die geeignetste GUI-Technologie mit Augenmerk auf Testbarkeit
- Evaluation der verschiedenen Java-Webbrowser
- Entwurf und Evaluation eines Prototypen unter Verwendung des SWT Browsers
- Einbindung von Björn Kahlerts Browserkomponente
- Einbindung eines Grundgerüst für das Saros Testframework (STF)
Abgrenzung
- Mit dieser Arbeit ist die Evaluation nicht abgeschlossen
- Sie legt mehr den Grundstein weitere Auswertungen
- Gestaltung der Oberfläche ist nicht Thema dieser Arbeit
- Nutzertests demzufolge nicht durchgeführt werden
aktualisierte Arbeitsschritte
Evaluation HTML-GUI
- Einbettung SWT in IntelliJ IDEA
- Alternative Browser für IntelliJ?
- Prototypen für GUI-Elemente erstellen
- Alternativen zur HTML-GUI betrachten
- Testbarkeit beleuchten
Technische Voraussetzung für die Verwendung des SWT Browsers schaffen (neu)
- Problem der Einbindung in Swing in IntelliJ lösen
- Problem der Einbindung in IntelliJ unter Mac OS lösen
- Kompatibilitätschecks durchführen
Implementation des Prototypen (neu)
- Einbinden des Saros Cores
- Anpassung und Verwendung des Cores
- Implementation der Anbindung von Java nach Javascript
Einbinden des SWT Browsers (neu)
- Björn Kahlerts Komponente analysieren und einbinden
- Browser-Komponente in eine externe Bibliothek überführen
- Erweiterungen und Anpassungen je nach anfallenden Anforderungen
Einbinden einer Teilmenge von STF (neu)
- Neu-implementierung unter Verwendung der HTML-Oberfläche
- IDE-spezifische Funktionalität implementieren
- Klickroboter für IntelliJ verwenden
Evaluation Testframework (entfällt)
- IST-Analyse
- Anforderungsanalyse
- Echte GUI-Tests?
- Eingesetzte Technologien
Entwicklung Testframework (entfällt)
- BuLF oder echte GUI-Tests
- Aufsetzen auf STF?
- Womöglich DSL?
Als Nebenprodukt: Trennung von GUI und Anwendungslogik im Code
Ursprüngliche Ziele
- Entscheidung über die geeignetste GUI-Technologie mit Augenmerk auf Testbarkeit
- Entscheidung über geeignete Vorgehensweise und Technologie für Systemtests
- Entwicklung eines Testframeworks für plattformübergreifende Systemtests von Saros