Studienarbeit, 2013
96 Seiten
1. Einführung
1.1. Problemstellung
1.2. Zielformulierung
1.3. Anforderungen an das Projekt
1.4. Struktur der Arbeit
1.5. Methodik
2. Einführung in Continuous Integration Systeme
2.1. Versionsverwaltung
2.2. Continuous Integration Server (Marktanalyse)
2.2.1. Ranking
2.3. Build-Werkzeuge
3. Testen in einem CI System
3.1. Grundlagen des Softwaretestens
3.2. Marktanalyse der einzelnen Testwerkzeuge
3.2.1. Modultest
3.2.2. Das Testen von Weboberflächen
4. Metriken der Softwarequalität
4.1. Sonar als Werkzeug zum Messen von Metriken
4.2. Weitere Coding Rule Engines
4.3. Richtiger Einsatz von Softwaremetriken
5. Veränderung der Testprozesse in einem CI System
5.1. Manuelles Testen
5.2. Testautomatisierung
5.3. Testen in einer Continuous Integration Lösung
5.4. Evaluation der verschiedenen Testprozesse
6. Vorgehen bei Einführung von CI in ein Unternehmen
6.1. Phase Eins: kein CI Server
6.2. Phase Zwei: Nightly Builds
6.3. Phase Drei: Nightly Builds und Automatisiertes Testen
6.4. Phase Vier: Einführung von Metriken
6.5. Phase Fünf: Erweiterung der Builds durch Deployment
6.6. Phase Sechs: Automatisierte Akkzeptanztests
6.7. Phase Sieben: Continuous Delivery
6.8. Zusammenspiel von Prozessen, Menschen und Werkzeugen
7. Konzept für eine Continuous Integration Infrastruktur
7.1. Aufbau einer Continuous Integration-Umgebung
7.1.1. Apache Tomcat als Applikationsserver
7.1.2. Subversion als Versionsverwaltungswerkzeug
7.1.3. Jenkins als Continuous Integration-Server
7.1.4. Ant als Buildmanagement-Werkzeug
7.1.5. Sonar und Selenium als Qualitätsmanagement- und Testwerkzeuge
7.1.6. Eclipse IDE auf dem Client
7.1.7. Java Webapplikation zur Demonstration
7.1.8. Umgebungsvariablen des Systems
7.1.9. Freigaben der Ports
7.1.10. Aufbau des Jenkins Workspace
7.2. Prozesse in der Umgebung
7.2.1. Einchecken von Änderungen an der Softwarekonfiguration
7.2.2. Abfragen von Änderungen am Repository
7.2.3. Bauen und Testen der Applikation
7.2.4. Bereitstellung der gebauten Applikation
8. Evaluierung
8.1. Continuous Integration verändert das Produkt
8.2. Continuous Integration verändert die Prozesse
9. Fazit und Empfehlung für das Unternehmen
10. Anhang
10.1. Anhangverzeichnis
11. Quellenverzeichnis
11.1. Literaturverzeichnis
11.2. Internetquellen
Die Arbeit hat das Ziel, das Konzept und die Hintergründe einer Continuous Integration (CI) Lösung für ein Unternehmen darzustellen. Dabei soll sowohl theoretisch als auch praktisch anhand eines Prototypen aufgezeigt werden, wie durch die Automatisierung von Prozessen die Softwarequalität verbessert und die Effizienz in der Entwicklung gesteigert werden kann.
Continuous Integration Server (Marktanalyse)
Der Continuous Integration Server ist eine Anwendung, die bei Änderung des Quellcodes in der Versionsverwaltung einen automatischen Build des gesamten Projekts auslöst. In dieser Anwendung lässt sich eine Vielzahl von Softwareprojekten verwalten. Dabei stellt der Continuous Integration Server die zentrale Schnittstelle zur Verwaltung der Projekte und der in der Umgebung des Servers integrierten Werkzeuge dar. Die Abbildung 2 zeigt exemplarisch die Oberfläche des CI-Servers Jenkins mit den darin angelegten Jobs (hierarchische Elemente zur Verwaltung von verschiedenen Projekten).
Bei der Wahl eines Continuous Integration Servers sollte auf verschiedene Kriterien geachtet werden. Hierbei sollte vor allem zwischen funktionalen und nicht-funktionalen Kriterien unterschieden werden. Aus den Anforderungen des Auftrag gebenden Unternehmens ergibt sich ein besonderer Fokus auf die funktionalen Kriterien:
• Kompatibilität mit der vorhandenen Infrastruktur
• Funktionsumfang und Erweiterbarkeit
• Optimierung für bestimmte Szenarien
1. Einführung: Definition der Problemstellung und Zielsetzung der Arbeit, inklusive der methodischen Vorgehensweise bei der Untersuchung von CI-Systemen.
2. Einführung in Continuous Integration Systeme: Theoretische Einführung in das Konzept der Continuous Integration sowie ein Vergleich der gängigen Open Source CI-Server.
3. Testen in einem CI System: Vermittlung der Grundlagen des Softwaretestens (Unit- und Systemtests) sowie eine Marktanalyse von Testwerkzeugen für unterschiedliche Testmethoden.
4. Metriken der Softwarequalität: Erläuterung der Bedeutung von Produktmetriken und Vorstellung von Werkzeugen wie Sonar zur Qualitätssicherung.
5. Veränderung der Testprozesse in einem CI System: Darstellung der Entwicklung von manuellen Prozessen hin zu automatisierten Testabläufen in einer CI-Lösung.
6. Vorgehen bei Einführung von CI in ein Unternehmen: Phasenmodell zur schrittweisen Einführung von Continuous Integration in einem Unternehmen.
7. Konzept für eine Continuous Integration Infrastruktur: Dokumentation des Aufbaus einer beispielhaften CI-Umgebung inklusive der Konfiguration der verwendeten Komponenten.
8. Evaluierung: Zusammenfassende Bewertung der Auswirkungen von CI auf Produkt und Prozesse im Unternehmen.
9. Fazit und Empfehlung für das Unternehmen: Abschließende Betrachtung und Handlungsempfehlungen für das Unternehmen basierend auf den gewonnenen Erkenntnissen.
Continuous Integration, Softwarequalität, Jenkins, Testautomatisierung, Versionsverwaltung, Softwaremetriken, JUnit, Sonar, Selenium, Build-Management, Apache Ant, Agile Softwareentwicklung, Codeanalyse, Continuous Delivery, Java
Die Arbeit befasst sich mit dem Konzept der Continuous Integration (CI) als agilem Entwicklungsprozess und dessen praktischer Umsetzung mittels Open Source Werkzeugen.
Zu den zentralen Themen gehören CI-Server, automatisierte Testverfahren (Unit- und Oberflächentests), Softwaremetriken zur Qualitätsmessung sowie der schrittweise Implementierungsprozess im Unternehmen.
Das Hauptziel ist die Darstellung der Hintergründe einer CI-Lösung für ein Unternehmen, flankiert durch die praktische Entwicklung eines Prototypen, um die Vorteile der Automatisierung aufzuzeigen.
Es wird eine Kombination aus Literaturrecherche, Marktanalyse anhand von priorisierten Kriterien und der praktischen Erprobung der ausgewählten Tools in einer Testumgebung angewandt.
Der Hauptteil gliedert sich in die theoretischen Grundlagen von CI, den Vergleich von CI-Servern, die Analyse von Test-Frameworks (Unit-Testing und UI-Testing), die Anwendung von Softwaremetriken sowie die praktische Implementierung einer CI-Infrastruktur.
Continuous Integration, Softwarequalität, Testautomatisierung, Jenkins, JUnit, Selenium, Sonar und Softwaremetriken sind die prägenden Begriffe.
Jenkins ging aufgrund seiner aktiven Community, der einfachen Installation, der Weboberfläche und der umfangreichen Plugin-Unterstützung als Favorit aus dem Vergleich hervor.
Sonar dient als zentrales Dashboard zur Messung und Überwachung von Softwaremetriken und zur Analyse der Codequalität während des Build-Prozesses.
Sie reduziert manuelle Aufwände, ermöglicht ein schnelles Feedback für Entwickler und erhöht die Gesamteffektivität und Qualitätssicherung innerhalb des Entwicklungsprojekts.
Für das Projekt wurde die Selenium IDE genutzt, um Skripte per Aufnahmeverfahren zu erstellen, die anschließend als JUnit-Tests in den Build-Prozess integriert wurden.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

