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 days CW Goals target accomplished wrench
1 DONE - CW 21 refactor the package layout for STF and test cases accomplished
2 NEW - CW 22 setup eclipse1 and eclipse 2 accomplished
2 NEW - CW 22 undeploy hudson and deploy jenkins to tomcat accomplished
3 NEW - CW 23 run STF via Jenkins accomplished
3 NEW - CW 24 script polishing for STF runs via Jenkins in progress
4 NEW - CW 24 creation of presentation slides in progress
5 NEW - CW 24 integration of Testlink into CI in progress
6 NEW - 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
Topic revision: r7 - 10 Nov 2011, StefanRossbach
 
  • Printable version of this topic (p) Printable version of this topic (p)