SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
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

Was ist angesagt?

Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertGFU Cyrus AG
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Creasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVCCreasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVCCreasoft AG
 

Was ist angesagt? (6)

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

Andere mochten auch

Surf Castelldefels -> 15 Abril 09
Surf Castelldefels -> 15 Abril 09Surf Castelldefels -> 15 Abril 09
Surf Castelldefels -> 15 Abril 09MarcSentis
 
Backlite bangle's 07 02-2011
Backlite bangle's 07 02-2011Backlite bangle's 07 02-2011
Backlite bangle's 07 02-2011Surbhita Singh
 
Dossier María de Buenos Aires
Dossier María de Buenos AiresDossier María de Buenos Aires
Dossier María de Buenos AiresArtandmusicGobelin
 
Semestre en el bachilleres no
Semestre en el bachilleres noSemestre en el bachilleres no
Semestre en el bachilleres nohfvbhfdjsud
 
produccion alimentaria
produccion alimentariaproduccion alimentaria
produccion alimentariaJulito Xavez
 
Carteras, wallets y bolígrafos
Carteras, wallets y bolígrafosCarteras, wallets y bolígrafos
Carteras, wallets y bolígrafosRacos028
 
Diferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorDiferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorjosevilera
 
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP) VS PUEBLO LORETANO
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP)  VS  PUEBLO LORETANOROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP)  VS  PUEBLO LORETANO
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP) VS PUEBLO LORETANOreynaldo19400000
 
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifmSehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifmifm electronic gmbh
 
IT und Telekommunikation im Care-Sector
IT und Telekommunikation im Care-SectorIT und Telekommunikation im Care-Sector
IT und Telekommunikation im Care-SectorPeter Wolff
 
Como Generar Trafico Web
Como Generar Trafico WebComo Generar Trafico Web
Como Generar Trafico WebAda Limas
 
Enamel bangle's 29 01-2011
Enamel bangle's 29 01-2011Enamel bangle's 29 01-2011
Enamel bangle's 29 01-2011Surbhita Singh
 
Beamer mit einem Windows Tablet kabellos verbinden
Beamer mit einem Windows Tablet kabellos verbindenBeamer mit einem Windows Tablet kabellos verbinden
Beamer mit einem Windows Tablet kabellos verbindenMartina Grosty
 
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015ifm electronic gmbh
 
Exchange server 2010
Exchange server 2010Exchange server 2010
Exchange server 2010Luis Maza
 

Andere mochten auch (20)

Surf Castelldefels -> 15 Abril 09
Surf Castelldefels -> 15 Abril 09Surf Castelldefels -> 15 Abril 09
Surf Castelldefels -> 15 Abril 09
 
Backlite bangle's 07 02-2011
Backlite bangle's 07 02-2011Backlite bangle's 07 02-2011
Backlite bangle's 07 02-2011
 
Breitband-Verfuegbarkeit Deutschland
Breitband-Verfuegbarkeit DeutschlandBreitband-Verfuegbarkeit Deutschland
Breitband-Verfuegbarkeit Deutschland
 
Preguntas
PreguntasPreguntas
Preguntas
 
Dossier María de Buenos Aires
Dossier María de Buenos AiresDossier María de Buenos Aires
Dossier María de Buenos Aires
 
Semestre en el bachilleres no
Semestre en el bachilleres noSemestre en el bachilleres no
Semestre en el bachilleres no
 
Historia del sena brayan copia
Historia del sena brayan   copiaHistoria del sena brayan   copia
Historia del sena brayan copia
 
produccion alimentaria
produccion alimentariaproduccion alimentaria
produccion alimentaria
 
Carteras, wallets y bolígrafos
Carteras, wallets y bolígrafosCarteras, wallets y bolígrafos
Carteras, wallets y bolígrafos
 
Diferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generadorDiferentes tipos de máquina para acoplar a un generador
Diferentes tipos de máquina para acoplar a un generador
 
Kannst du ....
Kannst du ....Kannst du ....
Kannst du ....
 
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP) VS PUEBLO LORETANO
ROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP)  VS  PUEBLO LORETANOROSA MARÍA ORTIZ (MINEN) Y MARTÍN PÉREZ (CONFIEP)  VS  PUEBLO LORETANO
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
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifmSehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
Sehen, was läuft. Mit den neuen kapazitiven Sensoren von ifm
 
IT und Telekommunikation im Care-Sector
IT und Telekommunikation im Care-SectorIT und Telekommunikation im Care-Sector
IT und Telekommunikation im Care-Sector
 
02 anlage 2
02 anlage 202 anlage 2
02 anlage 2
 
Como Generar Trafico Web
Como Generar Trafico WebComo Generar Trafico Web
Como Generar Trafico Web
 
Enamel bangle's 29 01-2011
Enamel bangle's 29 01-2011Enamel bangle's 29 01-2011
Enamel bangle's 29 01-2011
 
Beamer mit einem Windows Tablet kabellos verbinden
Beamer mit einem Windows Tablet kabellos verbindenBeamer mit einem Windows Tablet kabellos verbinden
Beamer mit einem Windows Tablet kabellos verbinden
 
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
Automatisierungstechnik für die Werkzeugmaschinenindustrie Katalog 2014/2015
 
Exchange server 2010
Exchange server 2010Exchange server 2010
Exchange server 2010
 

Ähnlich wie Softwaretests: Werkzeuge zur Automatisierung

Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeNico Orschel
 
Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Toolsgedoplan
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Nico Orschel
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Nico Orschel
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Wiest Simon
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testenmradamlacey
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Teambrandts
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...Marc Müller
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklungjlink
 
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungMarc Müller
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 

Ähnlich wie Softwaretests: Werkzeuge zur Automatisierung (20)

Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...
Basta Spring 2017 - DevOps: Automatisieren der Deployment-Prozesse mit Te...
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungDevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
DevDay 2016 Keynote - Die Evolution agiler Software Entwicklung
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 

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

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

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