Download - Design for Testability (MedConf 2012)

Transcript
Page 1: Design for Testability (MedConf 2012)

© Zühlke 2012

Dr. Daniel Mölle

Design for Testability

27. September 2012Folie 1

Page 2: Design for Testability (MedConf 2012)

© Zühlke 2012

Design for Testability

27. September 2012Design for Testability | Dr. Daniel Mölle Folie 2

Page 3: Design for Testability (MedConf 2012)

© 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)

© 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)

© 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)

© Zühlke 2012

1986: Computer Science?

27. September 2012Design for Testability | Dr. Daniel Mölle Folie 6

Page 7: Design for Testability (MedConf 2012)

© 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)

© 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)

© 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)

Implementierung

Anforderungen

Architektur

Design Unittests

Integrationstests

Systemtests

Page 11: Design for Testability (MedConf 2012)

© 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)

© Zühlke 2012

Design for Testability

Dr. Daniel Mölle

Unittests

27. September 2012Folie 12

Page 13: Design for Testability (MedConf 2012)
Page 14: Design for Testability (MedConf 2012)

InputController WorkflowEngine

Translator DisplayDriver

UIController

Page 15: Design for Testability (MedConf 2012)

UIControllerKeyHandling.h

ViewStack.hKeyHandling.c

ViewStack.c Presenter.h

Presenter.c

InputController WorkflowEngine

Translator DisplayDriver

Page 16: Design for Testability (MedConf 2012)

UIController

TranslatorMock

DisplayDriverMock

UIControllerTestSuite

KeyHandling.h

ViewStack.hKeyHandling.c

ViewStack.c Presenter.h

Presenter.c

Page 17: Design for Testability (MedConf 2012)

© 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)

© Zühlke 2012

Design for Testability

Dr. Daniel Mölle

Integrationstests

27. September 2012Folie 18

Page 19: Design for Testability (MedConf 2012)
Page 20: Design for Testability (MedConf 2012)

InputController WorkflowEngine

Translator DisplayDriver

UIController

Page 21: Design for Testability (MedConf 2012)

InputController WorkflowEngine

Translator DisplayDriver

UIController

Page 22: Design for Testability (MedConf 2012)

IntegrationTest

WorkflowEngine

TranslatorMock

DisplayDriverMock

UIController

?

Page 23: Design for Testability (MedConf 2012)

© 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)

© Zühlke 2012

Design for Testability

Dr. Daniel Mölle

Systemtests

27. September 2012Folie 24

Page 25: Design for Testability (MedConf 2012)

InputController WorkflowEngine

Translator DisplayDriver

UIController

Page 26: Design for Testability (MedConf 2012)

InputController WorkflowEngine

Translator DisplayDriver

UIController

Testcode Testcode

Testcode

Testcode

Testschnittstelle

Page 27: Design for Testability (MedConf 2012)
Page 28: Design for Testability (MedConf 2012)

InputController UIController

HartverdrahteterFunktionsaufruf

Rücksprung

Page 29: Design for Testability (MedConf 2012)

Client Server Client

Network

SystemTest

Page 30: Design for Testability (MedConf 2012)

© 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)

© 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)

© 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)

© Zühlke 2012

Design for Testability

Dr. Daniel Mölle

Fazit

27. September 2012Folie 33

Page 34: Design for Testability (MedConf 2012)

© 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)

© 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)

Bildnachweis:Die Fotos auf den Folien 5 (Dijkstra), 13 (Testpads) und 19 (JTAG)sind den Wikimedia Commons entnommen.