Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Use this title slide only with an image Test Code Design Pattern Winfried Schwarzmann, SAP AG February 19, 2014 Public.

Ähnliche Präsentationen


Präsentation zum Thema: "Use this title slide only with an image Test Code Design Pattern Winfried Schwarzmann, SAP AG February 19, 2014 Public."—  Präsentation transkript:

1 Use this title slide only with an image Test Code Design Pattern Winfried Schwarzmann, SAP AG February 19, 2014 Public

2 ©2014 SAP AG or an SAP affiliate company. All rights reserved.2 Public Agenda 5-S Methode für Test Code Schritt 3: Säubere den Arbeitsplatz Lesbarkeit Duplikation Schritt 4: Standardisiere Sauberkeit am Arbeitsplatz Test Code Design Pattern Ausblick

3 ©2014 SAP AG or an SAP affiliate company. All rights reserved.3 Public 5-S Methode Entferne auskommentierten Test Code … 1. Sortiere unnötige Dinge aus Test Code als primärer Arbeitsplatz eines testgetriebenen Entwicklers

4 ©2014 SAP AG or an SAP affiliate company. All rights reserved.4 Public 5-S Methode Formatiere Test Code einheitlich … 2. Stelle verbliebene Dinge ordentlich hin Test Code als primärer Arbeitsplatz eines testgetriebenen Entwicklers

5 ©2014 SAP AG or an SAP affiliate company. All rights reserved.5 Public 5-S Methode Verbessere die Lesbarkeit Hebe Duplikation auf … 3. Säubere den Arbeitsplatz Test Code als primärer Arbeitsplatz eines testgetriebenen Entwicklers

6 ©2014 SAP AG or an SAP affiliate company. All rights reserved.6 Public 5-S Methode Entwerfe Test Code Design Pattern … 4. Standardisiere Sauberkeit am Arbeitsplatz Test Code als primärer Arbeitsplatz eines testgetriebenen Entwicklers

7 ©2014 SAP AG or an SAP affiliate company. All rights reserved.7 Public 5-S Methode Wende Test Code Design Pattern effizient an … 5. Sichere den Standard und verbessere ihn Test Code als primärer Arbeitsplatz eines testgetriebenen Entwicklers

8 ©2014 SAP AG or an SAP affiliate company. All rights reserved.8 Public Testmethode Struktur Gegeben: Erzeuge Objekt der zu testenden Klasse (CUT) Erzeuge Objekte der abhängigen Klassen (DOCs) Installiere DOCs in CUT (Injektion) Wenn: Bereite Eingabe vor (Argumente für Eingabeparameter) Führe die zu testende Methode (MUT) mit Eingabe aus Nehme (tatsächliche) Ausgabe oder Fehlermeldung entgegen Dann: Bereite die erwartete Ausgabe vor Vergleiche erwartete mit tatsächlicher Ausgabe GEGEBEN WENN DANN

9 ©2014 SAP AG or an SAP affiliate company. All rights reserved.9 Public 3. Säubere den Arbeitsplatz Lesbarkeit: allgemein Lesbarkeit eines Methodenaufrufs: -Gute Namen für die Methode und ihre Parameter -Beschränkung auf wenige Eingabeparameter -Vermeide Schalter und Negation bei Parametern Nur wenige zu testende Methoden erfüllen diese Kriterien. Was tun?

10 ©2014 SAP AG or an SAP affiliate company. All rights reserved.10 Public 3. Säubere den Arbeitsplatz Lesbarkeit: MUT Aufruf Lösung: Hilfsmethode (HUT) der Testklasse kapselt MUT Aufruf -HUT Name präzise und informativ -Name der HUT Parameter einfach und selbsterklärend -HUT Aufruf ohne Dummy Parameter -HUT Aufruf ohne Parameter wenn Eingabe im HUT Name -HUT Aufruf mit wenigen Schaltern -HUT Schalter ohne/richtige Negation MUT HUT

11 ©2014 SAP AG or an SAP affiliate company. All rights reserved.11 Public 3. Säubere den Arbeitsplatz Lesbarkeit, Duplikation: Ein- und Ausgabe von MUT Lösung: Hilfsattribute (HATs) der Testklasse -HUT muss keine Parameter für Dateneingabe definieren -HUT muss keine Parameter für Datenausgabe definieren -HUT kann Datenausgabe gleich mit Erwartung vergleichen

12 ©2014 SAP AG or an SAP affiliate company. All rights reserved.12 Public 3. Säubere den Arbeitsplatz Lesbarkeit, Duplikation: Ein- und Ausgabeobjekt für MUT

13 ©2014 SAP AG or an SAP affiliate company. All rights reserved.13 Public 3. Säubere den Arbeitsplatz Lesbarkeit, Duplikation: Vorbereitung der Erwartung HUT = WENN + DANN

14 ©2014 SAP AG or an SAP affiliate company. All rights reserved.14 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Test Class Design Pattern Test Class Design Pattern: Eine Testklasse soll sich auf eine Produktivmethode beschränken. Begründung: Single-Responsibility-Prinzip Großer innerer Zusammenhang zwischen MUT auf der einen Seite und HUT und HAT auf der anderen Seite.

15 ©2014 SAP AG or an SAP affiliate company. All rights reserved.15 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Isolation von MUT gegen CUT-Methoden: Überblick TD_MUT leitet von CL_CUT ab und redefiniert die CUT Methoden, von denen MUT abhängt (DOMs).

16 ©2014 SAP AG or an SAP affiliate company. All rights reserved.16 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Isolation von MUT: Probleme Probleme: -Verschiedene DOM Anforderungen der MUT Tests führen in TD_MUT zu Fallunterscheidungen oder komplexem Code (Lesbarkeit). -DOM Redefinitionen der Test Double Klassen zu verschiedenen MUTs sind ähnlich (Duplikation ).

17 ©2014 SAP AG or an SAP affiliate company. All rights reserved.17 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Isolation von MUT: Lösung TD_DOM als einziger Anbieter von DOM Redefinitionen: statt für jedes MUT die DOM Redefinitionen auf lokale Test Double Klassen zu verteilen Isolation von MUT aus mehreren DOM Doubles kombinierbar: spezielle Testanforderungen für MUT einfach und uneingeschränkt erfüllbar (z.B. ein DOM Double als Saboteur) TD_CUT als globaler Kombinierer der DOM Doubles (Decorator Pattern): statt CUT nehmen Tests TD_CUT ins Visier, das das Zusammenwirken aller für die MUT Isolation benötigten DOM Doubles ermöglicht

18 ©2014 SAP AG or an SAP affiliate company. All rights reserved.18 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Decorator Double TD_CUT TD_CUT LTD_DOM Delegation Injektion

19 ©2014 SAP AG or an SAP affiliate company. All rights reserved.19 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Decorator Double TD_CUT: lokale LTD_DOMs LTD_DOM TC_CUT LTD_DOM

20 ©2014 SAP AG or an SAP affiliate company. All rights reserved.20 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Test Double Design Pattern Test Double Design Pattern: Eine Test Double Klasse soll sich auf eine Produktivmethode beschränken. Begründung: SOLID-Prinzipien Für das globale Decorator Double TD_CUT und seine lokalen Methoden Doubles LTD_DOMs sprechen: -Single-Responsibility: Änderung eines DOM Doubles -Open-Closed: Hinzufügen eines neuen DOM Doubles -Liskovsche Substitution: DOM Doubles verhalten sich wie CUT

21 ©2014 SAP AG or an SAP affiliate company. All rights reserved.21 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Test Double Design Pattern: allgemein

22 ©2014 SAP AG or an SAP affiliate company. All rights reserved.22 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Test Double Design Pattern: wenn MUT hat nur ein DOM Ohne Dekorator Double Klasse TD_CUT, da TD_DOM per Definition genau nur DOM redefiniert.

23 ©2014 SAP AG or an SAP affiliate company. All rights reserved.23 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Isolation von MUT gegen DOC-Methoden: Überblick

24 ©2014 SAP AG or an SAP affiliate company. All rights reserved. Danke Kontakt: Winfried Schwarzmann, SAP AG Test Code Design Pattern

25 ©2014 SAP AG or an SAP affiliate company. All rights reserved.25 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Decorator Double TD_CUT: Attribute Problem: Ein TD_DOM1 Objekt setzt ein Attribut, auf das das TD_DOM2 Objekt zugreifen will. Decorator DOM Redefinition: IF mo_dom IS BOUND. mo_dom->m_attr_accessed_by_dom = m_attr_accessed_by_dom. mo_dom->dom( ). m_attr_written_by_dom = mo_dom->m_attr_written_by_dom. ELSE. super->dom( ). ENDIF.

26 ©2014 SAP AG or an SAP affiliate company. All rights reserved.26 Public 4. Standardisiere Sauberkeit am Arbeitsplatz Test Double Design Pattern (Verfeinerung) Test Double Design Pattern (Verfeinerung): Eine Decorator Double Klasse sollte sich auf ein Produktivinterface beschränken. Begründung: Interface-Segregation-Prinzip.

27 27©2014 SAP AG or an SAP affiliate company. All rights reserved.

28 28 Public © 2014 SAP AG oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG oder ein SAP-Konzernunternehmen nicht gestattet. SAP und andere in diesem Dokument erwähnte Produkte und Dienstleistungen von SAP sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP AG (oder von einem SAP-Konzernunternehmen) in Deutschland und verschiedenen anderen Ländern weltweit. Weitere Hinweise und Informationen zum Markenrecht finden Sie unter Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Produkte können länderspezifische Unterschiede aufweisen. Die vorliegenden Unterlagen werden von der SAP AG oder einem SAP-Konzernunternehmen bereitgestellt und dienen ausschließlich zu Informations- zwecken. Die SAP AG oder ihre Konzernunternehmen übernehmen keinerlei Haftung oder Gewährleistung für Fehler oder Unvollständigkeiten in dieser Publikation. Die SAP AG oder ein SAP-Konzernunternehmen steht lediglich für Produkte und Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren. Insbesondere sind die SAP AG oder ihre Konzernunternehmen in keiner Weise verpflichtet, in dieser Publikation oder einer zugehörigen Präsentation dargestellte Geschäftsabläufe zu verfolgen oder hierin wiedergegebene Funktionen zu entwickeln oder zu veröffentlichen. Diese Publikation oder eine zugehörige Präsentation, die Strategie und etwaige künftige Entwicklungen, Produkte und/oder Plattformen der SAP AG oder ihrer Konzern- unternehmen können von der SAP AG oder ihren Konzernunternehmen jederzeit und ohne Angabe von Gründen unangekündigt geändert werden. Die in dieser Publikation enthaltenen Informationen stellen keine Zusage, kein Versprechen und keine rechtliche Verpflichtung zur Lieferung von Material, Code oder Funktionen dar. Sämtliche vorausschauenden Aussagen unterliegen unterschiedlichen Risiken und Unsicherheiten, durch die die tatsächlichen Ergebnisse von den Erwartungen abweichen können. Die vorausschauenden Aussagen geben die Sicht zu dem Zeitpunkt wieder, zu dem sie getätigt wurden. Dem Leser wird empfohlen, diesen Aussagen kein übertriebenes Vertrauen zu schenken und sich bei Kaufentscheidungen nicht auf sie zu stützen.


Herunterladen ppt "Use this title slide only with an image Test Code Design Pattern Winfried Schwarzmann, SAP AG February 19, 2014 Public."

Ähnliche Präsentationen


Google-Anzeigen