Agile Java-Entwicklung in der Praxis



Ähnliche Dokumente
Inhalt. 3.1 Der inkrementelle Entwurf im Überblick Flache Aufwandskurve Qualitätskriterien für den inkrementellen Entwurf...

Agile Softwareentwicklung

Konfigurationsmanagement mit Subversion, Ant und Maven

Inhaltsverzeichnis. Sebastian Bergmann, Stefan Priebsch. Softwarequalität in PHP-Projekten ISBN:

Mailmanagement mit IMAP

Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt

Agile Testing. Der agile Weg zur Qualität. von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner. 1.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für Markus Alvermann.

Konfigurationsmanagement mit Subversion, Maven und Redmine

Software entwickeln mit extreme Programming

Software Construction

Linux Netzwerk-Handbuch

Agile Softwareprozess-Modelle

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013!

Iterativ. Inkrementell

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Auswahl eines Continuous Integrationsservers

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Software-Qualität: Übung 1 Evolutionäres Entwickeln

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Continuous Integration mit Jenkins

Konfigurationsmanagement

extreme Programming Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis dpunkt.verlag Henning Wolf Stefan Roock Martin Lippert

Der Rational Unified Process

Qualitätsmanagement mit Continuous Integration Untersuchung anhand einer Machbarkeitsstudie in der Praxis. Abschlußpräsentation zur Studienarbeit

Konfigurations management

Einführung in Maven und GWT

Service Virtualisierung

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Continuous Delivery. Der pragmatische Einstieg. von Eberhard Wolff. 1. Auflage. dpunkt.verlag 2014

Deployment Deployment Seite 1 / 25

Configuration management

Der frühe Tester fängt den Bug

Uwe Baumann artiso Solutions

Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012

LINUX IN A NUTSHELL. 3. Auflage. Ellen Siever, Stephen Spainhour, Stephen Figgins & Jessica P. Hekman

1 Einleitung Vorstellung der Fallstudie KnowBeer... 5

Unser verflixtes 7. Jahr im Testmanagement. Bernd Schindelasch 26. Juni 2013

Inhaltsverzeichnis.

Android Testautomatisierung mit dem Framework Robotium

Einreichung zum Call for Papers

Qualitätssicherung leicht gemacht: Open Source Tools sinnvoll einsetzen und verzahnen

Continuous Database Integration mit Flyway

Konfigurationsmanagement mit Subversion, Ant und Maven

Jo Weilbach, Mario Herger SAP xapps - Architektur und Entwicklung mit dem Composite Application Framework. Galileo Press

Multi-Channel-Retailing

Build-Pipeline mit Jenkins

Architecture Blueprints

Extreme Programming ACM/GI Regionalgruppe Bremen,

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Test-Driven Design: Ein einfaches Beispiel

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Redmine, das Projekt Management Werkzeug

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Wie funktioniert agile Software-

Automatisierte GUI Tests in fachlichen Teststufen Patrick Möller

Agile Methoden. David Tanzer. Oliver Szymanski

1 Einleitung Wie Sie dieses Buch verstehen sollten Die Projektberichte Der Anhang... 3

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2.

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Agile Testautomatisierung im XING Mobile Team

2 Einführung in das Konfigurationsmanagement 11

Entwicklungswerkzeuge

- Agile Programmierung -

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven

Extreme Programming: Überblick

Universität Passau. Betriebswirtschaftslehre mit Schwerpunkt Internationales Management Prof. Dr. Carola Jungwirth. Seminararbeit

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

I.Auflage Das Nagios/Icinga-Kochbuch. Timo Kucza & Ralf Staudemeyer O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Tokyo

Software-Entwicklungsprozesse zertifizieren

Git in großen Projekten

Inhaltsverzeichnis. Christian Wischki. ITIL V2, ITIL V3 und ISO/IEC Gegenüberstellung und Praxisleitfaden für die Einführung oder den Umstieg

Grundlegende Veränderungen in der Software-Dokumentation durch agile Entwicklung?

IT-Projekt-Management

Kenne deinen Feind. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Fortgeschrittene Sicherheitstechniken

Inhaltsverzeichnis. Vorwort Einführung Danksagungen Über den Autor Auf dem Titelbild Unverzichtbare Einführung...

Inhaltsverzeichnis. Teil I: Einführung. Teil II: OpenStreetMap für Mitmacher

Fachlogik umsetzen. Business Rules zwischen Konzept und IT-System. Dirk Ziegemeyer

Agiles Testen. Handwerkszeug zur Prävention von Fehlern und technischen Schulden. Entwicklertag Lars Alvincz, Daniel Knapp

Extremes Programmieren

Android-Testautomatisierung mit Robotium

Software - Testung ETIS SS05

Maven 2 Softwareprojekte mit Kultur

Software Engineering

Funktionale Sicherheit in der Praxis

Agile Java- Entwicklung

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Management von IT-Architekturen

Reporting Services und SharePoint 2010 Teil 1

Continuous Integration mit Hudson

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Von Continuous Integration zu Continuous Deployment

Informationswirtschaft 2: Überblick

Transkript:

Agile Java-Entwicklung in der Praxis Michael Hüttermann O'REILLY* Beijing Cambridge Famham Köln Paris Sebastopol Taipei Tokyo

Inhalt Prolog Einleitung XI XV Teil I: Die Methodik agiler Softwareentwicklung 1 Einführung in die agile Entwicklung 3 Geschichte der agilen Entwicklung 4 Das Agile Manifest 4 Die Prinzipien 6 2 Die Vorteile agiler Entwicklung 13 Die Kundensicht 13 Programmierersicht 16 Die Projektsicht 19 Soziale und betriebswirtschaftliche Sicht 21 3 Agile Ansätze und traditionelles Vorgehen - eine Abgrenzung 23 Prozessmodelle 23 Traditionelle Modelle 24 Was agile Entwicklung nicht ist 26 Ausprägungen agiler Entwicklung 26 4 Dimensionen agiler Entwicklung 45 Motivation 45 Kommunikation 57 Team 64 I V

Wissen 69 Zeit 76 Die größten Verschwender 79 5 Die Durchführung 81 Aufbauorganisation 81 Das Release 83 Die Iteration 91 Pair Programming 93 Stand-up-Meetings 94 Konfigurationsmanagement 95 Test-Driven Development 97 Continuous Integration (CI) 99 Refactoring 102 Standards 102 Tracking 105 Abschluss 109 6 Agile Prozesse einfuhren 112 Wer überzeugt werden muss 112 Einführungsstrategien 114 Fallstricke 117 Besondere Situationen 120 Teil II: Eine agile technische Infrastruktur 123 7 Ant-Grundlagen 125 Installationshinweise 126 Terminologie und Konzept 126 8 Versionskontrolle mit Subversion 128 Versionskontrolle 128 Subversion 129 Installation und Konfiguration 131 Nutzung 136 Revisionen 142 Versionierung (Tags) 143 Separate Entwicklungszweige (Branches) 145 VI Inhalt

Locking 148 Automatisierte Nutzung mit Ant 150 Zusätzliche Werkzeuge 154 Zusammenfassung 156 9 Komponententests mit JUnit 157 Komponententests 158 JUnit 158 Ein erstes Beispiel 159 JUnit 3.x vs. JUnit 4.x 164 Testanatomie 167 Instanzen und Abhängigkeiten 170 Testaggregation und Nebenläufigkeit 171 Welche Artefakte sollte ich testen? 176 Testautomatisierung und kontinuierliche Integration mit Ant 178 Test-Driven Development mit JUnit 185 Zusammenfassung 194 10 Testabdeckung mit EMMA und JUnit 195 Installation und Beispiel 195 Automatisierte Nutzung via Ant 198 Testabdeckung 202 Zusammenfassung 206 11 Der Einsatz von Mock-Objekten mit EasyMock 207 Von Mocks und Dummys 207 EasyMock installieren 209 Erstes Szenario:»Wegmocken«von Callbacks 210 Zweites Szenario:»Wegmocken«einer ressourcenintensiven DB-Schnittstelle. 218 Zusammenfassung 222 12 Komponententests mit TestNG 223 Steckbrief 223 Ein Beispiel: Agile, nebenläufige, gruppierte Verarbeitung 225 Aufruf der Tests: Das Build-Skript 236 Zusammenfassung 246 Inhalt VII

13 GUIstesten mitjemmy 247 Swing 247 Einführung in Jemmy 252 Ein ausführliches Beispiel: Testen der Filterung bei Tabellen 253 Zusammenfassung 264 14 Webanwendungen testen mitselenium 265 Architektur von Webanwendungen 265 Die Arbeitsweise von Selenium 268 Selenium IDE 269 Selenium RC - Remote Control 273 Kontinuierliche Integration mit Ant 278 Zusammenfassung 282 15 Akzeptanztests mit Fit 283 Akzeptanztests 283 Einführung in Fit 284 Vorgehen 284 Die verschiedenen Fixtures 285 Ein Rundgang: ColumnFixture 286 Zusammenfassung 291 16 Akzeptanztests für Webanwendungen mit WebTest 292 Überblick 292 Installation 293 Ein erstes Beispiel: Der WebTest-Selbsttest 293 Ein weiteres Beispiel: Auf Googles Spuren 296 Wiederverwendung 299 Reporting 300 Kontinuierliche Integration 305 Zusammenfassung 311 17 Projektkommunikation mittrac 316 Wikis 316 Trac 318 Zusammenfassung 324 VIII Inhalt

18 Ant-Teil 2: Praktische Einsatzszenarien 326 Das fundamentale Ant-Gerüst für einen Entwicklungszyklus 327 Erstes Szenario:»Continuous Integration«auf dem Integrationsrechner 331 Zweites Szenario:»Continuous Integration«auf einem Arbeitsplatzrechner... 331 Drittes Szenario:»Single Code Basis«-Redundanzen eliminieren unter CVS... 332 Viertes Szenario: Coding Guidelines überprüfen 338 Fünftes Szenario: HotSwap 345 Best Practices und Ant-Tipps 347 Zusammenfassung 349 19 Kontinuierliche Integration mit CruiseControl 351 Der pragmatische Ansatz: cron 351 Der umfassende Ansatz: CruiseControl 352 Zusammenfassung 360 20 Der Einsatz von Maven für Build-Prozesse 362 Funktionsumfang 363 Architektur 364 Prinzipien 365 Die ersten Schritte 367 Das POM 367 Phase und Goal 370 Lifecyles 371 Agile Entwicklung mit Maven 372 Zusammenfassung 383 Anhang: Weiterführende Literatur 387 Zur Methodik 387 Peopleware - der Faktor Mensch 388 Testen 388 Fit 388 Refactoring 388 TestNG 388 Ant, Maven 389 Subversion 389 Index 391 Inhalt IX