SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Softwarequalitätssicherung
mit Continuous Integration Tools



Treffpunkt Semicolon, 26.10.2010, GFU Cyrus AG

Dirk Weil, GEDOPLAN GmbH
Entwicklung von Informationssystemen
30+ Jahre am Markt
~35 Mitarbeiter
Beratung und Entwicklung
Maßgeschneiderte Lösungen              GEDOPLAN
Standardsoftware
                                       Archi-   Entwick-
                            Analyse
                                       tektur     lung
                                                           SAP®

                                       Java
Seit 1998 im Bereich Java:
   100+ Beratungs- und Entwicklungsprojekte
   Konzeption und Entwicklung
   30+ Seminartitel für Seminarpartner
   Java / Java EE                       GEDOPLAN
   Diverse App.-Server
       Glassfish                        Archi- Entwick-
       IBM WebSphere          Analyse
                                        tektur   lung
      JBoss
      Oracle WebLogic                                     SAP®
      SAP NetWeaver
                                       Java
IT-Systeme und Prozesse
Beratung, Schulung, Entwicklung
80+ Mitarbeiter
www.involva-gruppe.de
Automatischer Softwaretest




                                  Testgetriebene
                                  Softwareentw.
                                  Test-
                             automatisierung




                                                   5
Automatischer Softwaretest

  Experimentelles Verfahren zum Test einer Anwendung
  (SUT = System Under Test)

  Zwei Zielsetzungen:
     Destruktiver Test: Im SUT möglichst viele Fehler aufdecken
     Demonstrativer Test: Korrektheit des SUT demonstrieren

  Effiziente und kostensparende Test-Durchführung:
      Möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen
      Test-Aktivitäten automatisiert ablaufen lassen


                                                                  6
Ziele der Testautomatisierung

  Explizite und detaillierte Beschreibung des Testwissens
  Effiziente Testdurchführung
  Reproduzierbare Testergebnisse
  Beliebige Wiederholbarkeit von Testläufen
  Erhöhung der Software-Qualität
  Einsparung von Personal- und Sachkosten




                                                            7
Unit Tests

  Weit verbreitetes Framework: JUnit 4
    Nutzt intensiv        public class MitarbeiterServiceTest
    Annotationen          {
                            @BeforeClass
    Bedingt Java 5          public static void setUpBeforeClass()
                            {
    Gute Integration          … // Test-Fixture erzeugen
                            }
    in IDE, Maven, …
                               @Test
                               public void testAddBerechtigung()
                               {
                                 … // zu testende Funktionalität aufrufen

                                   Assert.assertEquals(…);
                               }
                           }



                                                                            8
Test von Swing-GUIs

  Abbot
     Framework zum Test von Java-GUI-Elementen
     Open Source
     http://abbot.sourceforge.net

     Record and Play
     Editor für GUI-Skripts

     Einbindung in JUnit möglich



                                                 9
Test von Webanwendungen

  Selenium
      Testframework für Web-
      Anwendungen
      Open Source
      http://seleniumhq.org/

     Record and Play via
     Browser-Plugin

     Integrierbar in JUnit


                               10
Continuous Integration

  Voraussetzung: Projekt enthält ausführbare Tests
     JUnit
     Selenium, Abbot, …

  Build selbst ist auch ein Test!




                                                     11
Continuous Integration

  Manuelle Ausführung reicht nicht
    belastet den Entwicklungsprozess
    keine (einheitliche) Veröffentlichung der Ergebnisse
    keine (einheitliche) Eskalation bei Fehlern

                            An dem Teil habe ich
                              nichts gemacht!


         Bei mir läuft's!                Oh, sorry – das habe
                                           ich noch nicht
                                             eingecheckt.


                                                                12
Continuous Integration

  Anforderungen an eine Build- und Test-Umgebung
     Regelmäßige, automatische Ausführung
        zeitgesteuert ("Daily Build")
        durch Check-In getriggert
        …
     Kompletter Build
     Ausführung aller Tests
     Ggf. Qualitätsprüfung (Style, Coverage, …)
     Reporting
     Benachrichtigung


                                                   13
Continuous Integration




                         14
Continuous Integration

                                                 Arte-
                         Inform                  fakte

                                     CI-System
                   Checkout
 Entw.-Umgebung
                                                 Re-
                                                 ports




                                  Checkout
        Commit           SCM


                                                   15
Hudson

  "Extensible Continuous Integration Engine"

  Build und Test von Software-Projekten
  Monitoring von beliebigen Jobs

  Einfache Installation und Konfiguration

  Umfangreiche Werkzeugunterstützung "out-of-the-Box"
    SVN, CVS
    ant, mvn, shell
    javadoc, junit, …
                                                        16
Installation und Start

  Download von hudson.war von http://hudson-ci.org/

  Start …
     per Kommandozeile: java –jar hudson.war
     als Deployment in JBoss, Tomcat, …

  Bedienung per Browser auf http://host:8080[/hudson]




                                                        17
Job-Übersicht




                18
Zusammenfassung eines Jobs




                             19
Zugriff auf Build-Ergebnisse

                               Javadoc

                               Gebaute Artefakte

                               Unittest-Ergebnisse
                               (inkl. Drill-Down)




                                                     20
Benachrichtigungen

  Per Mail
      nach jedem fehlgeschlagenen Build
      nach erstem erfolgreichen Build
      an Mail-Verteiler oder Verursacher




                                           21
Erweiterbarkeit




                                       Plugins
                                       Core




       2006       2007   2008   2009




                                                 22
Erweiterbarkeit

  Plugin-Konzept
     Benachrichtigungen
        IRC, Jabber, Twitter, …
     Oberfläche
        Emotical Hudson, Green Balls, …
     Benutzerverwaltung
        Active Directory, LDAP, …
     Berichte
        Checkstyle, Cobertura, Crap4J, FindBugs, PMD, …




                                                          23
Erweiterbarkeit

  Plugin-Konzept
     Build-Werkzeuge
         Buckminster, Gradle, Rake, …
     Quellcodeverwaltung
         ClearCase, Git, PVCS, Visual Sourcesafe, …
     Artefaktverteilung
         FTP, SCP, …
     …




                                                      24
Projekt-Voraussetzungen

  Build per Cmd Line
     ant, mvn, make, shell, …

  Projekt komplett im SCM

  alle Dependencies verfügbar
      auch im SCM
      per Maven o.ä.




                                25
Erweiterungen: Checkstyle

  Überprüft die Einhaltung von Konventionen im Java-Code.
  Maven-Plugin:
  Prüfung des Codes
  Hudson-Plugin:
  Sammeln und Darstellen
  der Prüfergebnisse
      Trend
      Drill-Down




                                                            26
Erweiterungen: Cobertura

  Prüft die Code-Abdeckung durch Tests

  Maven-Plugin:
  Instumentierung des Codes,
  Testausführung.

  Hudson-Plugin:
  Sammeln und Darstellen
  der Prüfergebnisse
      Trend
      Drill-Down

                                         27
Erweiterungen: Extreme Feedback

  Prominente Darstellung des Build-Status

  Emotional Mr. Hudson
  Builderlein
  …




                                            28
Weitere Features
                                     S
  Verteiltes Build
                      M              S

                                     S


  Matrix Build
                             Derby       Oracle
                     JBoss
                     MySQL




                                                  29
Danke für Ihre Aufmerksamkeit!
      Haben Sie Fragen?

Más contenido relacionado

La actualidad más candente

Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Torsten Kleiber
 
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsjavaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsgedoplan
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...GFU Cyrus AG
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systemerdmeyer
 
Configuration Management (Fokus: Version-Controlling) – Best Pracitces
Configuration Management (Fokus: Version-Controlling) – Best PracitcesConfiguration Management (Fokus: Version-Controlling) – Best Pracitces
Configuration Management (Fokus: Version-Controlling) – Best Pracitceskaftanenko
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migrationdehms
 
Anforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingAnforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingChristian Baranowski
 
Prozesse im Spiegel des Projektalltags
Prozesse im Spiegel des ProjektalltagsProzesse im Spiegel des Projektalltags
Prozesse im Spiegel des ProjektalltagsmicroTOOL GmbH
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Apigunnarmorling
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenChristian Baranowski
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Nico Orschel
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Connected-Blog
 
Softwarequalität - Architektur
Softwarequalität - ArchitekturSoftwarequalität - Architektur
Softwarequalität - ArchitekturGerrit Beine
 

La actualidad más candente (20)

Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Softwarequalität Entwicklung - Test - Wartung
Softwarequalität Entwicklung -  Test - WartungSoftwarequalität Entwicklung -  Test - Wartung
Softwarequalität Entwicklung - Test - Wartung
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018
 
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevelsjavaPersistenceInActionFeaturesJenseitsDesEntryLevels
javaPersistenceInActionFeaturesJenseitsDesEntryLevels
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systeme
 
Configuration Management (Fokus: Version-Controlling) – Best Pracitces
Configuration Management (Fokus: Version-Controlling) – Best PracitcesConfiguration Management (Fokus: Version-Controlling) – Best Pracitces
Configuration Management (Fokus: Version-Controlling) – Best Pracitces
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migration
 
Anforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und PrototypingAnforderungsanalyse - Grundlagen und Prototyping
Anforderungsanalyse - Grundlagen und Prototyping
 
Prozesse im Spiegel des Projektalltags
Prozesse im Spiegel des ProjektalltagsProzesse im Spiegel des Projektalltags
Prozesse im Spiegel des Projektalltags
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Api
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML Grundlagen
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
 
Modularisierung - was soll das?
Modularisierung - was soll das?Modularisierung - was soll das?
Modularisierung - was soll das?
 
Softwarequalität - Architektur
Softwarequalität - ArchitekturSoftwarequalität - Architektur
Softwarequalität - Architektur
 
Softwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur AutomatisierungSoftwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur Automatisierung
 
Codeception VisualCeption
Codeception VisualCeptionCodeception VisualCeption
Codeception VisualCeption
 

Destacado

Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With PythonSiddhi
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code DeveloperGFU Cyrus AG
 
Python Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland
 
Automated Python Test Frameworks for Hardware Verification and Validation
Automated Python Test Frameworks for Hardware Verification and ValidationAutomated Python Test Frameworks for Hardware Verification and Validation
Automated Python Test Frameworks for Hardware Verification and ValidationBarbara Jones
 
Automated hardware testing using python
Automated hardware testing using pythonAutomated hardware testing using python
Automated hardware testing using pythonYuvaraja Ravi
 

Destacado (8)

Mock testing mit Python
Mock testing mit PythonMock testing mit Python
Mock testing mit Python
 
Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With Python
 
Java EE 5
Java EE 5Java EE 5
Java EE 5
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code Developer
 
Python Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit Testing
 
Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
 
Automated Python Test Frameworks for Hardware Verification and Validation
Automated Python Test Frameworks for Hardware Verification and ValidationAutomated Python Test Frameworks for Hardware Verification and Validation
Automated Python Test Frameworks for Hardware Verification and Validation
 
Automated hardware testing using python
Automated hardware testing using pythonAutomated hardware testing using python
Automated hardware testing using python
 

Similar a Softwarequalitätssicherung mit Continuous Integration Tools

Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Toolsgedoplan
 
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
 
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
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascriptdzuvic
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklungjlink
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineOPEN KNOWLEDGE GmbH
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit ArquillianMatthias Reining
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeNico Orschel
 
Agile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous DeliveryAgile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous Deliverypingworks
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTddjlink
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit HudsonDr. Christian Betz
 
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sQAware GmbH
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsAndreas Schreiber
 

Similar a Softwarequalitätssicherung mit Continuous Integration Tools (20)

Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
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...
 
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...
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Agile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous DeliveryAgile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous Delivery
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit Hudson
 
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8sKontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 

Más de GFU Cyrus AG

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im UnternehmenGFU Cyrus AG
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...GFU Cyrus AG
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!GFU Cyrus AG
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0GFU Cyrus AG
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...GFU Cyrus AG
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenGFU Cyrus AG
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebGFU Cyrus AG
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...GFU Cyrus AG
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?GFU Cyrus AG
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisGFU Cyrus AG
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungGFU Cyrus AG
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenGFU Cyrus AG
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGFU Cyrus AG
 
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...GFU Cyrus AG
 
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...GFU Cyrus AG
 
E-Learning mit Moodle
E-Learning mit MoodleE-Learning mit Moodle
E-Learning mit MoodleGFU Cyrus AG
 
LINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETLINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETGFU Cyrus AG
 
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?GFU Cyrus AG
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickGFU Cyrus AG
 
IT-Service Management nach ITIL
IT-Service Management nach ITILIT-Service Management nach ITIL
IT-Service Management nach ITILGFU Cyrus AG
 

Más de GFU Cyrus AG (20)

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im Unternehmen
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im Produktivbetrieb
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der Praxis
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei Volkswagen
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
 
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...
Projekt! - Toll - Ein Anderer Macht`s! - Voraussetzungen für eine erfolgreich...
 
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
Standardsoftware in der Versicherungsbranche - Betrachtung eines Paradigmenwe...
 
E-Learning mit Moodle
E-Learning mit MoodleE-Learning mit Moodle
E-Learning mit Moodle
 
LINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETLINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NET
 
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im Überblick
 
IT-Service Management nach ITIL
IT-Service Management nach ITILIT-Service Management nach ITIL
IT-Service Management nach ITIL
 

Softwarequalitätssicherung mit Continuous Integration Tools

  • 1. Softwarequalitätssicherung mit Continuous Integration Tools Treffpunkt Semicolon, 26.10.2010, GFU Cyrus AG Dirk Weil, GEDOPLAN GmbH
  • 2. Entwicklung von Informationssystemen 30+ Jahre am Markt ~35 Mitarbeiter Beratung und Entwicklung Maßgeschneiderte Lösungen GEDOPLAN Standardsoftware Archi- Entwick- Analyse tektur lung SAP® Java
  • 3. Seit 1998 im Bereich Java: 100+ Beratungs- und Entwicklungsprojekte Konzeption und Entwicklung 30+ Seminartitel für Seminarpartner Java / Java EE GEDOPLAN Diverse App.-Server Glassfish Archi- Entwick- IBM WebSphere Analyse tektur lung JBoss Oracle WebLogic SAP® SAP NetWeaver Java
  • 4. IT-Systeme und Prozesse Beratung, Schulung, Entwicklung 80+ Mitarbeiter www.involva-gruppe.de
  • 5. Automatischer Softwaretest Testgetriebene Softwareentw. Test- automatisierung 5
  • 6. Automatischer Softwaretest Experimentelles Verfahren zum Test einer Anwendung (SUT = System Under Test) Zwei Zielsetzungen: Destruktiver Test: Im SUT möglichst viele Fehler aufdecken Demonstrativer Test: Korrektheit des SUT demonstrieren Effiziente und kostensparende Test-Durchführung: Möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen Test-Aktivitäten automatisiert ablaufen lassen 6
  • 7. Ziele der Testautomatisierung Explizite und detaillierte Beschreibung des Testwissens Effiziente Testdurchführung Reproduzierbare Testergebnisse Beliebige Wiederholbarkeit von Testläufen Erhöhung der Software-Qualität Einsparung von Personal- und Sachkosten 7
  • 8. Unit Tests Weit verbreitetes Framework: JUnit 4 Nutzt intensiv public class MitarbeiterServiceTest Annotationen { @BeforeClass Bedingt Java 5 public static void setUpBeforeClass() { Gute Integration … // Test-Fixture erzeugen } in IDE, Maven, … @Test public void testAddBerechtigung() { … // zu testende Funktionalität aufrufen Assert.assertEquals(…); } } 8
  • 9. Test von Swing-GUIs Abbot Framework zum Test von Java-GUI-Elementen Open Source http://abbot.sourceforge.net Record and Play Editor für GUI-Skripts Einbindung in JUnit möglich 9
  • 10. Test von Webanwendungen Selenium Testframework für Web- Anwendungen Open Source http://seleniumhq.org/ Record and Play via Browser-Plugin Integrierbar in JUnit 10
  • 11. Continuous Integration Voraussetzung: Projekt enthält ausführbare Tests JUnit Selenium, Abbot, … Build selbst ist auch ein Test! 11
  • 12. Continuous Integration Manuelle Ausführung reicht nicht belastet den Entwicklungsprozess keine (einheitliche) Veröffentlichung der Ergebnisse keine (einheitliche) Eskalation bei Fehlern An dem Teil habe ich nichts gemacht! Bei mir läuft's! Oh, sorry – das habe ich noch nicht eingecheckt. 12
  • 13. Continuous Integration Anforderungen an eine Build- und Test-Umgebung Regelmäßige, automatische Ausführung zeitgesteuert ("Daily Build") durch Check-In getriggert … Kompletter Build Ausführung aller Tests Ggf. Qualitätsprüfung (Style, Coverage, …) Reporting Benachrichtigung 13
  • 15. Continuous Integration Arte- Inform fakte CI-System Checkout Entw.-Umgebung Re- ports Checkout Commit SCM 15
  • 16. Hudson "Extensible Continuous Integration Engine" Build und Test von Software-Projekten Monitoring von beliebigen Jobs Einfache Installation und Konfiguration Umfangreiche Werkzeugunterstützung "out-of-the-Box" SVN, CVS ant, mvn, shell javadoc, junit, … 16
  • 17. Installation und Start Download von hudson.war von http://hudson-ci.org/ Start … per Kommandozeile: java –jar hudson.war als Deployment in JBoss, Tomcat, … Bedienung per Browser auf http://host:8080[/hudson] 17
  • 20. Zugriff auf Build-Ergebnisse Javadoc Gebaute Artefakte Unittest-Ergebnisse (inkl. Drill-Down) 20
  • 21. Benachrichtigungen Per Mail nach jedem fehlgeschlagenen Build nach erstem erfolgreichen Build an Mail-Verteiler oder Verursacher 21
  • 22. Erweiterbarkeit Plugins Core 2006 2007 2008 2009 22
  • 23. Erweiterbarkeit Plugin-Konzept Benachrichtigungen IRC, Jabber, Twitter, … Oberfläche Emotical Hudson, Green Balls, … Benutzerverwaltung Active Directory, LDAP, … Berichte Checkstyle, Cobertura, Crap4J, FindBugs, PMD, … 23
  • 24. Erweiterbarkeit Plugin-Konzept Build-Werkzeuge Buckminster, Gradle, Rake, … Quellcodeverwaltung ClearCase, Git, PVCS, Visual Sourcesafe, … Artefaktverteilung FTP, SCP, … … 24
  • 25. Projekt-Voraussetzungen Build per Cmd Line ant, mvn, make, shell, … Projekt komplett im SCM alle Dependencies verfügbar auch im SCM per Maven o.ä. 25
  • 26. Erweiterungen: Checkstyle Überprüft die Einhaltung von Konventionen im Java-Code. Maven-Plugin: Prüfung des Codes Hudson-Plugin: Sammeln und Darstellen der Prüfergebnisse Trend Drill-Down 26
  • 27. Erweiterungen: Cobertura Prüft die Code-Abdeckung durch Tests Maven-Plugin: Instumentierung des Codes, Testausführung. Hudson-Plugin: Sammeln und Darstellen der Prüfergebnisse Trend Drill-Down 27
  • 28. Erweiterungen: Extreme Feedback Prominente Darstellung des Build-Status Emotional Mr. Hudson Builderlein … 28
  • 29. Weitere Features S Verteiltes Build M S S Matrix Build Derby Oracle JBoss MySQL 29
  • 30. Danke für Ihre Aufmerksamkeit! Haben Sie Fragen?