Einführung Test Driven Development

Wenn ein Entwickler eine Idee für ein neues Feature hat, oder findet, dass man den alten Code umstrukturieren sollte treten immer wieder die gleichen Probleme auf. Kann ich den alten Code ohne Risiko anpassen, so dass die alten Programmteile nachher noch laufen? Wenn ich das Programm von Hand teste, habe ich wirklich an alles gedacht?

Hier setzt Test Driven Development (TDD) ein – also testgetriebene Entwicklung. TDD bedeutet, dass man für jedes Stück Code, dass man programmiert zuerst ein Test schreibt, somit ist man sicher, dass ein Programmteil auch getestet ist und funktioniert. Wenn man irgendwann die Funktion anpassen will, kann man nach der Veränderung einfach den Test laufen lassen und sich sicher sein, dass die Funktionalität immer noch die gleiche ist.

TDD folgt dem einfachen Grundsatz:

  1. Test schreiben
  2. Test durchlaufen – Test schlägt fehl
  3. Code anpassen
  4. Test durchlaufen – Test funktioniert
  5. Code Refactoring

TDD ein bisschen mehr beschrieben:

  1. Test schreiben für eine kleine Funktionalität
  2. Test durchlaufen lassen und sehen, wie der Test fehlschlägt
  3. Den Test so einfach wie möglich, durch hinzufügen einer Funktionalität im Code, zum laufen bringen (hierbei können auch Codesünden begangen werden, dass spielt in der 1. Phase keine Rolle)
  4. Test durchlaufen lassen und sehen, wie der Test funktioniert
  5. Code Refactoring – Code so korrigieren, dass er sauber ist / Code Redundanzen entfernen
  6. (jedesmal wenn eine Änderung am Code gemacht wird, muss wieder bei 1 begonnen werden bis das Refactoring abgeschlossen ist)

Zu beginn dachte ich auch, dass dies ja viel Zusatzaufwand bedeutet. Aber man muss bedenken, dass die Funktionen ja sowieso getestet werden müssen, warum also nicht schon vorher definieren, was man testen will? Ausserdem hat man diese Tests auch in Zukunft und Veränderungen können sofort gecheckt werden, ohne dass man von Hand durchgehen und überlegen muss, ob dies auch wirklich funktionieren könnte.

Ich habe noch einen interessanten Link im Netz gefunden, der Anhand eines Videotutorials von FizzBuzz zeigt, wie Test Driven Development mit Java/Junit funktioniert.

Quellen
Buch Test-Driven Development by Kent Beck
Begriff Test Driven Development by Wiki

7 Responses

  1. Wänns eso eifach wäri 🙂 Ich wött jetzt zersch mal chli softwareentwickle lerne. Das isch mal gnueg fürs erschte. Usserdem hani s Ziel miteme Kolleg es cools Open Source Projekt z starte.

  2. Finally i quit my regular job, now i earn decent money online
    you should try too, just search in google – bluehand
    roulette system

  3. I see a lot of interesting content on your page.
    You have to spend a lot of time writing, i know how to save you a lot of time,
    there is a tool that creates high quality, SEO friendly articles in couple of minutes, just type
    in google – k2 unlimited content

Leave a Reply

Your email address will not be published. Required fields are marked *