Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Test-Driven Development Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS.

Ähnliche Präsentationen


Präsentation zum Thema: "Test-Driven Development Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS."—  Präsentation transkript:

1 Test-Driven Development Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS 2014/2015 Referent: Dennis Peker

2 Gliederung 1. Was ist TDD? 2. Ablauf 3. Testen mit xUnit 4. Testbeispiel 5. Warum TDD?

3 1. Was ist TDD?  alternative Entwicklungsmethode von Computerprogrammen  erst Test, dann Produktivcode  inkrementell  Kerntechnik von Extreme Programming, damit Teil der agilen Softwareentwicklung

4 2. Ablauf 1. Test wird erstellt, der scheitert 2. Pruduktcode wird bearbeitet, damit Test positiv ausfällt 3. Refaktorisieren 4. Erstellen neuer Tests

5 2. Ablauf  Implementierung von neuem Code erst, wenn Test vorliegt  zu viel Code lässt nicht getestete Stellen entstehen, die beim Refaktorisieren Fehler erzeugen können  Refaktorisierung: Strukturierung des Codes  Ziel: Software einfach, redundanzfrei und verständlich machen  Voraussetzung für neuen Test  jede Aktivität lässt sich genau einer Phase zuordnen

6 2. Ablauf  Prinzipien: kontinuierliche Designverbesserungen, einfaches Design und Test- First  wenn Tests bereits geschrieben sind, ist Code auch testbar  höchstsäuberliche strukturierte Codebasis ist erforderlich  Design muss fortlaufend überarbeitet werden  entwickeln, was wir brauchen, wenn wir es brauchen

7 3. Testen mit xUnit  Tests häufig mit xUnit-Framework implementiert  grün = bestanden, rot = fehlgeschlagen  Red-Green-Refactor- Zyklus  Kent Beck (etablierte TDD in eXtreme Programming): 1. erst neuer Code, wenn Test fehlschlägt 2. Duplikationen müssen entfernt werden (Refaktorisierung)

8 3. Testen mit xUnit  weitere Grundlagen: 1. eng mit Code zusammenarbeiten (develop organically) 2. eigene Tests schreiben 3. Entwicklungsumgebung muss schnell auf kleine Veränderungen reagieren 4. Produkt muss aus zusammenhängenden, jedoch einfach verbundenen Komponenten bestehen, um Testen zu erleichtern

9 3. Testen mit xUnit  Entwickler muss lernen effektive Unit-Tests zu schreiben: 1. schnell ausführbar 2. einzeln ausführbar 3. einfach, verständlich benannt 4. Verwendung „echter“ Daten 5. Tests müssen Entwicklung vorantreiben

10 4. Beispiel  Programm, um sich Namen von Kunden zu merken: public class CustomerTest... public void testCustomerName() { Customer customer = new Customer("Bent Keck"); assertEquals("Bent Keck", customer.getName()); }

11 4. Beispiel  lassen Klasse erst leer, damit Test fehlschlägt: public class Customer... public Customer(String name) { } public String getName() { return null; }

12 4. Beispiel  Fehlermeldung: junit.framework.AssertionFailedError: expected: but was: at CustomerTest.testCustomerName(CustomerTest.java:14)

13 4. Beispiel  als nächstes wird Code geschrieben, der Testfall erfüllt  Testfall abgeschlossen public class Customer... public String getName() { return "Bent Keck"; }

14 4. Beispiel  Namen in ein eigenes Feld extrahieren:  wieder grüner Balken public class Customer... private String name = "Bent Keck"; public String getName() { return name; }

15 5. Warum TDD?  ermöglicht es kleine Schritte bei Entwicklung zu machen  weniger Bugs, einfachere Behebung  für große Projekte geeignet  schnelle Entwicklung, jeder Zyklus dauert meist wenige Minuten  eigentlich keine Test- sondern Just-in-time-Designstrategie:  gibt frühestmöglich Feedback, ob Design verwendbar sein wird

16 Vielen Dank!

17 Quellen  entwicklung-tdd/ entwicklung-tdd/    04/W/3311/sectionM/case_studies/money/KentBeck_TDD_byexample.pdf 04/W/3311/sectionM/case_studies/money/KentBeck_TDD_byexample.pdf


Herunterladen ppt "Test-Driven Development Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS."

Ähnliche Präsentationen


Google-Anzeigen