Was ist TDD?

Post on 08-May-2015

1,098 views 0 download

description

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

transcript

Bernd Schiffer

@berndschiffer

bernd.schiffer@it-agile.de

17.06.2010

Was ist TDD?

Montag, 21. Juni 2010

Bernd Schiffer‣Agile

Softwareentwicklung seit 2001‣Coach für Scrum,

Kanban, Scrumban, eXtreme Programming, Testgetriebene Entwicklung

Montag, 21. Juni 2010

it-agile‣Agile

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

Montag, 21. Juni 2010

Was ist TDD?

Montag, 21. Juni 2010

Implementieren

I

Montag, 21. Juni 2010

Testen

TImplementieren

I

Montag, 21. Juni 2010

Testen

TImplementieren

I

Montag, 21. Juni 2010

Testen

TImplementieren

I

Montag, 21. Juni 2010

je höher desto besser

lokales Maximum

besseres lokales Maximum

Refactoring

Syst

em-A

usba

ufäh

igkei

t

Montag, 21. Juni 2010

Testen

TImplementieren

I

Montag, 21. Juni 2010

Testen

TImplementieren

IRefactoring R

Montag, 21. Juni 2010

Demo!Montag, 21. Juni 2010

Kata

Montag, 21. Juni 2010

Montag, 21. Juni 2010

TDD-Zyklus

Red

TGreen

IRefactor R

Montag, 21. Juni 2010

Lohnt sich TDD?

Montag, 21. Juni 2010

Test First

Montag, 21. Juni 2010

Refactoring

Montag, 21. Juni 2010

SimplizitätMontag, 21. Juni 2010

Lohnt sich Test First?Montag, 21. Juni 2010

Automatisierte Tests

Montag, 21. Juni 2010

Montag, 21. Juni 2010

Investition$ 100 Mio.

Montag, 21. Juni 2010

Bug während TDD

= $ 5

Montag, 21. Juni 2010

Bug während Full Build

= $ 50Montag, 21. Juni 2010

Bug während Integrationstest

= $ 500Montag, 21. Juni 2010

Bug während Systemtests

= $ 5000Montag, 21. Juni 2010

Einsparung$ 160 Mio.

Montag, 21. Juni 2010

Rendite60 % (!)

Montag, 21. Juni 2010

Ja,Test First lohnt sich!

Montag, 21. Juni 2010

Lohnt sich Refactoring?Montag, 21. Juni 2010

Flexibilität durch Inkremente und

Iterationen(Beispiel: Scrum)

Montag, 21. Juni 2010

Software aber starr

und unflexibel

Montag, 21. Juni 2010

Innere Struktur ändern

= RefactoringMontag, 21. Juni 2010

Nur möglich durch Automatisierte

TestsMontag, 21. Juni 2010

Testautomatisierung durch Test First

Montag, 21. Juni 2010

TechnicalDebt

Montag, 21. Juni 2010

Big Ball of Mud

Big Ball of Mud

Montag, 21. Juni 2010

Ja,Refactoring lohnt sich!

Montag, 21. Juni 2010

Lohnt sich Simplizität?

Montag, 21. Juni 2010

Faktoren

Regelnfürs Zusammenspiel

zum Ent-/Bestehen

wenige

wenige

Montag, 21. Juni 2010

Simplizität ist

Ziel von Refactoring

Simplizität istZiel

Refactoringvon

Montag, 21. Juni 2010

Montag, 21. Juni 2010

Ja,Simplizität lohnt sich!

Montag, 21. Juni 2010

Und lohntsich jetzt TDD?

Montag, 21. Juni 2010

Ja!TDD

lohntsich

Montag, 21. Juni 2010

Warum so kleine Schritte?Montag, 21. Juni 2010

Können,wenn man

will...

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

Montag, 21. Juni 2010

Montag, 21. Juni 2010

„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

„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

Continuous Integration

ContinuousIntegration

Montag, 21. Juni 2010

Kontinuität

Kontinuität

Montag, 21. Juni 2010

Was wenn‘s wird kompliziert?

Montag, 21. Juni 2010

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

Montag, 21. Juni 2010

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

(inkl. Klammern)‣SOLID‣Clean‣DRY

Montag, 21. Juni 2010

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

Was ist mit unzurei-chenden

Tests?Montag, 21. Juni 2010

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

Immer!

Montag, 21. Juni 2010

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

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

Bernd Schiffer

@berndschiffer

bernd.schiffer@it-agile.de

17.06.2010

Das ist TDD!

Montag, 21. Juni 2010