design for testability (medconf 2012)
DESCRIPTION
Das Konzept vom "Design for Testability" stammt ursprünglich aus dem Hardware-Entwurf und bezeichnet die Auslegung elektronischer Produkte auf Prüfbarkeit. Mittlerweile ist dieser Begriff aber auch in der Welt der Software-Technik geläufig, wo er im Zusammenhang mit Methoden wie Testautomatisierung und Test-Driven Development eine zunehmende Rolle spielt. Der zentrale Gegenstand dieses Vortrags ist die Frage, wie sich eine gute Testbarkeit auf den verschiedenen Ebenen -- Module, Integration, System -- erreichen lässt. Dabei werden verschiedene Entwurfstechniken und Architekturstile vorgestellt, mit konkreten Erfahrungen aus der Praxis untermalt und in Bezug auf ihre Dienlichkeit bewertet. Was lernen die Zuhörer in dem Vortrag: Es werden sowohl theoretische Grundlagen zum "Design for Testability" als auch spezifische Fallbeispiele behandelt. Dabei sollen nicht nur hilfreiche Ansätze besprochen, sondern auch populäre Trugschlüsse zur Testbarkeit von Software-Systemen beleuchtet werden. Vortrag von Daniel Mölle Zielgruppe: Softwareentwickler, Softwarearchitekten, ProjektleiterTRANSCRIPT
![Page 1: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/1.jpg)
© Zühlke 2012
Dr. Daniel Mölle
Design for Testability
27. September 2012Folie 1
![Page 2: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/2.jpg)
© Zühlke 2012
Design for Testability
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 2
![Page 3: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/3.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Rückblick
Informatik und Ingenieurwesen
27. September 2012Folie 3
![Page 4: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/4.jpg)
© Zühlke 2012
1968: Software Engineering Conference
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 4
![Page 5: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/5.jpg)
© Zühlke 2012
1972: The Humble Programmer
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 5
![Page 6: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/6.jpg)
© Zühlke 2012
1986: Computer Science?
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 6
![Page 7: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/7.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Testbarkeit
Von Hardware zu Software
27. September 2012Folie 7
![Page 8: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/8.jpg)
© Zühlke 2012
Testbarkeit bei Hardware
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 8
Korrekt bestückt?Bauteile intakt?Lötstellen okay?
![Page 9: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/9.jpg)
© Zühlke 2012
Übertragung auf Software
27. September 2012Design for Testability | Dr. Daniel Mölle
Korrektes Deployment?Komponentenlogik intakt?
Verbindungen okay?
Folie 9
![Page 10: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/10.jpg)
Implementierung
Anforderungen
Architektur
Design Unittests
Integrationstests
Systemtests
![Page 11: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/11.jpg)
© Zühlke 2012
Königsdisziplin:Automatisierte Systemtests
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 11
![Page 12: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/12.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Unittests
27. September 2012Folie 12
![Page 13: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/13.jpg)
![Page 14: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/14.jpg)
InputController WorkflowEngine
Translator DisplayDriver
UIController
![Page 15: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/15.jpg)
UIControllerKeyHandling.h
ViewStack.hKeyHandling.c
ViewStack.c Presenter.h
Presenter.c
InputController WorkflowEngine
Translator DisplayDriver
![Page 16: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/16.jpg)
UIController
TranslatorMock
DisplayDriverMock
UIControllerTestSuite
KeyHandling.h
ViewStack.hKeyHandling.c
ViewStack.c Presenter.h
Presenter.c
![Page 17: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/17.jpg)
© Zühlke 2012
Testbarkeit auf Modulebene
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 17
Architektur
Design
Buildsystem
Testumgebung
![Page 18: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/18.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Integrationstests
27. September 2012Folie 18
![Page 19: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/19.jpg)
![Page 20: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/20.jpg)
InputController WorkflowEngine
Translator DisplayDriver
UIController
![Page 21: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/21.jpg)
InputController WorkflowEngine
Translator DisplayDriver
UIController
![Page 22: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/22.jpg)
IntegrationTest
WorkflowEngine
TranslatorMock
DisplayDriverMock
UIController
?
![Page 23: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/23.jpg)
© Zühlke 2012
Testbarkeit auf Integrationsebene
27. September 2012Design for Testability | Dr. Daniel Mölle
Architektur
Design
Buildsystem
Testumgebung
Folie 23
![Page 24: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/24.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Systemtests
27. September 2012Folie 24
![Page 25: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/25.jpg)
InputController WorkflowEngine
Translator DisplayDriver
UIController
![Page 26: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/26.jpg)
InputController WorkflowEngine
Translator DisplayDriver
UIController
Testcode Testcode
Testcode
Testcode
Testschnittstelle
![Page 27: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/27.jpg)
![Page 28: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/28.jpg)
InputController UIController
HartverdrahteterFunktionsaufruf
Rücksprung
![Page 29: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/29.jpg)
Client Server Client
Network
SystemTest
![Page 30: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/30.jpg)
© Zühlke 2012
Testbarkeit auf Systemebene
27. September 2012Design for Testability | Dr. Daniel Mölle
Architektur
Design
Buildsystem
Testumgebung
Folie 30
![Page 31: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/31.jpg)
© Zühlke 2012
Dr. Daniel Mölle
Und die Kosten?
27. September 2012Folie 31
Design for Testability | Dr. Daniel Mölle
![Page 32: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/32.jpg)
© Zühlke 2012
Der Trade-Off
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 32
Testabdeckung
Aufwand
Verständlichkeit
Qualität (und Zeit)
![Page 33: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/33.jpg)
© Zühlke 2012
Design for Testability
Dr. Daniel Mölle
Fazit
27. September 2012Folie 33
![Page 34: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/34.jpg)
© Zühlke 2012
Take-Away Messages
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 34
Testbarkeit als nicht-funktionale Anforderung
Wenn man es richtig macht:Gewinn an Qualität und Zeit
Von Anfang an in allen Disziplinen berücksichtigen
Alle drei Ebenen beachten
![Page 35: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/35.jpg)
© Zühlke 2012
Umfassende Automatisierung
der Tests
27. September 2012Design for Testability | Dr. Daniel Mölle Folie 35
Erfolgsindikator #1
![Page 36: Design for Testability (MedConf 2012)](https://reader033.vdocument.in/reader033/viewer/2022052909/55980ee91a28abc80e8b45d0/html5/thumbnails/36.jpg)
Bildnachweis:Die Fotos auf den Folien 5 (Dijkstra), 13 (Testpads) und 19 (JTAG)sind den Wikimedia Commons entnommen.