20
Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration Timo Stollenwerk

Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Embed Size (px)

DESCRIPTION

Continuous Integration ist Begriff aus der Softwareentwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt. Das Ziel der kontinuierlichen Integration ist die Steigerung der Softwarequalität. Jede "Integration" führt zu einem automatisierten Build-Prozess der verschiedene Software-Tests und Code-Analyseschritte ausführt um Fehler so früh wie möglich erkennen und beheben zu können. Dieser Vortrag wird die Prinzipien der Kontinuierlichen Integration vorstellen und aufzeigen wie diese für ein Python-Projekt umgesetzt werden können. Dabei werden die Erfahrungen aus dem Betrieb des CI-Servers für das Plone Projekt, eines der größten Python-basierten Open Source Projekte, vorgestellt. Unter anderem werden die folgenden Themen behandelt: - Aufsetzen eines Continous Integration Servers mit Travis-CI oder Jenkins - Einbindung verschiedener Versionskontrollsysteme - Das Ausführen verschiedener Tests und die Analyse der Code-Qualität für jede Integration - Wie Jenkins verwendet werden kann um automatisch eine Software Dokumentation zu erstellen, die Entwickler zu benachrichtigen, Software Releases zu erstellen und Software zu deployen - Das Schreiben und kontinuierliche Ausführen von funktionalen Akzeptanztests, basierend auf Robot Framework

Citation preview

Page 1: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Who let the robot out?Qualitativ hochwertige Softwaredurch Continuous Integration

Timo Stollenwerk

Page 2: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Wunschdenken

Pünktlich

Im Budget

Fehlerfrei

Lesbar

Wartbarer Code

Dokumentiert

Schnell

Funktionsfähig

Page 3: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Wirklichkeit

Broken build

„Es funktioniert bei mir“

Nicht auslieferbar

Schlechte Performanz

Unwartbarer Code

Verzögert

Über dem Budget

Page 4: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Assumption is the mother of all screw-ups

Page 5: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Software Qualität?!

Page 6: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Grundprinzipien

Page 7: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Do not break things

Page 8: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

If things are broken, don't make it more complicated

Page 9: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

If you broke the build, fix it as soon as possible

Page 10: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Getting Started

Post-commit hook

Failure / Fix

Page 11: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Tests

collective.xmltestreport / Jenkins Cobertura Plugin

Page 12: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

AkzeptanztestsAkzeptanztests

RobotFramework

Jenkins Robot Plugin / Saucelabs

Page 13: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Code Analyse

buildout.jenkins / plone.recipe.codeanalysis / Jenkins Violations Plugin

Page 14: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Performanz Tests

Jenkins jMeter Plugin

Page 15: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Dokumentation

Sphinx / Robot / Build Step

Page 16: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Benachrichtigungen

Jenkins Ext-Email Plugin / Jenkins Dashboard Plugin

Page 17: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Continuous Deyploment

Jenkins Build Pipeline Plugin

Page 18: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Zusammenfassung

Pünktlich

Im Budget

Fehlerfrei

Lesbar

Wartbarer Code

Dokumentiert

Schnell

Funktionsfähig

Page 19: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

Who let the robot out?

Timo StollenwerkIRC: [email protected]

Qualitativ hochwertige Softwaredurch Continuous Integration

Page 20: Who let the robot out? Qualitativ hochwertige Software durch Continuous Integration

● Robot: http://www.flickr.com/photos/jerry_reynolds/2538180907

● Dark Sky: http://www.flickr.com/photos/psychoscheiko/5812349452

● Lego: http://www.flickr.com/photos/ogimogi/2253657555

● Broken Glass: http://www.flickr.com/photos/akeg/2230862848

Bilder