ThesisDPPIndependentSTF

GUI-Tests für portable IDE-Plugins

worked on by: Thorsten Reinhardt

Outline

Ursprünglich wurde Saros als Plug-In für die Entwicklungsumgebung Eclipse entwickelt. Im Zuge der Entwicklung wurde das Saros Test Framework (STF) entworfen, welches mit Hilfe verschiedener Testszenarien die Stabilität von Saros sicherstellt. Dieses Testframework bietet die Möglichkeit, Saros umfangreichen Systemtests (Ende-zu-Ende-Tests) zu unterziehen. Das Testframework ist jedoch wie Saros auch sehr an die Eclipse-Oberfläche SWT gebunden.

Saros soll IDE-unabhängiger werden. Um weiterhin die Stabilität von Saros zu gewährleisten, ist es erforderlich, das bestehende Testframework ebenfalls für neue IDEs einsetzbar zu machen. Für das Erreichen der Unabhängigkeit von Saros wird eine HTML-GUI entwickelt, die über einen eingebetteten Browser in der Entwicklungsumgebung angezeigt wird.

Die bestehenden STF-Tests, die bisher nur in Eclipse durchführbar sind, verwenden die bisherige SWT-GUI. Das Saros Test Framework soll dahingehend erweitert werden, dass die vorhandenen Tests und Testszenarien sowohl die bisherige GUI, als auch die neue HTML-GUI verwenden können.

Thesis Requirements

Erste Schritte

In einem ersten Schritt ist zu festzustellen, inwieweit die Funktionalität der HTML-GUI bereits vollständig ist. Gegebenenfalls sind fehlende Funktionen zu implementieren.

Der Umfang von diesen ersten Schritten steckt derzeit noch in der Evaluierungsphase. Daher kann noch keine genaue Aussage darüber getroffen werden, wie viel Aufwand er insgesamt beanspruchen wird. Die vollständige Funktionalität der HTML-GUI ist allerdings keine zwingende Voraussetzung die folgenden Schritte.

Evaluierung der Ansprechbarkeit von HTML-Elementen aus Java heraus

Im nächsten Schritt soll herausgefunden werden, inwiefern sich einzelne HTML-Elemente in der HTML-GUI seitens der Entwicklungsumgebung finden und ansprechen lassen. Erste Untersuchungen deuten an, dass es möglich ist, HTML-Elemente einer Webseite direkt anzusprechen.

Dieser Schritt ist vom Aufwand her nicht sehr hoch einzuschätzen, zumal Vorbetrachtungen bereits gezeigt haben, dass die grundsätzliche Möglichkeit der „Fernsteuerung“ der HTML-Elemente einer Webseite gegeben ist.

Anpassung des Saros Test Frameworks

In diesem Schritt soll zunächt das Saros Test Framework dahingehend angepasst werden, dass die Tests auch mit der neuen HTML-GUI zurechtkommen. Für das einzelne Testszenario soll es dabei unerheblich sein, mit welcher GUI es ausgeführt wird. Um eine möglichst große IDE-Unabhängigkeit zu erreichen, soll der Anteil des IDE-unabhängigen Codes möglichst groß und der Anteil des IDE-spezifischen Codes möglichst klein sein. Dadurch erreicht man im Idealfall keinen duplizierten Code, was die Wartbarkeit des Codes erhöht.

Die Anpassung des STF ist der wichtigste Arbeitsschritt der Arbeit, stellt er ja die eigentliche Aufgabe dar – die vorhandenen Tests für die neue HTML-GUI einsetzbar zu machen.

Erweiterung des Saros Test Frameworks

Zusätzlich soll das bestehende Testframework in der Lage sein, dass die verschiedenen IDEs miteinander agieren, dass die Tests in den Testszenarien von verschiedenen IDE-Clients durchgeführt werden. In einem ersten Unterschritt geht es darum, dass nur Intellij-Clients und Eclipse-Clients interagieren. Als Bonus lässt sich das STF dahingehend erweitern, so dass es möglich ist, eine beliebige Konfiguration von verwendeten IDEs in den Testszenarien zuzulassen.

Dieser letzte Schritt rundet die Arbeit ab, da dadurch erst die Möglichkeit entsteht, die Tests auf verschiedenen IDEs auszuführen. Dieser Schritt ist nicht ganz so wichtig wie die Anpassung des Saros Test Frameworks, nichtsdestotrotz ist er erforderlich für eine erfolgreiche Arbeit.

--

Milestones and Planning

A milestone is a scheduled event signifying the completion of a major deliverable or a set of related deliverables. A milestone has zero duration and no effort -- there is no work associated with a milestone. It is a flag in the workplan to signify some other work has completed. Usually a milestone is used as a project checkpoint to validate how the project is progressing and revalidate work. (Source: http://www.mariosalexandrou.com/definition/milestone.asp)

Milestone no. Past days CW Goals target accomplished wrench
1 DONE 1 CWXX Goals accomplished

Weekly Status

Week 1 (CW XX)

Activities

Results

Next Steps

Problems

Comments