Agile Softwareentwicklung und damit auch testgetriebene Entwicklung (TDD) ist in aller Munde. Wir finden, dass „testgetriebene Entwicklung“ ein unglücklich gewählter Name für das Vorgehen ist. Denn, bei TDD ist es nicht das Ziel, Tests zu erstellen. Vielmehr handelt es sich bei TDD um eine Designmethode. Gut angewandtes TDD hält Architektur und Anwendung flexibel. Bei nicht klar definiertem Zielbild unterstützt TDD, Schwächen in der Anforderungsbeschreibung transparent zu machen. Die Erfüllung bzw. die Einhaltung von sich ändernden Anforderungen werden verifizierbar.

TDD in der Theorie vorzustellen kommt oft mit Missverständnisse einher, wie „das funktioniert doch nur bei kleinen Algorithmen“, „das geht nur bei Grüne-Wiese-Projekten“ oder „unsere Anforderungen ändern sich zu häufig, um TDD anwenden zu können“. Daher möchten wir live eine kleine Anforderung in einem bestehenden Produkt nach TDD umsetzen. Folgende Punkte werden dabei beleuchtet:

  • Welche Vorteile und gegebenenfalls Nachteile entstehen durch die Implementierung nach TDD?
  • Wie funktioniert TDD? Wann entsteht der Produktivcode tatsächlich?
  • Wann und wie entstehen welche Tests und welchen Einfluss hat TDD darauf?
  • Hat TDD Einfluss auf die innere und äußere Software Qualität?
  • Abgrenzung TDD zu BDD und DDD

Peter Fichtner Fiducia & GAD IT AG

Peter Fichtner ist seit 1995 in der Fiducia & GAD IT AG in Karlsruhe tätig. Nach über zehn Jahren als Java-Anwendungsentwickler wechselte er dort 2009 in die Architektur und greift mittlerweile auf fast zwei Jahrzehnte Erfahrung als Architekt, Designer und Entwickler für verschiedenste Themen im Java-Umfeld zurück. Aktuell fokussiert er die Themen Test-Driven-Development (TDD), Continuous Integration (CI), Clean Code (CC) sowie agile Entwicklungsmethoden. In seiner Rolle als Coach für agiles Softwareengineering (ASE) unterstützt Peter Fichtner seit fünf Jahren agile und nicht-agile Teams in der Fiducia & GAD mit Schulungen und Coachings.

Tilmann Glaser

Tilmann Glaser arbeitet seit 2011 für die it-economics GmbH. Als iSAQB zertifizierter Software Architekt betreut er Entwicklungsprojekte und unterstützt Teams als Coach für agile Softwareengineering Methoden (ASE). An der Dualen Hochschule bringt er Studenten Java Entwicklung und neue Konzepte der IT näher. Seine Kernthemen sind agile Transition, Architektur in agilen und klassischen Umfeldern, Clean Code, Test-Driven-Development (TDD) und Project Recovery.