im Buch "Softwareentwicklung von Kopf bis Fuß" kam ich auf das Thema TDD "test driven development".
Nutzt das schon einer ?
Wer nicht weiß was gemeint ist, hier eine kurze Info
![Arrow :arrow:](./images/smilies/arrow.gif)
Ich habe bisher bei der Entwicklung immer erst eine Funktion / Prozedur / Klasse geschrieben und dann per debugger und Programmtests geprüft ob diese OK ist.
Das geht, aber bei der nächsten Anpassung - seien wir ehrlich - werden die alten Tests nicht erneut ausgeführt und ab und zu bricht eine Änderung hier ein Verhalten dort ...
![bandhead :banghead:](./images/smilies/BangHead.gif)
![angry9 angry9:](./images/smilies/angry9.gif)
![angry5 :angry5:](./images/smilies/angry5.gif)
![Confused :?](./images/smilies/confused.gif)
![d'oh! #-o](./images/smilies/eusa_doh.gif)
Nun habe ich bei einer Programmänderung angefangen zunächst ein Testmodul zu bauen und die Funktion nach TDD zu entwickeln.
Für Java, C++ etc. gibt es dafür sogar frameworks, aber eine eigene Testroutine geht auch. Sinn des Ganzen ist es, dass neue Tests an die bisherigen angehängt werden
und somit ein Testlauf immer auch alle alten Funktionen durchtestet und zwar mit genau den Tests die das nötige (gewünschte) Verhalten testen.
Einmal mit Sorgfalt festgelegt sind diese Tests bestimmt umfassender als die "Runtimetests mit dem Debugger" ... wo doch immer jemand zur falschen Zeit stört.
![Bad Grin :badgrin:](./images/smilies/badgrin.gif)
Es ist zwar etwas Vorarbeit nötig, aber ich habe vor meine Funktionsbibliotheken und Programme in Zukunt mit solchen UNIT-Tests zu versehen.
Im Anwendungstest hat man dann deutlich weniger Syntax, Typ- oder Tippfehler (ich meine nicht die Rechtschreibung) ...
Linkverzeichnis:
TDD
![Arrow :arrow:](./images/smilies/arrow.gif)
Agile
![Arrow :arrow:](./images/smilies/arrow.gif)
XP
![Arrow :arrow:](./images/smilies/arrow.gif)
Was meint Ihr ?