Was ist Test Driven Development

Test Driven Development (TDD) ist eine spezielle Vorgehensweise bei der Softwareentwicklung.

Was bringt uns TDD?

Die grundlegende Idee ist, dass man vor der tatsächlichen Softwareeinheit erst einen entsprechenden Test für die, nicht existente, Software entwickelt. Die Vorteile dieses Vorgehens liegen auf der Hand:

  1. In der (nicht TDD) Praxis, ist es leider oft so, dass zunächst keine Tests entwickelt werden, mit der Absicht dies später zu tun. Die Erfahrung zeigt aber, dass das nachträgliche Entwickeln von Testfällen für eine Software deutlich schwiereiger, aufwendiger und kostenintensiver ist, als die Tests direkt am Anfang zu entwickeln.
  2. Die Qualität der Software wird erheblich verbessert, da der Testfall sofort ungültige Änderungen an der Software aufdeckt.
  3. Refactoring wird einfacher, da Testfälle existieren, die die Funktionalität festlegen und damit auch stabil halten.
  4. Die Architektur wird flexibler, weil man sich beim Erstellen des Testfalls bereits Gedanken machen muss,wie die zu erstellende Software benutzt werden soll. Macht man das nicht und "legt erstmal los", dann hat man später auf jeden Fall Probleme, wenn man die Software von einem anderen Subsystem aus aufrufen möchte.
  5. TDD unterstützt lose Kopplung, da es einfacher ist isolierte Units (lose gekoppelt) zu testen, als eng gekoppelte Unit-Verbunde.

TDD wird der agilen Softwareentwicklung zugeordnet und lässt sich perfekt mit Scrum kombinieren.

Werkzeuge um TDD zu realisieren:

  • JUnit
  • TestNG
Anderer Begriff für TDD: Behaviour Driven Design, bzw. Verhaltensorientiertes Design.