thumb

Software-Entwickler arbeiten üblicherweise an unterschiedlichen Teilen oder einzelnen Modulen eines Projekts. Im Integrationsprozess werden diese einzelnen Teilstücke zusammengefügt und auf ihr einwandfreies Zusammenspiel getestet. Die Aufgabe eines Build Servers wie der Open-Source-Software Hudson besteht nun darin, diesen Vorgang weitgehend zu automatisieren.

Zeitgesteuert oder nach jeder Änderung stösst der Build Server einen Build Job an, der ein lauffähiges Programm erstellt, die automatischen Tests ausführt und eine Reihe an Reports generiert. Schlägt dieser Job fehl, werden die entsprechenden Entwickler benachrichtigt, damit sie ihre Änderungen korrigieren können. Mit dieser Vorgehensweise lassen sich allfällige Probleme rasch erkennen und sofort beheben, wodurch die Qualität der Software steigt.

Je länger die Zeitspanne zwischen den einzelnen Integrationsphasen ausfällt, desto grösser sind auch die Änderungen und damit der Integrationsaufwand. Die so genannte Continuous Integration hilft, diese Zeitspanne möglichst kurz zu halten. Im besten Fall werden alle Änderungen an der Software unmittelbar in den zentralen Stamm integriert und automatisch getestet. Die dabei auf- tretenden Probleme können dadurch einer bestimmten Änderung zugewiesen und schnell behoben werden. Somit steigt die Produktivität der Entwickler, weil sie weniger Zeit für die Fehlersuche aufwenden müssen. Und die Lauffähigkeit des gesamten Systems ist fortwährend sichergestellt. Dadurch kann eine grössere und unberechenbare Integrationsphase vor einem Release und das damit verbundene Risiko vermieden werden.

Ein wichtiger Aspekt für das Funktionieren des Integrationsprozesses sind automatisierte Software-Tests. Sie geben Auskunft über nicht vorhergesehene Auswirkungen beim Zusammenspiel verschiedener Komponenten und reduzieren die Zahl der erst im fertigen Produkt erkannten Fehler. Teure Hotfixes lassen sich dadurch eher vermeiden. Die Software wird stabiler und qualitativ besser, was den Bedürfnissen von Kunden und Anwendern entspricht.

Hudson löst solche Aufgaben mit Bravour. Unter den Fittichen von Sun als Java-Web-Applikation entwickelt, kümmert er sich nicht nur um die Integration von Java-Projekten, sondern bietet Unterstützung für verschiedenste Sprachen. Die verständliche Benutzeroberfläche dient sowohl zur Konfiguration von Build Jobs als auch als Plattform für die generierten Dokumente. Der Zustand der einzelnen Projekte ist auf einen Blick ersichtlich. Grafische Übersichten zeigen den Verlauf diverser Qualitätsmerkmale wie die Anzahl Tests oder die Ergebnisse von automatischen Codeanalysen. Über das Berechtigungssystem lassen sich diese auch weiteren interessierten Personen zugänglich machen. Die jeweiligen Stakeholder erhalten so automatisch Informationen über den Fortschritt des Projektes. Erfahrungsgemäss lassen sich der Hudson Server und ein einfacher Prototypen-Job in etwa einer Stunde aufsetzen. Zudem erleichtert die sehr gute Direkthilfe den Einarbeitungsaufwand.

Dank einer aktiven Community erfährt Hudson permanent Verbesserungen. Der offene Quellcode fördert die Entwicklung von Plugins, welche eine Vielzahl an etablierten Build-, Publikations- und Reporting- Tools abdecken und Raum für eigene Erweiterungen bieten.

Bei Puzzle hat sich Hudson im täglichen Einsatz als zuverlässiger Gehilfe bewährt. Wo Qualität gefragt ist, steht die Open Source Software zu Diensten.

Pascal Zumkehr ist Software-Ingenieur beim Open-Source-Dienstleister Puzzle ITC.

105-105pascalzumkehr.jpg
Pascal Zumkehr