SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Continuous Integration mit Hudson
Expertenkreis Java, 15.04.2010, IPS GmbH Hannover
Dirk Weil, GEDOPLAN GmbH
Automatischer Softwaretest
Testgetriebene
Softwareentw.
2
Test-
automatisierung
Automatischer Softwaretest
Experimentelles Verfahren zum Test einer Anwendung
(SUT = System Under Test)
Zwei Zielsetzungen: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
3
Ziele der Testautomatisierung
Explizite und detaillierte Beschreibung des Testwissens
Effiziente Testdurchführung
Reproduzierbare Testergebnisse
Beliebige Wiederholbarkeit von TestläufenBeliebige Wiederholbarkeit von Testläufen
Erhöhung der Software-Qualität
Einsparung von Personal- und Sachkosten
4
Unit Tests
Weit verbreitetes Framework: JUnit 4
Nutzt intensiv
Annotationen
Bedingt Java 5
public class MitarbeiterServiceTest
{
@BeforeClass
public static void setUpBeforeClass()
{
Bedingt Java 5
Gute Integration
in IDE, Maven, …
5
{
… // Test-Fixture erzeugen
}
@Test
public void testAddBerechtigung()
{
… // zu testende Funktionalität aufrufen
Assert.assertEquals(…);
}
}
Test von Swing-GUIs
Abbot
Framework zum Test von Java-GUI-Elementen
Open Source
http://abbot.sourceforge.nethttp://abbot.sourceforge.net
Record and Play
Editor für GUI-Skripts
Einbindung in JUnit möglich
6
Test von Webanwendungen
Selenium
Testframework für Web-
Anwendungen
Open SourceOpen Source
http://seleniumhq.org/
Record and Play via
Browser-Plugin
Integrierbar in JUnit
7
Testautomatisierung
Voraussetzung: Projekt enthält ausführbare Tests
JUnit
Selenium, Abbot, …
Build selbst ist auch ein Test!
8
Testautomatisierung
Manuelle Ausführung reicht nicht
belastet des Entwicklungsprozess
keine (einheitliche) Veröffentlichung der Ergebnisse
keine (einheitliche) Eskalation bei Fehlernkeine (einheitliche) Eskalation bei Fehlern
9
Bei mir läuft's! Oh, sorry – das habe
ich noch nicht
eingecheckt.
An dem Teil habe ich
nichts gemacht!
Testautomatisierung
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
10
Testautomatisierung
CI-System
Inform
Arte-
fakte
11
Entw.-Umgebung
SCM
Commit Update
Re-
ports
Hudson
"Extensible Continuous Integration Engine"
Build und Test von Software-Projekten
Monitoring von beliebigen JobsMonitoring von beliebigen Jobs
Einfache Installation und Konfiguration
Umfangreiche Werkzeugunterstützung "out-of-the-Box"
SVN, CVS
ant, mvn, shell
javadoc, junit, …
12
Installation und Start
Download von hudson.war von http://hudson-ci.org/
Start …
per Kommandozeile: java –jar hudson.warper Kommandozeile: java –jar hudson.war
als Deployment in JBoss, Tomcat, …
Bedienung per Browser auf http://host:8080[/hudson]
13
Job-Übersicht
14
Zusammenfassung eines Jobs
15
Zugriff auf Build-Ergebnisse
Javadoc
Gebaute Artefakte
Unittest-Ergebnisse
(inkl. Drill-Down)
16
Benachrichtigungen
Per Mail
nach jedem fehlgeschlagenen Build
nach erstem erfolgreichen Build
an Mail-Verteiler oder Verursacheran Mail-Verteiler oder Verursacher
17
Erweiterbarkeit
Plugin-Konzept
Benachrichtigungen (z.B. IRC)
Oberfläche
Benutzerverwaltung (z.B. AD-Anbindung)Benutzerverwaltung (z.B. AD-Anbindung)
Build-Auslöser
Berichte (z.B. Checkstyle, Cobertura, PMD)
Build-Werkzeuge
Versionsverwaltung
…
18
Projekt-Voraussetzungen
Build per Cmd Line
ant, mvn, make, shell, …
Projekt komplett im SCMProjekt komplett im SCM
alle Dependencies verfügbar
auch im SCM
per Maven o.ä.
19
Erweiterungen: Checkstyle
Überprüft die Einhaltung von Konventionen im Java-Code.
Maven-Plugin:
Prüfung des Codes
Hudson-Plugin:Hudson-Plugin:
Sammeln und Darstellen
der Prüfergebnisse
Trend
Drill-Down
20
Erweiterungen: Cobertura
Prüft die Code-Abdeckung durch Tests
Maven-Plugin:
Instumentierung des Codes,Instumentierung des Codes,
Testausführung.
Hudson-Plugin:
Sammeln und Darstellen
der Prüfergebnisse
Trend
Drill-Down
21
Erweiterungen: Extreme Feedback
Prominente Darstellung des Build-Status
Emotional Mr. Hudson
BlinklichtBlinklicht
…
22
Danke für Ihre Aufmerksamkeit!
Haben Sie Fragen?

Weitere ähnliche Inhalte

Was ist angesagt?

Kontinuierliche Integration
Kontinuierliche IntegrationKontinuierliche Integration
Kontinuierliche Integration
Johannes Weber
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives Testen
Creasoft AG
 

Was ist angesagt? (12)

Versionskontrolle mit Apache Subversion
Versionskontrolle mit Apache SubversionVersionskontrolle mit Apache Subversion
Versionskontrolle mit Apache Subversion
 
Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)
 
Skripting prüfung, automatisierung und funktionserweiterung - Sebastian-Nic...
Skripting   prüfung, automatisierung und funktionserweiterung - Sebastian-Nic...Skripting   prüfung, automatisierung und funktionserweiterung - Sebastian-Nic...
Skripting prüfung, automatisierung und funktionserweiterung - Sebastian-Nic...
 
PHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze EinführungPHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze Einführung
 
Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?
 
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
 
PHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware ImagesPHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware Images
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
 
Kontinuierliche Integration
Kontinuierliche IntegrationKontinuierliche Integration
Kontinuierliche Integration
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives Testen
 

Andere mochten auch

Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
Java Usergroup Berlin-Brandenburg
 

Andere mochten auch (6)

Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
Jbossas7alsplattformmodernerenterprise anwendungen-130604114410-phpapp02
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
 
Java Application Servers Are Dead!
Java Application Servers Are Dead!Java Application Servers Are Dead!
Java Application Servers Are Dead!
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Ähnlich wie Softwarequalitätssicherung mit Continuous Integration Tools

JSF Testing - Tools und Technics
JSF Testing - Tools und TechnicsJSF Testing - Tools und Technics
JSF Testing - Tools und Technics
adesso AG
 

Ähnlich wie Softwarequalitätssicherung mit Continuous Integration Tools (20)

Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
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...
 
Agile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous DeliveryAgile Bodensee - Introducing Continuous Delivery
Agile Bodensee - Introducing Continuous Delivery
 
Softwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur AutomatisierungSoftwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur Automatisierung
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
JSF Testing - Tools und Technics
JSF Testing - Tools und TechnicsJSF Testing - Tools und Technics
JSF Testing - Tools und Technics
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
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)
 
Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?
 
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)
 
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-TestsIks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
Feige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-UmfeldFeige sein! Testen im Java-EE-Umfeld
Feige sein! Testen im Java-EE-Umfeld
 
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
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Security Scanner Design am Beispiel von httprecon
Security Scanner Design am Beispiel von httpreconSecurity Scanner Design am Beispiel von httprecon
Security Scanner Design am Beispiel von httprecon
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 

Softwarequalitätssicherung mit Continuous Integration Tools