Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software Engeniering II

Ähnliche Präsentationen


Präsentation zum Thema: "Software Engeniering II"—  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 Danke für Ihre Aufmerksamkeit. Jetzt gehts zu Live-demo :)
TTD Prinzip Danke für Ihre Aufmerksamkeit. Jetzt gehts zu Live-demo :)


Herunterladen ppt "Software Engeniering II"

Ähnliche Präsentationen


Google-Anzeigen