Einführung einer kontinuierlichen Integrationsumgebung und Verbesserung des Test-Frameworks
worked on by: Stefan Rossbach
Outline
Die Produktion großer Systeme erfordert in der Regel mehr als nur die Kompilierung durch eine IDE.
Ab einer gewissen Anzahl von LOCs ist dieses durch eine IDE auch gar nicht mehr zu bewerkstelligen, so
dass zwangsläufig nur die benötigten Teile aus dem Source Code Management System ausgecheckt werden.
Hierbei kann es passieren das verschiedene Entwickler verschiedene Stellen in der Codebasis dermaßen
ändern, dass der Code zwar möglicherweise sich in der eigenen IDE kompilieren lässt, spätestens jedoch
bei der Produktion des Gesamtsystems es zu Fehlern kommt.
Um solche Probleme möglichst früh zu erkennen sollten Systeme kontinuierlich produziert werden.
Hierfür stehen eine Reihe vorgefertigter Produkte zur Verfügung die man als CI Server bezeichnet.
Erfolgreich produzierte Komponenten eines Systems sagen jedoch weder etwas über deren Defektfreiheit noch
über ihr Zusammenspiel mit anderen Komponenten des Systems aus. Dafür werden Testfälle benötigt die
die Funktionalität der einzelnen Komponenten und deren Migration in das System testen.
Hierfür stehen je nach Programmiersprache diverse Frameworks bereit die es erlauben schnelle Tests
für Komponenten in Isolation zu schreiben. Desweiteren wurden speziell für Saros Testframeworks entwickelt
mit deren Hilfe es möglich ist Migrationstests zu schreiben.
Durch diese Unterstützung ist es möglich testgetriebenen Entwicklung zu betreiben. Hierbei werden zuerst
die Tests für eine Spezifikation geschrieben und im Anschluss wird diese durch die Unterstützung der im
Vorfeld geschriebenen Tests implementiert.
Thesis Requirements
Installation und Einführung eines Continuous Integration Server in den Saros Entwicklungsprozess.
Automatisierte Regression der JUNIT und STF Tests sowie eine Unterstützung für die Testlink Datenbank
zur automatischen Ausführen von Testfällen im aktuellen Testplan.
Erzeugung von diversen Metriken z.B Code Coverage und statische Code Analyse.
Verbesserung der Code Coverage und erstellen neuer Testfälle für die Saros Funktionalität.
Milestones and Planning
Milestone no. |
Past |
|
CW |
Goals |
accomplished |
1 |
|
- |
CW 21 |
refactor the package layout for STF and test cases |
accomplished |
2 |
|
- |
CW 22 |
setup eclipse1 and eclipse 2 |
accomplished |
2 |
|
- |
CW 22 |
undeploy hudson and deploy jenkins to tomcat |
accomplished |
3 |
|
- |
CW 23 |
run STF via Jenkins |
accomplished |
3 |
|
- |
CW 24 |
script polishing for STF runs via Jenkins |
in progress |
4 |
|
- |
CW 24 |
creation of presentation slides |
in progress |
5 |
|
- |
CW 24 |
integration of Testlink into CI |
in progress |
6 |
|
- |
CW 24 |
scripts and Jenkins jobs polishing |
in progress |
Weekly Status
Week 1 (CW 21)
Activities
- moved junit test cases to a new folder
- moved stf test cases to a new folder and changed the package names
- refactored the stf client implementation
- refactored the stf server implementation
Results
- commited changes to the SCM
Next Steps
- administer the saros vm cluster
Problems
- the stf client was full of hardcoded strings, e.g usernames, password etc.
Week 2 (CW 22)
Activities
- refactored stf
- created scripts for STF regression via Jenkins
Results
- scripts needs polishing e.g better cleanup and error recovery
Problems
- the stf can produce random results for each test