Nov
07
2011

Mit Continuous Integration zur besseren Software-Qualität

Von Subversion über SCRUM zu Continuous Integration

Software-Qualität ist ein immer aktuelles und wichtiges Thema in der Software-Entwicklung. Vom Software-Hersteller ist eine gleichbleibende gute Qualität seiner Produkte gefordert, damit sie vom Kunden akzeptiert werden und entsprechendes Vertrauen gegenüber der Software aufgebaut werden kann.  Um den Ansprüchen der Qualität gerecht zu werden, kommen verschiedene Methoden, Techniken und Tools bei der SAPERION AG zum Einsatz. Mit der Einführung der SCRUM-Methodik vor etwas mehr als 3 Jahren konnte eine weitere Verbesserung der Software-Qualität erreicht werden,  u.a. mit dem Ergebnis, dass unsere Kunden uns auf den Platz 2 in der Akzeptanz der ECM-Herstellern in Deutschland gehoben haben. Versionsverwaltung der Programmcodes mit Tools wie Subversion und GIT sind bei SAPERION schon seit längerem Standard. Außerdem werden von unserem Development- und QA-Team Techniken wie Unit-Tests und automatische Build-Verfahren (Nightly Build) mit Smoke-Tests erfolgreich angewendet.

Mit „Continuous Integration“ (CI) gibt es ein weiteres, immer häufiger eingesetztes Verfahren zur Qualitätssicherung. In dieser Artikelserie möchte ich über unsere Erfahrungen bei der Einführung des CI-Verfahrens berichtet werden, dem nächsten evolutionären Schritt in der Qualitätssicherung bei SAPERION.

Ziele der Continuous Integration

Ziel der Einführung von CI ist vorrangig, die Integrität der gesamten Codebasis einer Anwendung automatisiert zu gewährleisten. Grund dafür ist, dass es bei Enterprise Produkten wie SAPERION für den einzelnen Entwickler oft schwierig ist, ein Gesamtüberblick über den Source-Code und ihren Funktionen zu haben. Typischerweise sieht ein Entwickler nur einen Teil des Systems, an dem er gerade arbeitet. So kann es passieren, dass durch Änderungen und Anpassungen Nebeneffekte entstehen, die dem Entwickelnden nicht bewusst sind und er sich daher der Tragweite nicht im Klaren ist. Dadurch kann es zu fehlerhaften oder unvollständigen Code kommen, was zu verhindern ist. Mit dem CI-Verfahren soll jeder Entwickler noch früher (nicht erst am nächsten Morgen mit gleichzeitigem Keksopfer) darüber informiert werden, wenn sein eingecheckter Code an bestimmten, von ihm eher nicht zu erwartenden Stellen Probleme verursacht.

Continuous Integration – der nächste Evolutionsschritt

Die Idee von „Continuous Integration“ (CI) ist relativ einfach. Jeder beteiligte Entwickler integriert gewöhnlich seine Änderungen und Weiterentwicklungen frühzeitig in der zentralen Versionsverwaltung (bei uns hauptsächlich Subversion). Das heißt, es wird versucht, große Anpassungen durch funktionsfähige, kleinere Anpassungen (Integrationen) einzubringen. Sobald der Entwickler die Änderungen in Subversion integriert, wird die Software vom CI-Server neu kompiliert und mittels automatischen Unit-, Integration- und Last-Tests vollständig getestet. Treten bei diesem Prozess durch die Integration Probleme auf, wird der verursachende Entwickler automatisch und zeitnah z.B. per E-Mail darüber benachrichtigt.

Vorteile von CI

Im Gegensatz zu herkömmlichen Build-Verfahren ergeben sich mit dem CI-Verfahren folgende Vorteile:

  • Integrationsprobleme werden laufend entdeckt und behoben – nicht erst kurz vor einer Auslieferung eines Releases
  • Frühe Warnung bei defekten / inkompatiblen Code
  • Alle Änderungen werden sofort und automatisch getestet
  • unmittelbare Rückmeldung für die Entwickler auf die Qualität, Funktionalität oder systemweite Auswirkungen des Codes, den sie schreiben
  • ständige Verfügbarkeit eines lauffähigen Entwicklungssystems

Fazit

Mit der Einführung von CI und der Etablierung der notwendigen Prozesse und Hilfsmittel soll die Qualität unserer Entwicklungen maßgeblich gesteigert werden, was auf alle Beteiligten bereits eine positive Auswirkung hat. Das Entwicklungsteam kann in den komplexen Systemen sicherer und effizienter arbeiten, da sämtliche Änderungen automatisiert getestet werden und damit eine weitere, spürbar verbesserte Qualität sichergestellt wird.

Im nächsten Artikel schreibe ich über die Realisierung von Continuous Integration bei der SAPERION AG mit Hilfe des CI-Server Hudson. Ich freue mich über ein Wiederlesen.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to MySpace

Download PDF
Written by Burkhard Weber in: company,deutsch | Tags: , , ,

No Comments »

RSS feed for comments on this post. TrackBack URL

Leave a comment


seven − 6 =

Theme: TheBuckmaker.com Web Templates | Bankwechsel Umschuldung, Iplexx IT Solutions