Entwurf einer Architektur für das Saros Test Framework (STF)

worked on by: Robert Kasparson

Outline

  • Durchführung einer Code-Analyse
    • Frage: Welche Bestandteile kann man wiederverwenden für STF/I und STF/Web?
  • Konzeption einer neuen Projekt-Struktur für das neue STF, um zukünftige Einarbeitungen zu vereinfachen und ersichtlich zu machen, welche Teile des Projekts für was zuständig sind.
  • Organisation der neuen Test-Suiten
  • Konzeption und prototyphaften Umsetzung einer Konfigurationsmöglichkeit, in welcher Umgebung die Testfälle ausgeführt werden sollen

Thesis Requirements

  • Überblick darüber, welche Teile vom STF für STF/I und STF/Web wieder verwendet werden können.
  • Entwurf einer Architektur (Diagramme) für das zukünftige STF
  • Ausarbeitung einer neuen Projektstruktur des STF
  • Überführung des STF in die neue Projektstruktur

Milestones and Planning

Milestone no.Sorted descending Past days CW Goals target accomplished wrench
5 DONE 1 CW20 Konfigurationsmöglichkeit umsetzen running
4 DONE 1 CW18 Teil der Architektur (Konfigurationsmöglichkeit näher beschreiben accomplished
3 DONE 1 CW12 Architektur entwerfen accomplished
2 DONE 1 CW07 Projekt-Struktur vorschlagen und Projekt überführen accomplished
1 DONE 1 CW04 Ist-Analyse durchführen accomplished

Weekly Status

Week 1 - 2 (CW 01 - 02)

Activities

  • Grobe Einarbeitung in Saros und STF (Manual)
  • Einarbeitung in Gerrit
  • Einrichtung der Entwicklungsumgebung

Results

  • Grundlegende Kenntnisse in Gerrit, STF
  • Entwicklungsumgebung ist eingerichtet

Next Steps

  • Detaillierter Überblick vom STF-Design ausarbeiten

Problems

  • Probleme mit Portable Java SDK und Eclipse
  • Fehler im Projekt verhindern Build, z.B. "Missing Libraries", "build path errors needs to be resolved", "unbound classpath variables"

Week 3 (CW 03)

Activities

  • Anlegen der Wiki-Seite
  • Detaillierter Überblick über STF-Design ausarbeiten
  • Beginn der Code-Analyse

Results

  • Vsl.: Dokument Überblick STF-Design

Next Steps

  • Vsl.: Entwurf der neuen Projektstruktur (ggf. Umsetzung)
  • Pflege Wiki-Seite

Problems

  • fehlende Kommentare erschweren Übersicht

Week 4 (CW 04)

Activities

Next Steps

  • Einarbeitung in die Code-Basis der Bots
  • Einarbeitung Klassen-Annotationen
  • Entwurf der neuen Projektstruktur

Problems

  • aus privaten Gründen wenig Zeit gewesen

Weeks 5 - 8 (CW 05 - 08)

Activities

  • Durchführung der Code-Analyse
  • Überlegungen zur neuen Projektstruktur
  • Refactoring-Notizen für Klassen, die man ins neue STF nicht mehr so übernehmen kann

Next Steps

  • STF verschieben und STF-Tests ausführungen → Testergebnisse sollen gleich bleiben

Problems

  • Krankheit
  • Viele gegenseitige Referenzen verhindern Modularität
  • Code nicht kommentiert und nicht gut leserlich, irritierende Paket- und Projektnamen

Weeks 9 (CW 09)

Activities

  • Überlegung der Konfigurationsmöglichkeiten, in welchem Setup die Tests ausgeführt werden
  • Anlegen eines neuen Projekts, Packages und Verschieben des STF (einschließlich Klassen)
  • Pflege der Wiki-Seite

Next Steps

  • Beginn der Entwicklung einer prototyphaften Testumgebung zur Ausführung von Tests und Auslesen der Konfiguration

Problems

  • Fehlermeldung, dass die Klassen im STF-Projekt nicht mehr auf die Klassen im Core zugreifen können → Lösung: Manifest-Overview "Update Classpath Settings"

Weeks 10 - 13 (CW 10 - 13)

Activities

  • Einarbeitung in JUnit, TestNG und parametrisiertes Testen
  • Einarbeitung in JAXB (Java XML-Bindings)
Implementierung des XML-Readers, neue Version des STF-Controllers und der parametrisierten Tests
  • Aufstellung aller möglichen Testausführungskombination
  • Entwurf der XML-Datei und DTD

Next Steps

  • Integration der Komponenten
  • Lösen der Fehlermeldungen

Problems

  • Testdaten müssen statisch und hard-gecoded sein → möglicherweise Verwendung von anderem Testframework
  • Löste der Tester als Sitzungsteilnehmer wird sehr lang, wenn alle Kombinationen getestet werden sollen → Alternative entwickeln
  • Validierung der XML-Datei mit DTD beim Unmarshalling mit JAXB nicht möglich

Weeks 14 (CW 14)

Activities

  • Bestehende Fehlermeldungen im STF aufgelöst
  • Klassen in neuere Projektstruktur verschoben
  • Bereinigung des MANIFEST.MF

Next Steps

  • Integration der bestehenden Komponenten, von statischen Zugriffen zu Feldern, nur eclipse-Testfälle, IntelliJ soll scheitern

Problems

  • Access restritiction error wegen der org.hamcrest.library

Weeks 15 (CW 15)

Activities

  • Integration der Komponenten
  • Fehlerbehebung
  • Beginn schriftliche Ausarbeitung (Grobgliederung)

Next Steps

  • Ausführung der Testfälle, Vorher-Nachher-Vergleich
  • Integration der Komponenten fertig stellen
  • Anmeldung Master-Arbeit

Problems

  • Fehlermeldungen wegen Einbindung der Bibliotheken (Fehlermeldungen wurden in Eclipse erst angezeigt, wenn Klasse geöffnet wurde. Dadurch erschien es letzte Woche, dass alle Fehler bereinigt wären.)

Weeks 16 - 17 (CW 16 - 17)

Activities

  • Arbeit an schriftliche Ausarbeitung
  • Ausführung der Testfälle (Erhebung IST-Zustand)
  • Fehlersuche, weshalb Testfälle im neuen Projekt nicht ausgeführt werden können

Next Steps

Problems

  • Testfälle können im verschobenen STF nicht ausgeführt werden, da eine ClassCastException geworfen wird
  • Test-Ausführung dauert mehrere Stunden → lange Wartzeit, in welcher der Rechner nicht sinnvoll nutzbar ist

Weeks 18 - 19 (CW 18 - 19)

Activities

  • Einrichtung der Saros Entwicklungsumgebung auf dem neuen Laptop

Problems

  • Einrichtung der neuen Entwicklungsumgebung zögerte sich hinaus, da es diverse Java-/Eclipse-Probleme gab
  • Das Projekt mit dem verschobenen STF wirft auf dem neuen Laptop zahlreiche Fehlermeldungen, wenn in Eclipse geöffnet wirft → Saros muss u.U. neu ausgecheckt werden, Änderungen müssen erneut durchgeführt werden
  • Eingewöhnung in den neuen Job ließ nicht viel Zeit für die Master-Arbeit

Weeks 20 - 40 (CW 20 - 40)

Activities

  • Anfertigung der schriftlichen Ausarbeitung
  • Mehrfache Reviews zur Vermeidung von Grammatik-/Rechtschreibfehlern
  • Vorschlag der Architektur in der Google Gruppe

Results

  • Schriftliche Ausarbeitung

Next Steps

  • Vsl.: Verteidigung

Problems

  • Aufgrund eines Vollzeitjobs blieb unter der Woche nur wenig Zeit um an der schriftlichen Ausarbeitung zu arbeiten (wurde deswegen entsprechend später angemeldet.)