Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... ·...

23
© Zühlke 2012 heg Christian Heger Macheten für den Testdschungel 8. Oktober 2012 Folie 1

Transcript of Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... ·...

Page 1: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

heg

Christian Heger

Macheten für den Testdschungel

8. Oktober 2012Folie 1

Page 2: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation
Page 3: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation
Page 4: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

Fertig? Nee, fertig ist das

nicht, da fehlen noch die Tests

Page 5: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Der Code soll so sein wie der Code ist

8. Oktober 2012Macheten für den Testdschungel | heg Folie 5

Page 6: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Perfekte Code Coverage

8. Oktober 2012Macheten für den Testdschungel | heg Folie 6

Page 7: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Test First

8. Oktober 2012Macheten für den Testdschungel | heg Folie 7

Page 8: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

Halbe Stunde für das Feature...

Page 9: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

und dann muss ich die Integrations-

Tests gerade ziehen.Also zwei Tage.

Page 10: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Szenario: Kunde bekommt leckeren Kaffee

Wenn die „Kaffee“-Taste gedrückt wird

Dann werden 15 Bohnen je nach gewähltem Mahlgrad gemahlen

Und werden 3.5g Kaffeepulver mit dem Kaffeepulverförderer in den Brühbehälter befördert

Und wird Wasserbehälter gepumpt, Spannung angelegt, und das Wasser auf 92°C erhitzt

Und die Tasse enthält leckeren Kaffee

Überspezifizierte Tests

8. Oktober 2012Macheten für den Testdschungel | heg Folie 10

Page 11: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Was teste ich da eigentlich?

System

Integration

Unit8. Oktober 2012Macheten für den Testdschungel | heg Folie 11

Page 12: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

View

ViewModel

Controller

Service Service Service

Repository Proxy

Web ServiceDB Ware

house Files

Web Service

Repository

Workflow Service Workflow Service

Helper

Helper

Config

View

ViewModel

Page 13: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Segmentierung

8. Oktober 2012Macheten für den Testdschungel | heg

Module1 Module2 Module3

View

ViewModel

Controller

Services

Repository

Database

Folie 13

Page 14: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Test Driven Development

8. Oktober 2012Macheten für den Testdschungel | heg

Test Code

Folie 14

Page 15: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Behavior Driven Development

8. Oktober 2012Macheten für den Testdschungel | heg

Spec Test Code

Folie 15

Page 16: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Behavior Driven Development

8. Oktober 2012Macheten für den Testdschungel | heg Folie 16

Page 17: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

Was wir hier machen?

Das Build läuft noch ne halbe

Stunde.

Page 18: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Keine Isolation langsamer Komponenten

8. Oktober 2012Macheten für den Testdschungel | heg Folie 18

Page 19: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Abhängige Tests

8. Oktober 2012Macheten für den Testdschungel | heg Folie 19

Page 20: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

Das Build ist rot!

Och, das ist bestimmt nur

wieder so ein Test.

Ich starte das einfach noch mal,

dann wird das schon.

Page 21: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Vorgestellte Werkzeuge

Visual Studio 2012

• Verbesserter Test Runner, auch für xUnit und NUnit

• Code Coverage

• Duplikatensuche (Code Clones)

• Tests nach Build ausführen

8. Oktober 2012Macheten für den Testdschungel | heg Folie 21

Page 22: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

© Zühlke 2012

Vorgestellte Werkzeuge

NCrunch

• Lässt Tests sofort beim Schreiben laufen

• Visuelle, sofortige Test Coverage

• www.ncrunch.net

SpecFlow

• BDD für .NET

• Erzeugt Unit Test Code aus Spezifikation + Schritt-Definition

• www.specflow.org

8. Oktober 2012Macheten für den Testdschungel | heg Folie 22

Page 23: Macheten für den Testdschungeldownload.microsoft.com/download/E/C/C/ECC5B836-10FF-4CDA... · 2018-10-16 · SpecFlow • BDD für .NET • Erzeugt Unit Test Code aus Spezifikation

Fragen?Meinungen?Kommentare?

Christian Hegerabout.me/christian.heger