codecentric AG
David Völkel – SEACON 2014 – 09.05.2014
INTEGRATION TEST HELL
ODER WIE INTEGRATIV SOLL ICH TESTEN?
codecentric AG
DAVID VÖLKEL
2
IT-Consultant
Schwerpunkte
 Test-Driven Development
 Softwaredesign & Clean Code
 Softwar...
codecentric AG
isoliert integriert
3
AUTOMATISIERTE TESTS
vs.
codecentric AG
$(isoliert) $(integriert)
4
TESTKOSTEN
codecentric AG
$(isolierter) $(integrierter) $(viele integrierte)
5
WELCOME TO INTEGRATION TEST HELL!
codecentric AG
Testpyramide
Orthogonale Dekomposition
- Akzeptanztests
- UI-Tests
Fazit
Diskussion
AGENDA
codecentric AG
TESTPYRAMIDE = EFFEKTIVE TESTSTRATEGIE
7
UI
Service
Unit
IntegrationsgradNach Mike Cohn
codecentric AG
$Wert(Tests) = Nutzen - Kosten
WELCHES QUALITÄTSLEVEL?
Ausrichtung an Risiken des Kontexts!
Integrative Tes...
codecentric AG
Isoliert Integriert
Erstellung & Wartung billig teuer
Feedback schnell langsam
Fehlerfindung einfach schwer...
codecentric AG
Isoliert Integriert
Stärken Komplexe Logik
(„kombinatorische
Explosion“),
Conditionals, Breite
Integration,...
codecentric AG
Vermischung Verantwortlichkeiten
 Integration
 Logik
ÜBERLADENE INTEGRATIONSTESTS
11
codecentric AG
„Single Responsibility Principle“ für Tests
ORTHOGONALE DEKOMPOSITION
12
codecentric AG
„BREIT“ & „TIEF“
.
IntegrativeTests
Isolierte Tests & orthogonal
13
codecentric AG
Inspiriert durch "the testing iceberg“ von Seb Rose / Matt Wynne
DIMENSION FACHLICHKEIT
Akzeptanztests
Entw...
codecentric AG
AKZEPTANZTEST != GUI-TEST
15
UI
Service
Unit
HELL YEAH!
Naives Verständnis von
„ATDD treibt Features E2E“
„...
codecentric AG
AKZEPTANZTESTS AUFSPLITTEN
UI Domain Rules
16
Akzeptanztests
codecentric AG
AKZEPTANZTESTS AUFSPLITTEN
17
codecentric AG
AKZEPTANZTESTS AUFSPLITTEN
UI Domain Rules
18
codecentric AG
 N integrative Webtests
BEISPIEL EMAIL-VALIDIERUNG
Eingabe Ausgabe
„gueltige@email.de“ „Email OK“
„mail.oh...
codecentric AG
 1 integrativer Webtest
 N x Isolierte Tests
BEISPIEL EMAIL-VALIDIERUNG
Eingabe Ausgabe
„gueltige@email.d...
codecentric AG
Analog zum Akzeptanztestbeispiel
 1 integrativer HTTP-Test
 N x Isolierte Tests
BEISPIEL WEB-SERVICE
Eing...
codecentric AG
E2E
Compo
nent
Unit
UI-TEST-PYRAMIDE
Integrationsgrad
 UI-Tests != E2E-Tests
22
codecentric AG
vollintegriert bis Backend
für
 Zusammenspiel mit Backend
 Kaum Logik: z.B. CRUD
 einfache Workflows
 S...
codecentric AG
BEISPIEL MAIL-CLIENT
E2E
Compo
nent
Unit
Minimal-Workflow
24
codecentric AG
UI-LAYER
Komponententest
 Testbarkeit nötig
 Fat Client
 SPA + REST
 server-side rendering?
E2E
Compo
n...
codecentric AG
UI-LAYER
E2E
Compo
nent
Unit
für
 UI-Workflows mit wenig
Backend-Interaktion
 Session-Status
26
UI
Mock
B...
codecentric AG
BEISPIEL MAIL-CLIENT
E2E
Compo
nent
Unit
Mail-Bearbeitung
27
codecentric AG
UI-UNIT-TEST
für komplexe Logik
 Werte rendern
 MVP: Presenter-Logik
E2E
Compo
nent
Unit
28
UI
codecentric AG
BEISPIEL
E2E
Compo
nent
Unit
Komplexe Adressformatierung
„D-80687, München, Elsenheimerstraße 55a“
„-, Münc...
codecentric AG
FAZIT
UI
Service
Unit
Test Pyramide
• Orthogonal
• Integrative Tests: Integration & Tiefe
• Isolierte Tests...
codecentric AG
QUELLEN
• Bücher
• "Specification by Example" - Gojko Adzic
• "Growing Object-Oriented Software, Guided by ...
codecentric AG
QUELLEN
• End-to-end Tests?
• http://www.higherorderlogic.com/2010/01/responding-to-brian-
marick
• Testing...
codecentric AG
FRAGEN UND DISKUSSION
33
Omerzu, http://commons.wikimedia.org/wiki/File:Orange_question_mark.svg?uselang=de
codecentric AG
 Attribution-ShareAlike 3.0 Germany
 http://creativecommons.org/licenses/by-sa/3.0/de/
LIZENZ
34
Nächste SlideShare
Wird geladen in …5
×

Integration Test Hell

1.480 Aufrufe

Veröffentlicht am

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.480
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
16
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Integration Test Hell

  1. 1. codecentric AG David Völkel – SEACON 2014 – 09.05.2014 INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN?
  2. 2. codecentric AG DAVID VÖLKEL 2 IT-Consultant Schwerpunkte  Test-Driven Development  Softwaredesign & Clean Code  Software Craftsman @softwerkskammer Twitter: @davidvoelkel
  3. 3. codecentric AG isoliert integriert 3 AUTOMATISIERTE TESTS vs.
  4. 4. codecentric AG $(isoliert) $(integriert) 4 TESTKOSTEN
  5. 5. codecentric AG $(isolierter) $(integrierter) $(viele integrierte) 5 WELCOME TO INTEGRATION TEST HELL!
  6. 6. codecentric AG Testpyramide Orthogonale Dekomposition - Akzeptanztests - UI-Tests Fazit Diskussion AGENDA
  7. 7. codecentric AG TESTPYRAMIDE = EFFEKTIVE TESTSTRATEGIE 7 UI Service Unit IntegrationsgradNach Mike Cohn
  8. 8. codecentric AG $Wert(Tests) = Nutzen - Kosten WELCHES QUALITÄTSLEVEL? Ausrichtung an Risiken des Kontexts! Integrative Tests für risikobehaftete Teile Test-Aufwand • Integrationsgrad • 20% / 80% Risiken senken • Domäne: Prototyp, sicherheitskritisch, … • Verteilung in App 8
  9. 9. codecentric AG Isoliert Integriert Erstellung & Wartung billig teuer Feedback schnell langsam Fehlerfindung einfach schwer Fragilität gering hoch Aussagekraft Nutzer mittel hoch 9 WARUM TEUER?
  10. 10. codecentric AG Isoliert Integriert Stärken Komplexe Logik („kombinatorische Explosion“), Conditionals, Breite Integration, Datenflüsse, Tiefe 10 WELCHER TESTLING?
  11. 11. codecentric AG Vermischung Verantwortlichkeiten  Integration  Logik ÜBERLADENE INTEGRATIONSTESTS 11
  12. 12. codecentric AG „Single Responsibility Principle“ für Tests ORTHOGONALE DEKOMPOSITION 12
  13. 13. codecentric AG „BREIT“ & „TIEF“ . IntegrativeTests Isolierte Tests & orthogonal 13
  14. 14. codecentric AG Inspiriert durch "the testing iceberg“ von Seb Rose / Matt Wynne DIMENSION FACHLICHKEIT Akzeptanztests Entwicklertests Fachlichkeit Integrationsgrad . 14
  15. 15. codecentric AG AKZEPTANZTEST != GUI-TEST 15 UI Service Unit HELL YEAH! Naives Verständnis von „ATDD treibt Features E2E“ „Testing Ice Cream Cone“ Inspiriert durch Alister Scott
  16. 16. codecentric AG AKZEPTANZTESTS AUFSPLITTEN UI Domain Rules 16 Akzeptanztests
  17. 17. codecentric AG AKZEPTANZTESTS AUFSPLITTEN 17
  18. 18. codecentric AG AKZEPTANZTESTS AUFSPLITTEN UI Domain Rules 18
  19. 19. codecentric AG  N integrative Webtests BEISPIEL EMAIL-VALIDIERUNG Eingabe Ausgabe „gueltige@email.de“ „Email OK“ „mail.ohne@tld“ „Email ungültig“ „mail.ohne.at.de“ „Email ungültig“ „@ohne-user.de“ „Email ungültig“ … 19
  20. 20. codecentric AG  1 integrativer Webtest  N x Isolierte Tests BEISPIEL EMAIL-VALIDIERUNG Eingabe Ausgabe „gueltige@email.de“ „Email OK“ „mail.ohne@tld“ „Email ungültig“ „mail.ohne.at.de“ „Email ungültig“ „@ohne-user.de“ „Email ungültig“ … GUI.render(email) Validator.validiationMessage(email) 20
  21. 21. codecentric AG Analog zum Akzeptanztestbeispiel  1 integrativer HTTP-Test  N x Isolierte Tests BEISPIEL WEB-SERVICE Eingabe Ausgabe „gueltige@email.de“ „Email OK“ „mail.ohne@tld“ „Email ungültig“ „mail.ohne.at.de“ „Email ungültig“ … REST-Endpoint ValidatorFacade.validate(email) 21
  22. 22. codecentric AG E2E Compo nent Unit UI-TEST-PYRAMIDE Integrationsgrad  UI-Tests != E2E-Tests 22
  23. 23. codecentric AG vollintegriert bis Backend für  Zusammenspiel mit Backend  Kaum Logik: z.B. CRUD  einfache Workflows  Schwer testbares Legacy UI E2E Compo nent Unit (UI-)E2E-TESTS 23 Back- end
  24. 24. codecentric AG BEISPIEL MAIL-CLIENT E2E Compo nent Unit Minimal-Workflow 24
  25. 25. codecentric AG UI-LAYER Komponententest  Testbarkeit nötig  Fat Client  SPA + REST  server-side rendering? E2E Compo nent Unit 25 UI Mock Back end
  26. 26. codecentric AG UI-LAYER E2E Compo nent Unit für  UI-Workflows mit wenig Backend-Interaktion  Session-Status 26 UI Mock Back end
  27. 27. codecentric AG BEISPIEL MAIL-CLIENT E2E Compo nent Unit Mail-Bearbeitung 27
  28. 28. codecentric AG UI-UNIT-TEST für komplexe Logik  Werte rendern  MVP: Presenter-Logik E2E Compo nent Unit 28 UI
  29. 29. codecentric AG BEISPIEL E2E Compo nent Unit Komplexe Adressformatierung „D-80687, München, Elsenheimerstraße 55a“ „-, München, Elsenheimerstraße 55a“? 29 UI
  30. 30. codecentric AG FAZIT UI Service Unit Test Pyramide • Orthogonal • Integrative Tests: Integration & Tiefe • Isolierte Tests: Conditionals & Breite • Spitz • Ausrichtung an Kontext-Risiken Orthogonale Dekomposition • Akzeptanztests splitten • Geschäftsregeln • UI • E2E-, UI-Layer- und UI-Unit-Tests 30
  31. 31. codecentric AG QUELLEN • Bücher • "Specification by Example" - Gojko Adzic • "Growing Object-Oriented Software, Guided by Tests" - Steve Freeman, Nat Pryce • GOOS Mailingliste • https://groups.google.com/forum/#!forum/growing-object- oriented-software • "Integrated Tests are a scam" - J.B. Rainsberger • http://www.jbrains.ca/permalink/using-integration-tests- mindfully-a-case-study • http://www.jbrains.ca/permalink/integrated-tests-are-a-scam- part-1 • "The Testing Iceberg" - Matt Whyne und Seb Rose • http://claysnow.co.uk/the-testing-iceberg/ 31
  32. 32. codecentric AG QUELLEN • End-to-end Tests? • http://www.higherorderlogic.com/2010/01/responding-to-brian- marick • Testing-Pyramide • http://martinfowler.com/bliki/TestPyramid.html • http://jamescrisp.org/2011/05/30/automated-testing-and-the- test-pyramid/ • Testing-Ice-Cream-Cone • http://watirmelon.com/2012/01/31/introducing-the-software- testing-ice-cream-cone/ • Wartbare Akzeptanztests, Jez Humble • http://de.slideshare.net/jezhumble/creating-maintainable- automated-acceptance-tests • http://skillsmatter.com/podcast/agile-testing/the-long-term-value- of-acceptance-tests 32
  33. 33. codecentric AG FRAGEN UND DISKUSSION 33 Omerzu, http://commons.wikimedia.org/wiki/File:Orange_question_mark.svg?uselang=de
  34. 34. codecentric AG  Attribution-ShareAlike 3.0 Germany  http://creativecommons.org/licenses/by-sa/3.0/de/ LIZENZ 34

×