66
Bernd Schiffer @berndschiffer [email protected] 17.06.2010 Was ist TDD? Montag, 21. Juni 2010

Was ist TDD?

Embed Size (px)

DESCRIPTION

A presentation by Bernd Schiffer (@berndschiffer) at the meettheexperts@codecentric event in Solingen, Germany on June, 18th.

Citation preview

Page 1: Was ist TDD?

Bernd Schiffer

@berndschiffer

[email protected]

17.06.2010

Was ist TDD?

Montag, 21. Juni 2010

Page 2: Was ist TDD?

Bernd Schiffer‣Agile

Softwareentwicklung seit 2001‣Coach für Scrum,

Kanban, Scrumban, eXtreme Programming, Testgetriebene Entwicklung

Montag, 21. Juni 2010

Page 3: Was ist TDD?

it-agile‣Agile

Softwareentwicklung und Beratung‣23 Mitarbeiter‣Wir...‣ ... trainieren‣ ... beraten‣ ... entwickeln‣http://it-agile.de

Montag, 21. Juni 2010

Page 4: Was ist TDD?

Was ist TDD?

Montag, 21. Juni 2010

Page 5: Was ist TDD?

Implementieren

I

Montag, 21. Juni 2010

Page 6: Was ist TDD?

Testen

TImplementieren

I

Montag, 21. Juni 2010

Page 7: Was ist TDD?

Testen

TImplementieren

I

Montag, 21. Juni 2010

Page 8: Was ist TDD?

Testen

TImplementieren

I

Montag, 21. Juni 2010

Page 9: Was ist TDD?

je höher desto besser

lokales Maximum

besseres lokales Maximum

Refactoring

Syst

em-A

usba

ufäh

igkei

t

Montag, 21. Juni 2010

Page 10: Was ist TDD?

Testen

TImplementieren

I

Montag, 21. Juni 2010

Page 11: Was ist TDD?

Testen

TImplementieren

IRefactoring R

Montag, 21. Juni 2010

Page 12: Was ist TDD?

Demo!Montag, 21. Juni 2010

Page 13: Was ist TDD?

Kata

Montag, 21. Juni 2010

Page 14: Was ist TDD?

Montag, 21. Juni 2010

Page 15: Was ist TDD?

TDD-Zyklus

Red

TGreen

IRefactor R

Montag, 21. Juni 2010

Page 16: Was ist TDD?

Lohnt sich TDD?

Montag, 21. Juni 2010

Page 17: Was ist TDD?

Test First

Montag, 21. Juni 2010

Page 18: Was ist TDD?

Refactoring

Montag, 21. Juni 2010

Page 19: Was ist TDD?

SimplizitätMontag, 21. Juni 2010

Page 20: Was ist TDD?

Lohnt sich Test First?Montag, 21. Juni 2010

Page 21: Was ist TDD?

Automatisierte Tests

Montag, 21. Juni 2010

Page 22: Was ist TDD?

Montag, 21. Juni 2010

Page 23: Was ist TDD?

Investition$ 100 Mio.

Montag, 21. Juni 2010

Page 24: Was ist TDD?

Bug während TDD

= $ 5

Montag, 21. Juni 2010

Page 25: Was ist TDD?

Bug während Full Build

= $ 50Montag, 21. Juni 2010

Page 26: Was ist TDD?

Bug während Integrationstest

= $ 500Montag, 21. Juni 2010

Page 27: Was ist TDD?

Bug während Systemtests

= $ 5000Montag, 21. Juni 2010

Page 28: Was ist TDD?

Einsparung$ 160 Mio.

Montag, 21. Juni 2010

Page 29: Was ist TDD?

Rendite60 % (!)

Montag, 21. Juni 2010

Page 30: Was ist TDD?

Ja,Test First lohnt sich!

Montag, 21. Juni 2010

Page 31: Was ist TDD?

Lohnt sich Refactoring?Montag, 21. Juni 2010

Page 32: Was ist TDD?

Flexibilität durch Inkremente und

Iterationen(Beispiel: Scrum)

Montag, 21. Juni 2010

Page 33: Was ist TDD?

Software aber starr

und unflexibel

Montag, 21. Juni 2010

Page 34: Was ist TDD?

Innere Struktur ändern

= RefactoringMontag, 21. Juni 2010

Page 35: Was ist TDD?

Nur möglich durch Automatisierte

TestsMontag, 21. Juni 2010

Page 36: Was ist TDD?

Testautomatisierung durch Test First

Montag, 21. Juni 2010

Page 38: Was ist TDD?

TechnicalDebt

Montag, 21. Juni 2010

Page 39: Was ist TDD?

Big Ball of Mud

Big Ball of Mud

Montag, 21. Juni 2010

Page 40: Was ist TDD?

Ja,Refactoring lohnt sich!

Montag, 21. Juni 2010

Page 41: Was ist TDD?

Lohnt sich Simplizität?

Montag, 21. Juni 2010

Page 42: Was ist TDD?

Faktoren

Regelnfürs Zusammenspiel

zum Ent-/Bestehen

wenige

wenige

Montag, 21. Juni 2010

Page 43: Was ist TDD?

Simplizität ist

Ziel von Refactoring

Simplizität istZiel

Refactoringvon

Montag, 21. Juni 2010

Page 44: Was ist TDD?

Montag, 21. Juni 2010

Page 45: Was ist TDD?

Ja,Simplizität lohnt sich!

Montag, 21. Juni 2010

Page 46: Was ist TDD?

Und lohntsich jetzt TDD?

Montag, 21. Juni 2010

Page 47: Was ist TDD?

Ja!TDD

lohntsich

Montag, 21. Juni 2010

Page 48: Was ist TDD?

Warum so kleine Schritte?Montag, 21. Juni 2010

Page 49: Was ist TDD?

Können,wenn man

will...

Quelle: Karl Fabricius http://www.environmentalgraffiti.com/featured/death-is-milliseconds-away/10927

Montag, 21. Juni 2010

Page 50: Was ist TDD?

Montag, 21. Juni 2010

Page 51: Was ist TDD?

„Sessions“ by Industrial Logic - see http://blogs.agilefaqs.com/2010/06/17/visualizing-your-programming-sessions-new-product-from-industrial-logic/

Montag, 21. Juni 2010

Page 52: Was ist TDD?

„Sessions“ by Industrial Logic - see http://blogs.agilefaqs.com/2010/06/17/visualizing-your-programming-sessions-new-product-from-industrial-logic/

Montag, 21. Juni 2010

Page 53: Was ist TDD?

Continuous Integration

ContinuousIntegration

Montag, 21. Juni 2010

Page 54: Was ist TDD?

Kontinuität

Kontinuität

Montag, 21. Juni 2010

Page 55: Was ist TDD?

Was wenn‘s wird kompliziert?

Montag, 21. Juni 2010

Page 56: Was ist TDD?

FrontPage.

TexasHoldemKombinationen [add child]

Als Spieler möchte ich erfahren, welche höchste Kategorie ich in der Hand halte,damit ich meine Chancen besser bestimmen kann.

Finde Kategorie

Hand Kategorie?

2! 3! 4! 5! 7" Höchste Karte

2! 3! 4! 5! 5" Paar

2! 3! 4! 4" 4# Drilling

2! 3! 4! 5! 7! Flush

Als Spieler möchte ich die für eine Kategorie relevanten Karten angezeigtbekommen, damit ich die Kategorie in meiner Hand besser identifizieren kann.

Zeige relevante Karten für Kategorie an

Hand relevante Karten?

2! 3! 4! 5! 7" 7"

2! 3! 4! 5! 5" 5! 5"

2! 3! 4! 4" 4# 4! 4" 4#

2! 3! 4! 5! 7! 2! 3! 4! 5! 7!

Als Spielleiter möchte ich die höhere Kategorie von zwei Händen erfahren, damit ichweiß welcher Spieler wie gewinnt.

Bestimme Sieger

eine Hand andere Hand Sieger? Siegerkategorie?

2! 3! 4! 5! 7" 2! 3! 4! 5! 8" Spieler 2 Höchste Karte

2! 3! 4! 5! 5" 2! 3! 4! 5! 7" Spieler 1 Paar

2! 3! 4! 5! 5" 2! 3! 4! 4" 4# Spieler 2 Drilling

2! 3! 4! 5! 7! 2! 3! 4! 4" 4# Spieler 1 Flush

Front Page | User Guideroot (for global !path's, etc.)

Montag, 21. Juni 2010

Page 57: Was ist TDD?

Montag, 21. Juni 2010

Page 58: Was ist TDD?

Metrics‣6 Klassen Produktiv‣2 Klassen Test‣8 Tests‣3,8 Zeilen/Methode

(inkl. Klammern)‣SOLID‣Clean‣DRY

Montag, 21. Juni 2010

Page 59: Was ist TDD?

Bitte mach‘, dass es aufhört...!Montag, 21. Juni 2010

Page 60: Was ist TDD?

Was ist mit unzurei-chenden

Tests?Montag, 21. Juni 2010

Page 61: Was ist TDD?

Quelle: Reencarnacion Cristalero http://pixdaus.com/single.php?id=42266

Immer!

Montag, 21. Juni 2010

Page 62: Was ist TDD?

Focus: Design‣Product Design‣ATDD‣Exploratory Testing‣Technical Design‣TDD‣Stress Testing‣ Interaction Design‣GUI Tests‣Usability Testing

Quelle: Poppendiecks „Leading Lean Software Development"

Montag, 21. Juni 2010

Page 63: Was ist TDD?

Focus:Spec or Failure‣Test to Spec‣ATDD‣TDD‣GUI Tests‣Test to Failure‣Exploratory Testing ‣Stress Testing‣Usability Testing

Quelle: Poppendiecks „Leading Lean Software Development"

Montag, 21. Juni 2010

Page 66: Was ist TDD?

Bernd Schiffer

@berndschiffer

[email protected]

17.06.2010

Das ist TDD!

Montag, 21. Juni 2010