+ All Categories
Home > Technology > Softwarequalitätssicherung mit Continuous Integration Tools

Softwarequalitätssicherung mit Continuous Integration Tools

Date post: 25-Jan-2015
Category:
Upload: gfu-cyrus-ag
View: 1,278 times
Download: 1 times
Share this document with a friend
Description:
KurzbeschreibungAutomatische Softwaretests rücken immer mehr in den Mittelpunkt. Gerade die derzeit vielfach eingesetzten agilen Vorgehensweisen benötigen ein teamübergreifendes und reproduzierbares Verfahren zur Sicherung der Softwarequalität. In diesem Vortrag legt Dirk Weil, Geschäftsführer der GEDOPLAN GmbH aus Bielefeld, das Augenmerk auf die Werkzeuge, die in Java-Projekten zum fortlaufenden Build und Test von Software genutzt werden können. Anhand einiger Praxisbeispiele zeigt er den Aufbau und Betrieb einer Continuous-Integration-Umgebung, die GEDOPALN für Softwareprojekte betreibt. Dozent: Dirk Weil, GedoplanInhalt- Grundlagen und Motivation automatischer Softwaretests - Testziele und Verfahren (Unit-Tests, Regressionstests, Akzeptanztests etc.)- Build- und Testautomatisierung- Beispielumgebung auf Basis von Ant, Maven, Subversion und Hudson- Code-Analyse- Extreme Feedback
30
Softwarequalitätssicherung mit Continuous Integration Tools Treffpunkt Semicolon, 26.10.2010, GFU Cyrus AG Dirk Weil, GEDOPLAN GmbH
Transcript
Page 1: Softwarequalitätssicherung mit Continuous Integration Tools

Softwarequalitätssicherungmit Continuous Integration Tools

Treffpunkt Semicolon, 26.10.2010, GFU Cyrus AG

Dirk Weil, GEDOPLAN GmbH

Page 2: Softwarequalitätssicherung mit Continuous Integration Tools

Entwicklung von Informationssystemen

30+ Jahre am Markt

~35 MitarbeiterBeratung und Entwicklung

GEDOPLANBeratung und Entwicklung

Maßgeschneiderte Lösungen

Standardsoftware

AnalyseArchi-tektur

Entwick-lung

SAP®

GEDOPLAN

Java

Page 3: Softwarequalitätssicherung mit Continuous Integration Tools

Seit 1998 im Bereich Java:100+ Beratungs- und Entwicklungsprojekte

Konzeption und Entwicklung

30+ Seminartitel für Seminarpartner

GEDOPLANJava / Java EE

Diverse App.-ServerGlassfish

IBM WebSphere

JBoss

Oracle WebLogic

SAP NetWeaver

AnalyseArchi-tektur

Entwick-lung

SAP®

GEDOPLAN

Java

Page 4: Softwarequalitätssicherung mit Continuous Integration Tools

IT-Systeme und Prozesse

Beratung, Schulung, Entwicklung

80+ Mitarbeiter

www.involva-gruppe.dewww.involva-gruppe.de

Page 5: Softwarequalitätssicherung mit Continuous Integration Tools

Automatischer Softwaretest Testgetriebene

Softwareen

tw.

5

Test-automatisierung

Page 6: Softwarequalitätssicherung mit Continuous Integration Tools

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

6

Page 7: Softwarequalitätssicherung mit Continuous Integration Tools

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

7

Page 8: Softwarequalitätssicherung mit Continuous Integration Tools

Unit Tests

Weit verbreitetes Framework: JUnit 4

Nutzt intensivAnnotationen

Bedingt Java 5

public class MitarbeiterServiceTest{

@BeforeClasspublic static void setUpBeforeClass(){

Bedingt Java 5

Gute Integrationin IDE, Maven, …

8

{… // Test-Fixture erzeugen

}

@Testpublic void testAddBerechtigung(){

… // zu testende Funktionalität aufrufen

Assert.assertEquals(…);}

}

Page 9: Softwarequalitätssicherung mit Continuous Integration Tools

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

9

Page 10: Softwarequalitätssicherung mit Continuous Integration Tools

Test von Webanwendungen

Selenium

Testframework für Web-Anwendungen

Open SourceOpen Source

http://seleniumhq.org/

Record and Play viaBrowser-Plugin

Integrierbar in JUnit

10

Page 11: Softwarequalitätssicherung mit Continuous Integration Tools

Continuous Integration

Voraussetzung: Projekt enthält ausführbare Tests

JUnit

Selenium, Abbot, …

Build selbst ist auch ein Test!

11

Page 12: Softwarequalitätssicherung mit Continuous Integration Tools

Continuous Integration

Manuelle Ausführung reicht nicht

belastet den Entwicklungsprozess

keine (einheitliche) Veröffentlichung der Ergebnisse

keine (einheitliche) Eskalation bei Fehlernkeine (einheitliche) Eskalation bei Fehlern

12

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

An dem Teil habe ich nichts gemacht!

Page 13: Softwarequalitätssicherung mit Continuous Integration Tools

Continuous Integration

Anforderungen an eine Build- und Test-Umgebung

Regelmäßige, automatische Ausführungzeitgesteuert ("Daily Build")

durch Check-In getriggert

Kompletter Build

Ausführung aller Tests

Ggf. Qualitätsprüfung (Style, Coverage, …)

Reporting

Benachrichtigung

13

Page 14: Softwarequalitätssicherung mit Continuous Integration Tools

Continuous Integration

14

Page 15: Softwarequalitätssicherung mit Continuous Integration Tools

Continuous Integration

CI-System

Inform

Arte-fakte

Checkout

15

Entw.-Umgebung

SCMCommitCheckout

Re-ports

Page 16: Softwarequalitätssicherung mit Continuous Integration Tools

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, …

16

Page 17: Softwarequalitätssicherung mit Continuous Integration Tools

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 ]

17

Page 18: Softwarequalitätssicherung mit Continuous Integration Tools

Job-Übersicht

18

Page 19: Softwarequalitätssicherung mit Continuous Integration Tools

Zusammenfassung eines Jobs

19

Page 20: Softwarequalitätssicherung mit Continuous Integration Tools

Zugriff auf Build-Ergebnisse

Javadoc

Gebaute Artefakte

Unittest-Ergebnisse

(inkl. Drill-Down)

20

Page 21: Softwarequalitätssicherung mit Continuous Integration Tools

Benachrichtigungen

Per Mail

nach jedem fehlgeschlagenen Build

nach erstem erfolgreichen Build

an Mail-Verteiler oder Verursacheran Mail-Verteiler oder Verursacher

21

Page 22: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterbarkeit

Plugins

22

2006 2007 2008 2009

Core

Page 23: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterbarkeit

Plugin-Konzept

BenachrichtigungenIRC, Jabber, Twitter, …

OberflächeOberflächeEmotical Hudson, Green Balls, …

BenutzerverwaltungActive Directory, LDAP, …

BerichteCheckstyle, Cobertura, Crap4J, FindBugs, PMD, …

23

Page 24: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterbarkeit

Plugin-Konzept

Build-WerkzeugeBuckminster, Gradle, Rake, …

QuellcodeverwaltungQuellcodeverwaltungClearCase, Git, PVCS, Visual Sourcesafe, …

ArtefaktverteilungFTP, SCP, …

24

Page 25: Softwarequalitätssicherung mit Continuous Integration Tools

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.ä.

25

Page 26: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterungen: Checkstyle

Überprüft die Einhaltung von Konventionen im Java-Code.

Maven-Plugin:Prüfung des Codes

Hudson-Plugin:Hudson-Plugin:Sammeln und Darstellender Prüfergebnisse

Trend

Drill-Down

26

Page 27: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterungen: Cobertura

Prüft die Code-Abdeckung durch Tests

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

Hudson-Plugin:Sammeln und Darstellender Prüfergebnisse

Trend

Drill-Down

27

Page 28: Softwarequalitätssicherung mit Continuous Integration Tools

Erweiterungen: Extreme Feedback

Prominente Darstellung des Build-Status

Emotional Mr. Hudson

BuilderleinBuilderlein

28

Page 29: Softwarequalitätssicherung mit Continuous Integration Tools

Weitere Features

Verteiltes BuildM

S

S

S

Matrix Build

29

Derby Oracle

JBoss

MySQL

Page 30: Softwarequalitätssicherung mit Continuous Integration Tools

Danke für Ihre Aufmerksamkeit!

Haben Sie Fragen?


Recommended