© Zühlke 2012
heg
Christian Heger
Macheten für den Testdschungel
8. Oktober 2012Folie 1
Fertig? Nee, fertig ist das
nicht, da fehlen noch die Tests
© Zühlke 2012
Der Code soll so sein wie der Code ist
8. Oktober 2012Macheten für den Testdschungel | heg Folie 5
© Zühlke 2012
Perfekte Code Coverage
8. Oktober 2012Macheten für den Testdschungel | heg Folie 6
© Zühlke 2012
Test First
8. Oktober 2012Macheten für den Testdschungel | heg Folie 7
Halbe Stunde für das Feature...
und dann muss ich die Integrations-
Tests gerade ziehen.Also zwei Tage.
© 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
© Zühlke 2012
Was teste ich da eigentlich?
System
Integration
Unit8. Oktober 2012Macheten für den Testdschungel | heg Folie 11
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
© Zühlke 2012
Segmentierung
8. Oktober 2012Macheten für den Testdschungel | heg
Module1 Module2 Module3
View
ViewModel
Controller
Services
Repository
Database
Folie 13
© Zühlke 2012
Test Driven Development
8. Oktober 2012Macheten für den Testdschungel | heg
Test Code
Folie 14
© Zühlke 2012
Behavior Driven Development
8. Oktober 2012Macheten für den Testdschungel | heg
Spec Test Code
Folie 15
© Zühlke 2012
Behavior Driven Development
8. Oktober 2012Macheten für den Testdschungel | heg Folie 16
Was wir hier machen?
Das Build läuft noch ne halbe
Stunde.
© Zühlke 2012
Keine Isolation langsamer Komponenten
8. Oktober 2012Macheten für den Testdschungel | heg Folie 18
© Zühlke 2012
Abhängige Tests
8. Oktober 2012Macheten für den Testdschungel | heg Folie 19
Das Build ist rot!
Och, das ist bestimmt nur
wieder so ein Test.
Ich starte das einfach noch mal,
dann wird das schon.
© 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
© 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
Fragen?Meinungen?Kommentare?
Christian Hegerabout.me/christian.heger