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. |
Past |
|
CW |
Goals |
accomplished |
1 |
|
1 |
CW04 |
Ist-Analyse durchführen |
accomplished |
2 |
|
1 |
CW07 |
Projekt-Struktur vorschlagen und Projekt überführen |
accomplished |
3 |
|
1 |
CW12 |
Architektur entwerfen |
accomplished |
4 |
|
1 |
CW18 |
Teil der Architektur (Konfigurationsmöglichkeit näher beschreiben |
accomplished |
5 |
|
1 |
CW20 |
Konfigurationsmöglichkeit umsetzen |
running |
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
Problems
- Aufgrund eines Vollzeitjobs blieb unter der Woche nur wenig Zeit um an der schriftlichen Ausarbeitung zu arbeiten (wurde deswegen entsprechend später angemeldet.)