Freitag, 10. Oktober 2008

Vorlesung Teil 5: Test-Driven Development

Gemeinsam mit Erik Gostischa-Franta, der uns auch kräftig bei der Qualitätssicherunges-Vorlesung und Übung hilft geben wir einen kurzen Einblick in Test-getriebene Entwicklung. Die Kernaussage auf den Punkt gebracht ist folgende: Für jedes Feature, das man plant und in die eigene Anwendung einbauen möchte, muss gleichzeitig nachgedacht werden, wie dieses zu testen ist. Dasselbe gilt dann für die eigentliche Implementation: hier ist immer zu überlegen, ob die konkrete Implementation auch (automatisch) zu testen ist. Über Automatisierung sprechen wir in diesem Podcast allerdings nicht, das ist schon in der Einheit mit Reinhard Pötz diskutiert worden.

Konkrete Inhalte sind:
  • Bedingungen für erfolgreiche Test-Strategien
  • Test-Driven Development
  • Granularität von Tests
  • Unit-Test Frameworks
  • Beispiel: Testen einer DAO Methode
Vorlesung als m4a

Kommentare:

Anonym hat gesagt…

Wie sieht's aus mit Refactoring? Ist das nicht auch ein Integraler Bestandteil von Test Driven Development?

Alexander Schatten hat gesagt…

Refactoring hat eigentlich mit TDD nichts zu tun. Die Möglichkeit die Refactoring (und entsprechende Tools und IDEs) heute bieten erlauben aber die Entwicklungs-Methoden die agile Prozesse fordern.

Günther Noack hat gesagt…

Hallo!

So wie es im Buch ,,Test Driven Development by Example'' und auf der Wikipedia-Seite zu TDD beschrieben wird, gehört es schon zum TDD-Zyklus.

Das ist wohl ein terminologisches Problem.

Viele Grüße,
Günther Noack

Alexander Schatten hat gesagt…

Ja, vielleicht ist es wirklich eine Frage der Terminologie.

Nach meinem Verständnis ist Refactoring nicht Teil der Kernidee die in TDD liegt.

Die Dinge sind natürlich miteinander Verknüpft, das ist klar. Refactoring ist ein wesentlicher Bestandteil moderner (agiler) Entwicklungsarbeit.

Ich persönlich sehe es halt nicht wirklich im engeren Umfeld von TDD. Aber vielleicht werde ich auf diese Meinungsunterschiede in der nächsten Aktualisierung eingehen.