Hausarbeiten logo
Shop
Shop
Tutorials
De En
Shop
Tutorials
  • How to find your topic
  • How to research effectively
  • How to structure an academic paper
  • How to cite correctly
  • How to format in Word
Trends
FAQ
Zur Shop-Startseite › Informatik - Wirtschaftsinformatik

Open Source Continuous Integration und Testing

Titel: Open Source Continuous Integration und Testing

Studienarbeit , 2013 , 96 Seiten

Autor:in: Marco Berger (Autor:in), Janina Höchner (Autor:in), Sarah Kieninger (Autor:in), Robert Krombholz (Autor:in)

Informatik - Wirtschaftsinformatik

Leseprobe & Details   Blick ins Buch
Zusammenfassung Leseprobe Details

Heutzutage wird Software zunehmende von global verteilten Teams entwickelt, die aus mehreren Entwicklern bestehen. Obwohl bereits von vielen Entwicklerteams die Methodik der agilen Softwareentwicklung erfolgreich angewandt wird, gibt es bei der Integration der einzelnen Prozessschritte immer noch Lücken und Verbesserungsbedarf. Die einzelnen Werkzeuge zur Unterstützung der Softwareentwicklung und insbesondere zum Testen werden in vielen Projekten als Einzelsysteme verwendet, wie beispielsweise ein isoliertes Versionsverwaltungssystem zum Einfügen von Codeteilen in das Gesamtprojekt. Dies führt dazu, dass fehlerhafter Code leicht in den primären Entwicklungszweig integriert werden kann. Da die Integration der einzelnen Softwarebausteine häufig zu Fehlern und Problem führt, wird diese von den Entwicklern gerne möglichst weit hinausgezögert. Kurz vor einem Release kommt es häufig zu einem sogenannten „Big Bang“ also einem Fehler-Urknall, welches häufig zu kostenintensiven Nacharbeiten und Zeitverzögerungen führt. Dabei ist es offensichtlich, dass die relativen Kosten zur Fehlerbeseitigung unverhältnismäßig steigen, je später ein Fehler gefunden wird.

Um genau diesen „Big Bang“ zu vermeiden wird zunehmend das Konzept von Continuous Integration in der Softwareentwicklung angewandt. Eines der Prinzipien der agilen Softwareentwicklung ist es stets ein funktionales Produkt bereitzustellen. An genau dieses Prinzip soll in dieser Arbeit angeknüpft werden. Durch Automatisierung und vollständige Integration von Versionsverwaltung, Build-Prozessen, Unit-Testen, Quellcodeanalyse und ständige Auswertungen wird dieses Prinzip umgesetzt und gefördert. So kann bereits durch das Einchecken von Code eines Entwicklers ein hoch automatisierter Prozess angestoßen werden. Das Resultat eines solchen Prozess ist eine komplett gebaute Software sowie ausführliche Ergebnisse aus Tests und Quellcodeanalysen. Schon dieser kleine Ausschnitt zeigt, dass es sich um ein äußerst komplexes, aber auch gewinnbringendes und interessantes Konzept handelt.

Leseprobe


Inhaltsverzeichnis

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

Zielsetzung & Themen

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.

  • Marktanalyse von Open Source CI-Servern und Test-Frameworks.
  • Theoretische Grundlagen und Vorteile von Continuous Integration und Testautomatisierung.
  • Evaluierung von Softwarequalitätsmetriken und deren Einsatz.
  • Phasenmodell zur Implementierung von CI in ein Unternehmen.
  • Aufbau und Konfiguration einer beispielhaften CI-Infrastruktur.

Auszug aus dem Buch

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

Zusammenfassung der Kapitel

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.

Schlüsselwörter

Continuous Integration, Softwarequalität, Jenkins, Testautomatisierung, Versionsverwaltung, Softwaremetriken, JUnit, Sonar, Selenium, Build-Management, Apache Ant, Agile Softwareentwicklung, Codeanalyse, Continuous Delivery, Java

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit befasst sich mit dem Konzept der Continuous Integration (CI) als agilem Entwicklungsprozess und dessen praktischer Umsetzung mittels Open Source Werkzeugen.

Was sind die zentralen Themenfelder?

Zu den zentralen Themen gehören CI-Server, automatisierte Testverfahren (Unit- und Oberflächentests), Softwaremetriken zur Qualitätsmessung sowie der schrittweise Implementierungsprozess im Unternehmen.

Was ist das primäre Ziel der Arbeit?

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.

Welche wissenschaftliche Methode wird verwendet?

Es wird eine Kombination aus Literaturrecherche, Marktanalyse anhand von priorisierten Kriterien und der praktischen Erprobung der ausgewählten Tools in einer Testumgebung angewandt.

Was wird im Hauptteil behandelt?

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.

Welche Schlüsselwörter charakterisieren die Arbeit?

Continuous Integration, Softwarequalität, Testautomatisierung, Jenkins, JUnit, Selenium, Sonar und Softwaremetriken sind die prägenden Begriffe.

Warum wurde Jenkins als CI-Server ausgewählt?

Jenkins ging aufgrund seiner aktiven Community, der einfachen Installation, der Weboberfläche und der umfangreichen Plugin-Unterstützung als Favorit aus dem Vergleich hervor.

Welche Rolle spielt Sonar in der CI-Infrastruktur?

Sonar dient als zentrales Dashboard zur Messung und Überwachung von Softwaremetriken und zur Analyse der Codequalität während des Build-Prozesses.

Warum ist eine Testautomatisierung so wichtig?

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.

Was ist die Besonderheit bei der Verwendung von Selenium in diesem Projekt?

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.

Ende der Leseprobe aus 96 Seiten  - nach oben

Details

Titel
Open Source Continuous Integration und Testing
Hochschule
Duale Hochschule Baden-Württemberg, Stuttgart, früher: Berufsakademie Stuttgart  (Fakultät Wirtschaft)
Veranstaltung
Geschäftsprozesse und deren Umsetzung - Projekt Open Source
Autoren
Marco Berger (Autor:in), Janina Höchner (Autor:in), Sarah Kieninger (Autor:in), Robert Krombholz (Autor:in)
Erscheinungsjahr
2013
Seiten
96
Katalognummer
V209308
ISBN (eBook)
9783656371533
ISBN (Buch)
9783656371649
Sprache
Deutsch
Schlagworte
Jenkins Open Source Testing Software Testing Continuous Integration Sonar Ant
Produktsicherheit
GRIN Publishing GmbH
Arbeit zitieren
Marco Berger (Autor:in), Janina Höchner (Autor:in), Sarah Kieninger (Autor:in), Robert Krombholz (Autor:in), 2013, Open Source Continuous Integration und Testing, München, GRIN Verlag, https://www.hausarbeiten.de/document/209308
Blick ins Buch
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
Leseprobe aus  96  Seiten
Hausarbeiten logo
  • Facebook
  • Instagram
  • TikTok
  • Shop
  • Tutorials
  • FAQ
  • Zahlung & Versand
  • Über uns
  • Contact
  • Datenschutz
  • AGB
  • Impressum