Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software Engeniering II Auftrageber: Prof. Dr. Wolfgang Streng Vortrag: Kulyk Nazar.

Ähnliche Präsentationen


Präsentation zum Thema: "Software Engeniering II Auftrageber: Prof. Dr. Wolfgang Streng Vortrag: Kulyk Nazar."—  Präsentation transkript:

1 Software Engeniering II Auftrageber: Prof. Dr. Wolfgang Streng Vortrag: Kulyk Nazar

2 Agenda Was is Test Driven Development Vorgehensweise beim TDD Unit Tests Lebenszyklus eines Testfalls TTD Illustriert Zusammenfassung Live Demo

3 Test Driven Development (TTD) ist eine Entwicklungsmethode. TTD hilft besseren Code schneller zu schreiben. Klassischerweise werden Tests nach oder parallel unabhängig zum zu testenden System entwickelt. Gründe: –Akuter Zeitmangel –Mangelhafte Testbarkeit –Faulheit bzw. mangelnde Disziplin der Programmierer –Firmenpolitik verbietet Investition nicht-funktionaler Programmteile

4 TTD Prinzip Unit Test und Systemwide Tests –White and Black Box Tests Testautomatisierung TTD Prinzip –Schreibe einen kleinen Test für den nächsten zu implementierenden Funktionalitätshappen. Dieser Test sollte nicht funktionieren. –Erfülle den Test mit möglichst wenig Code –Räume den Code auf. Refaktoring Diese drei Schritte werden so lang wiederholt bis dem Entwickler keine sinnvollen Tests mehr einfallen. TTD ist Test First Development plus Refactoring

5 TTD Prinzip Unit Tests –dienen zur Validierung der Korrektheit von Modulen einer Software, z.B. von einzelnen Klassen.

6 TTD Prinzip Unit Tests "Assert" –Wie testen wir mit Unit? assertTrue(boolean condition) verifiziert, ob eine Bedingung wahr ist. assertEquals(Object expected, Object actual) verifiziert, ob zwei Objekte gleich sind. Der Vergleich der Objekte erfolgt in JUnit über die equals Methode. assertNull(Object object) verifiziert, ob eine Objektreferenz null ist. assertNotNull(Object object) verifiziert, ob eine Objektreferenz nicht null ist. assertSame(Object expected, Object actual) verifiziert, ob zwei Referenzen auf das gleiche Objekt verweisen.

7 TTD Prinzip Lebenszyklus eines Testfalls –Das Test-Framework sucht nach Tests –Test-Framework sammelt diese Testfallmethoden in einer Testsuite und führt sie voneinander isoliert aus. –für jeden Testfall wird ein neues Exemplar der Testklasse erzeugt und damit eine frische Test-Fixture. –die setUp Methode wird aufgerufen. –einer der Test Methoden wird ausgeführt. –Nach der Ausführung des Testfalls ruft das Framework die tearDown Methode. –Dieser Zyklus wird vereinfacht erklärt ab Schritt 3 solange wiederholt, bis alle Testfälle jeweils einmal ausgeführt wurden.

8 TTD Prinzip Unit Test UML Was sind TestSuits ?

9 TTD Prinzip Erster Schritt: Erschtellung des Testfalls –Ein Testfall für Äpfeln: public class AppleTest extends TestCase { public void testTaste() { Apple apple = new Apple (golden); assertEquals (Should taste sweet,SWEET, apple.getTaste()); }

10 TTD Prinzip Zweiter Schritt: Erschtellung der Fachklasse –Nach erstem Testlauf: public class Apple { private String type; public Apple ( String type ) { this.type = type; } public String getTaste () { return ; }

11 TTD Prinzip Zweiter Schritt: Erschtellung der Fachklasse –Test Fails –Fix class: public class Apple { private String type; public Apple ( String type ) { this.type = type; } public String getTaste () { if (golden == type) return SWEET; return ; }

12 TTD Prinzip Dritter Schritt: Refaktorierung –Anpassung von dem Testfall: Apple apple = new GoldenApple(); –Implämentierung von den Klassen: public interface Apple { public String getTaste () ; } public class GoldenApple implements Apple { private static final String TASTE = SWEET; public String getTaste () { return TASTE; }

13 TTD Prinzip Zusammenfassung –TTD hilft besseren Code schneller zu entwickeln Debuging ist überflüssig –TTD führt zu einer benutzerorientierten Programmierung –TTD ist einfach zu erlernen (geringer Investitionsaufwand) Es gibt verschiedene Test Frameworks –Für verschiedene Sprachen –Um verschiedene Functionalitäten zu testen TTD Community -

14 TTD Prinzip Danke für Ihre Aufmerksamkeit. Jetzt gehts zu Live-demo :)


Herunterladen ppt "Software Engeniering II Auftrageber: Prof. Dr. Wolfgang Streng Vortrag: Kulyk Nazar."

Ähnliche Präsentationen


Google-Anzeigen