SlideShare ist ein Scribd-Unternehmen logo
Softwaretests

               Werkzeuge zur Automatisierung

                              für


               Thementag „Wer testet, ist feige“

                          24.06.2009



                            Autor:
                       Markus Alvermann




Seite 2 / 39
Agenda

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 3 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 4 / 39
Motivation I

      Ziel: Automatisiertes Testen

      Aufwandsreduzierung

      Homogene Testumgebung

      Frühes Erkennen von Fehlern

      Mögliche Lösung: Continuous Integration




Seite 5 / 39
Motivation II



                  Versionskontrolle

    Entwickler             lauscht
                                                   Build-Tool

                     Continuous
                 Integration Server
                                                      Tests
    Reports                          installiert


                       Application Server


Seite 6 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 7 / 39
Versionsverwaltung: CVS vs. SVN I

      Concurrent Versions System (CVS)

      Subversion (SVN)

      Server-Client-Architekturen

      Verwalten der Änderungen

      Rechtesystem

      Löschen von Verzeichnissen

      Verschieben von Dateien




Seite 8 / 39
Versionsverwaltung: CVS vs. SVN II
      Branch-Konzept

      Check-In, Check-Out

      Fazit: SVN beseitigt viele Schwächen von CVS




Seite 9 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 10 / 39
Build-Tools – Ant vs. Maven2 I
      Tools für die automatische Erstellung von Software

      Steuerung durch xml-Dateien

      Maven2: Convention over Configuration

      Tasks vs. Plugins

      Auflösen von Abhängigkeiten

      Fazit




Seite 11 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 12 / 39
Unittests – JUnit I
      Framework für automatisierte Unittests von Java-Programmen

      Testgetriebene Entwicklung („Extreme Testing“)

                Vorgehen: Zuerst die Testklasse schreiben, dann die Klasse gegen
                          die getestet werden soll

      Tests sind in Java programmierte Klassen

      Definition per Annotations

      Tests können zu Testsuiten zusammengefasst werden

      Zwei Testergebnisse: grün und rot

      Reporterstellung


Seite 13 / 39
Unittests – JUnit II




Seite 14 / 39
Unittests - EasyMock
      Motivation

      Programmbibliothek zum Erstellen von Mock-Objekten

      Isolation von Units durch Mock-Objekte

      Mock-Objekt-Erzeugung automatisch und dynamisch zur Laufzeit

      Reihenfolge

      Methoden: expect, replay und verify

      Typische Mock-Objekte




Seite 15 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 16 / 39
GUI-Tests- Einführung
      Ziel: Automatisiertes Testen von Graphical User Interfaces (kurz: GUI)

      Standalone-Applikationen (bspw. Swing, Applets) und Webapplikationen

      Aufnehmen von Tests vs. Programmieren von Tests

      Was wird getestet:

                Formulareingaben

                Funktioniert der Workflow?

                Greifen die Validierungen?

                Kompatibilität (Webapplikationen)




Seite 17 / 39
GUI-Tests- Selenium I
      Testframework für Webapplikationen

      Drei Komponenten:

                Selenium IDE

                Selenium Remote Control (RC)

                Selenium Grid

      Aufzeichnen von Scripts mit Selenium IDE

      Exportieren von aufgezeichneten Scripts und Ausführen mit Selenium RC
      oder Selenium Grid




Seite 18 / 39
GUI-Tests- Selenium II




Seite 19 / 39
GUI-Tests- Selenium III




Seite 20 / 39
GUI-Tests- Jemmy I
      Java-Bibliothek zum Testen von Swing- und AWT-Applikationen
      und Applets

      Tests werden in Java geschrieben und können dann bspw. mit
      JUnit ausgeführt werden

      Test läuft in der gleichen JVM wie die Applikation

      Testablauf

                Applikation starten

                Fenster finden

                Komponente finden und Aktionen auf dieser Komponente ausführen




Seite 21 / 39
GUI-Tests- Jemmy II
      Kurzer Beispielcode:




Seite 22 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 23 / 39
Continuous Integration Server - Einführung
      Applikation, welche die kontinuierliche Integration von Software
      vereinfacht und automatisiert

      Regelmäßige Neu-builden und Testen einer Software

      Zentrale Stelle für die Integration von Quellcode

      Der CIS entscheidet, ob eine Integration erfolgreich war

      Nur sinnvoll, wenn der Build zu 100% automatisiert abläuft
      (Kompilieren, Verpacken, Testen)

      Weitere Aufgaben: Erzeugen von Reports, Benachrichtigungen
      versenden, Snapshots bilden, Integrations- & Akzeptanztests auf
      einer produktionsähnlichen Umgebung



Seite 24 / 39
Continuous Integration Server - Einführung
      Voraussetzung: Softwareprojekt ist in einem zentralen Repository abgelegt

      Weiteres Vorgehen (bspw. Neu-Builden, Testen, Installieren) einstellbar




Seite 25 / 39
Continuous Integration Server – Hudson I
      In Java geschrieben, läuft in einem Servlet-Container

      Unterstützung im Lieferumfang

               Quellcodeverwaltungen wie Subversion und CVS
               Build-Tools wie Ant und Maven
               Unittest-Tools wie JUnit und TestNG
               Reporterstellung
               Benachrichtigung per RSS, email, IM

      Einfache Installation

      Einfache Konfiguration über Web-GUI (per Assistent)

      Zeitpunkt für neue Builds anhand verschiedener Parameter möglich



Seite 26 / 39
Continuous Integration Server – Hudson II
      Durch Plugins erweiterbar (selbstgeschrieben vs. zur Verfügung stehende)

      Benutzerverwaltung
      über Plugin
      (DB-basiert)




Seite 27 / 39
Continuous Integration Server – TeamCity I
      Java-Applikation für Servlet-Container

      Entwickelt von JetBrains, daher sehr gute Integration in IntelliJIdea

      Kommerzielle Lizenz, aber freie Lizenz mit einigen Einschränkungen
      erhältlich

      Konfiguration von Builds im Server, Ausführung in einem Build-Agenten

      Toolunterstützung: diverse Versionsverwaltungen, diverse Build-Tools,
      .NET-Unterstützung, umfangreiche Statistiken, Unterstützung mehrerer
      JDKs in einem Projekt, Benachrichtigungen, Reports, Quellcodeanalyse




Seite 28 / 39
Continuous Integration Server – TeamCity II
      Konfiguration von Projekten in 2 Schritten:

                Projekt anlegen (Name, Beschreibung, Build-Nummerierung)

                Projekt konfigurieren

                    Versionsverwaltungsinformationen

                    Build-Runner

                    Build-Trigger

                    Projekt-Abhängigkeiten

                    Umgebungsvariablen und System-Properties

                    Anforderungen an die Agents



Seite 29 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 30 / 39
Defect-Tracking-Tools - Einführung
      Erfassen von Programmfehlern

      Qualitätssicherung

      Verbesserung der Kommunikation

      Zentrales Archiv

      Zuständigkeiten

      Übersicht über den Gesamtzustand eines Projektes




Seite 31 / 39
Defect-Tracking-Tools – Mantis I
      Bugtracker und Feature-Request-Werkzeug

      Basiert auf PHP

      Server-Client-Architektur

      Einfache Konfiguration

      Einteilung in Projekte und Unterprojekte

      Ebenenbasierte Zugriffsrechte

      Fehler in Problemberichten

      Datenverwaltung in Datenbank

      Filter


Seite 32 / 39
Defect-Tracking-Tools – Mantis II




Seite 33 / 39
Defect-Tracking-Tools – Mantis III




Seite 34 / 39
Defect-Tracking-Tools – Jira I
      Bugtracker und Projekt-Management-Werkzeug

      Atlassian

      J2EE

      Server-Client-Architektur

      Hohe Flexibilität

      Erweiterbar

      Filter

      Personalisierte Startseite (Dashboard)

      Einstellbarer Workflow


Seite 35 / 39
Defect-Tracking-Tools – Jira II




Seite 36 / 39
Wo sind wir

      Motivation

      Versionsverwaltung

      Build-Tools

      Unit-Tests

      GUI-Tests

      Continuous Integration Server

      Defect-Tracking-Tools

      Fazit


Seite 37 / 39
Fazit
      Vorstellung gängiger Tools

      Auswahl der geeigneten Werkzeuge

      Automatisiertes Testen führt in der Regel zu einem schnellen
      Erkennen und Beseitigen von Fehlern

      Um einen CIS effizient einzusetzen, sollten alle in diesem Vortrag
      vorgestellten Testwerkzeuge verwendet werden, da ansonsten die
      Testkette unvollständig ist

      Hoher Initialaufwand, langfristig geringerer Wartungs- und Pflegeaufwand




Seite 38 / 39
Referenzen
cvs:            http://www.nongnu.org/cvs/
svn:            http://subversion.tigris.org/
Apache Ant:     http://ant.apache.org/
Apache Maven:   http://maven.apache.org/
JUnit:          http://www.junit.org/
EasyMock:       http://easymock.org/
Selenium:       http://seleniumhq.org/
Jemmy:          https://jemmy.dev.java.net/
Hudson:         https://hudson.dev.java.net/
TeamCity:       http://www.jetbrains.com/teamcity/
Mantis:         http://www.mantisbt.org/
Jira:           http://www.atlassian.com/software/jira/




Seite 39 / 39
www.iks-gmbh.com




Seite 40 / 39

Weitere ähnliche Inhalte

PPT
Kontinuierliche Integration
PPTX
Was ist eigentlich eine Unit?
PDF
Versionskontrolle mit Apache Subversion
PDF
PPTX
Creasoft Akademie - Windows 8 aus Entwicklersicht
PDF
Software Produktlinien: Einführung und Überblick (Vortrag)
PDF
Softwarequalitätssicherung mit Continuous Integration Tools
PDF
Cross-Apps-Entwicklung für iPhone, Android und Co.
Kontinuierliche Integration
Was ist eigentlich eine Unit?
Versionskontrolle mit Apache Subversion
Creasoft Akademie - Windows 8 aus Entwicklersicht
Software Produktlinien: Einführung und Überblick (Vortrag)
Softwarequalitätssicherung mit Continuous Integration Tools
Cross-Apps-Entwicklung für iPhone, Android und Co.

Was ist angesagt? (6)

PDF
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
PPTX
Creasoft - Software QS Review
PDF
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
PPTX
Creasoft - Software QS
PDF
Softwarequalität Entwicklung - Test - Wartung
PPTX
Creasoft Akademie - Deep Dive into ASP.NET MVC
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Creasoft - Software QS Review
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Creasoft - Software QS
Softwarequalität Entwicklung - Test - Wartung
Creasoft Akademie - Deep Dive into ASP.NET MVC
Anzeige

Andere mochten auch (20)

PPT
Surf Castelldefels -> 15 Abril 09
XLS
Backlite bangle's 07 02-2011
PDF
Breitband-Verfuegbarkeit Deutschland
DOCX
Preguntas
PDF
Dossier María de Buenos Aires
PPTX
Semestre en el bachilleres no
PPTX
Historia del sena brayan copia
DOCX
produccion alimentaria
PPTX
Carteras, wallets y bolígrafos
DOC
Diferentes tipos de máquina para acoplar a un generador
ODP
Kannst du ....
PDF
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP) VS PUEBLO LORETANO
PDF
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
PDF
IT und Telekommunikation im Care-Sector
PPTX
Como Generar Trafico Web
XLS
Enamel bangle's 29 01-2011
PPTX
Beamer mit einem Windows Tablet kabellos verbinden
PDF
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
PPT
Exchange server 2010
Surf Castelldefels -> 15 Abril 09
Backlite bangle's 07 02-2011
Breitband-Verfuegbarkeit Deutschland
Preguntas
Dossier María de Buenos Aires
Semestre en el bachilleres no
Historia del sena brayan copia
produccion alimentaria
Carteras, wallets y bolígrafos
Diferentes tipos de máquina para acoplar a un generador
Kannst du ....
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP) VS PUEBLO LORETANO
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
IT und Telekommunikation im Care-Sector
Como Generar Trafico Web
Enamel bangle's 29 01-2011
Beamer mit einem Windows Tablet kabellos verbinden
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
Exchange server 2010
Anzeige

Ähnlich wie Softwaretests: Werkzeuge zur Automatisierung (20)

PDF
Continuous Integration mit Hudson
PDF
Softwarequalitätssicherung mit Continuous Integration Tools
PDF
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
PDF
BED-Con - Tools für den täglichen Kampf als Entwickler
KEY
CI und Android - Wie geht das? MTC2010
PPT
Development Toolbox
PPT
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
PDF
Continuous Integration / Deployment mit Jenkins CI
PDF
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
PDF
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
PPTX
Advanced Continuous Integration
KEY
IntelliJ für Flex
PDF
Regressionstests in Webprojekten - IPC12SE
PDF
ColdFusion gibt's das noch?
PDF
OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
PDF
Automatisiertes webauftritt testen
PDF
Gtug nov 2010
PDF
PDF
Regressionstests in Webprojekten
PDF
Continuous Integration für PHP
Continuous Integration mit Hudson
Softwarequalitätssicherung mit Continuous Integration Tools
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
BED-Con - Tools für den täglichen Kampf als Entwickler
CI und Android - Wie geht das? MTC2010
Development Toolbox
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Continuous Integration / Deployment mit Jenkins CI
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
Advanced Continuous Integration
IntelliJ für Flex
Regressionstests in Webprojekten - IPC12SE
ColdFusion gibt's das noch?
OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
Automatisiertes webauftritt testen
Gtug nov 2010
Regressionstests in Webprojekten
Continuous Integration für PHP

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

PDF
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
PDF
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
PDF
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
PDF
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
PDF
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
PDF
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
PDF
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
PDF
Thementag 2022 04 ML auf die Schiene gebracht.pdf
PDF
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
PDF
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
PDF
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
PDF
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
PDF
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
PDF
Big Data und Machine Learning - Wer braucht das schon!?
PDF
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
PDF
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
PDF
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
PDF
Big Data und Machine Learning - Wer braucht das schon!?
PDF
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
PDF
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Big Data und Machine Learning - Wer braucht das schon!?
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Big Data und Machine Learning - Wer braucht das schon!?
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...

Softwaretests: Werkzeuge zur Automatisierung

  • 1. Softwaretests Werkzeuge zur Automatisierung für Thementag „Wer testet, ist feige“ 24.06.2009 Autor: Markus Alvermann Seite 2 / 39
  • 2. Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 3 / 39
  • 3. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 4 / 39
  • 4. Motivation I Ziel: Automatisiertes Testen Aufwandsreduzierung Homogene Testumgebung Frühes Erkennen von Fehlern Mögliche Lösung: Continuous Integration Seite 5 / 39
  • 5. Motivation II Versionskontrolle Entwickler lauscht Build-Tool Continuous Integration Server Tests Reports installiert Application Server Seite 6 / 39
  • 6. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 7 / 39
  • 7. Versionsverwaltung: CVS vs. SVN I Concurrent Versions System (CVS) Subversion (SVN) Server-Client-Architekturen Verwalten der Änderungen Rechtesystem Löschen von Verzeichnissen Verschieben von Dateien Seite 8 / 39
  • 8. Versionsverwaltung: CVS vs. SVN II Branch-Konzept Check-In, Check-Out Fazit: SVN beseitigt viele Schwächen von CVS Seite 9 / 39
  • 9. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 10 / 39
  • 10. Build-Tools – Ant vs. Maven2 I Tools für die automatische Erstellung von Software Steuerung durch xml-Dateien Maven2: Convention over Configuration Tasks vs. Plugins Auflösen von Abhängigkeiten Fazit Seite 11 / 39
  • 11. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 12 / 39
  • 12. Unittests – JUnit I Framework für automatisierte Unittests von Java-Programmen Testgetriebene Entwicklung („Extreme Testing“) Vorgehen: Zuerst die Testklasse schreiben, dann die Klasse gegen die getestet werden soll Tests sind in Java programmierte Klassen Definition per Annotations Tests können zu Testsuiten zusammengefasst werden Zwei Testergebnisse: grün und rot Reporterstellung Seite 13 / 39
  • 13. Unittests – JUnit II Seite 14 / 39
  • 14. Unittests - EasyMock Motivation Programmbibliothek zum Erstellen von Mock-Objekten Isolation von Units durch Mock-Objekte Mock-Objekt-Erzeugung automatisch und dynamisch zur Laufzeit Reihenfolge Methoden: expect, replay und verify Typische Mock-Objekte Seite 15 / 39
  • 15. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 16 / 39
  • 16. GUI-Tests- Einführung Ziel: Automatisiertes Testen von Graphical User Interfaces (kurz: GUI) Standalone-Applikationen (bspw. Swing, Applets) und Webapplikationen Aufnehmen von Tests vs. Programmieren von Tests Was wird getestet: Formulareingaben Funktioniert der Workflow? Greifen die Validierungen? Kompatibilität (Webapplikationen) Seite 17 / 39
  • 17. GUI-Tests- Selenium I Testframework für Webapplikationen Drei Komponenten: Selenium IDE Selenium Remote Control (RC) Selenium Grid Aufzeichnen von Scripts mit Selenium IDE Exportieren von aufgezeichneten Scripts und Ausführen mit Selenium RC oder Selenium Grid Seite 18 / 39
  • 20. GUI-Tests- Jemmy I Java-Bibliothek zum Testen von Swing- und AWT-Applikationen und Applets Tests werden in Java geschrieben und können dann bspw. mit JUnit ausgeführt werden Test läuft in der gleichen JVM wie die Applikation Testablauf Applikation starten Fenster finden Komponente finden und Aktionen auf dieser Komponente ausführen Seite 21 / 39
  • 21. GUI-Tests- Jemmy II Kurzer Beispielcode: Seite 22 / 39
  • 22. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 23 / 39
  • 23. Continuous Integration Server - Einführung Applikation, welche die kontinuierliche Integration von Software vereinfacht und automatisiert Regelmäßige Neu-builden und Testen einer Software Zentrale Stelle für die Integration von Quellcode Der CIS entscheidet, ob eine Integration erfolgreich war Nur sinnvoll, wenn der Build zu 100% automatisiert abläuft (Kompilieren, Verpacken, Testen) Weitere Aufgaben: Erzeugen von Reports, Benachrichtigungen versenden, Snapshots bilden, Integrations- & Akzeptanztests auf einer produktionsähnlichen Umgebung Seite 24 / 39
  • 24. Continuous Integration Server - Einführung Voraussetzung: Softwareprojekt ist in einem zentralen Repository abgelegt Weiteres Vorgehen (bspw. Neu-Builden, Testen, Installieren) einstellbar Seite 25 / 39
  • 25. Continuous Integration Server – Hudson I In Java geschrieben, läuft in einem Servlet-Container Unterstützung im Lieferumfang  Quellcodeverwaltungen wie Subversion und CVS  Build-Tools wie Ant und Maven  Unittest-Tools wie JUnit und TestNG  Reporterstellung  Benachrichtigung per RSS, email, IM Einfache Installation Einfache Konfiguration über Web-GUI (per Assistent) Zeitpunkt für neue Builds anhand verschiedener Parameter möglich Seite 26 / 39
  • 26. Continuous Integration Server – Hudson II Durch Plugins erweiterbar (selbstgeschrieben vs. zur Verfügung stehende) Benutzerverwaltung über Plugin (DB-basiert) Seite 27 / 39
  • 27. Continuous Integration Server – TeamCity I Java-Applikation für Servlet-Container Entwickelt von JetBrains, daher sehr gute Integration in IntelliJIdea Kommerzielle Lizenz, aber freie Lizenz mit einigen Einschränkungen erhältlich Konfiguration von Builds im Server, Ausführung in einem Build-Agenten Toolunterstützung: diverse Versionsverwaltungen, diverse Build-Tools, .NET-Unterstützung, umfangreiche Statistiken, Unterstützung mehrerer JDKs in einem Projekt, Benachrichtigungen, Reports, Quellcodeanalyse Seite 28 / 39
  • 28. Continuous Integration Server – TeamCity II Konfiguration von Projekten in 2 Schritten: Projekt anlegen (Name, Beschreibung, Build-Nummerierung) Projekt konfigurieren Versionsverwaltungsinformationen Build-Runner Build-Trigger Projekt-Abhängigkeiten Umgebungsvariablen und System-Properties Anforderungen an die Agents Seite 29 / 39
  • 29. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 30 / 39
  • 30. Defect-Tracking-Tools - Einführung Erfassen von Programmfehlern Qualitätssicherung Verbesserung der Kommunikation Zentrales Archiv Zuständigkeiten Übersicht über den Gesamtzustand eines Projektes Seite 31 / 39
  • 31. Defect-Tracking-Tools – Mantis I Bugtracker und Feature-Request-Werkzeug Basiert auf PHP Server-Client-Architektur Einfache Konfiguration Einteilung in Projekte und Unterprojekte Ebenenbasierte Zugriffsrechte Fehler in Problemberichten Datenverwaltung in Datenbank Filter Seite 32 / 39
  • 33. Defect-Tracking-Tools – Mantis III Seite 34 / 39
  • 34. Defect-Tracking-Tools – Jira I Bugtracker und Projekt-Management-Werkzeug Atlassian J2EE Server-Client-Architektur Hohe Flexibilität Erweiterbar Filter Personalisierte Startseite (Dashboard) Einstellbarer Workflow Seite 35 / 39
  • 35. Defect-Tracking-Tools – Jira II Seite 36 / 39
  • 36. Wo sind wir Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous Integration Server Defect-Tracking-Tools Fazit Seite 37 / 39
  • 37. Fazit Vorstellung gängiger Tools Auswahl der geeigneten Werkzeuge Automatisiertes Testen führt in der Regel zu einem schnellen Erkennen und Beseitigen von Fehlern Um einen CIS effizient einzusetzen, sollten alle in diesem Vortrag vorgestellten Testwerkzeuge verwendet werden, da ansonsten die Testkette unvollständig ist Hoher Initialaufwand, langfristig geringerer Wartungs- und Pflegeaufwand Seite 38 / 39
  • 38. Referenzen cvs: http://www.nongnu.org/cvs/ svn: http://subversion.tigris.org/ Apache Ant: http://ant.apache.org/ Apache Maven: http://maven.apache.org/ JUnit: http://www.junit.org/ EasyMock: http://easymock.org/ Selenium: http://seleniumhq.org/ Jemmy: https://jemmy.dev.java.net/ Hudson: https://hudson.dev.java.net/ TeamCity: http://www.jetbrains.com/teamcity/ Mantis: http://www.mantisbt.org/ Jira: http://www.atlassian.com/software/jira/ Seite 39 / 39