Je später Sie testen, desto mehr kostet es, Tests zu schreiben.
Je länger ein Fehler lebt, desto teurer ist die Behebung.
Das Gesetz der sinkenden Rendite stellt sicher, dass Sie sich selbst in Vergessenheit geraten lassen und sicherstellen können, dass es keine Bugs gibt.
Buddha lehrte die Weisheit des Mittelwegs. Tests sind gut. Es gibt so etwas wie zu viel Gutes. Der Schlüssel ist in der Lage zu erkennen, wenn Sie aus dem Gleichgewicht sind.
Jede Codezeile, die Sie ohne Tests schreiben, verursacht erheblich höhere Kosten für das Hinzufügen von Tests, als wenn Sie die Tests vor dem Schreiben des Codes geschrieben hätten.
Jede Codezeile ohne Tests ist erheblich schwieriger zu debuggen oder neu zu schreiben.
Jeder Test, den Sie schreiben, braucht Zeit.
Es wird einige Zeit dauern, bis jeder Fehler behoben ist.
Die Gläubigen werden Ihnen sagen, dass Sie keine einzige Codezeile schreiben sollen, ohne zuerst einen nicht bestandenen Test zu schreiben. Der Test stellt sicher, dass Sie das Verhalten erhalten, das Sie erwarten. Damit können Sie den Code schnell ändern, ohne sich Gedanken über Auswirkungen auf den Rest des Systems machen zu müssen, da der Test beweist, dass das Verhalten dasselbe ist.
Sie müssen all das gegen die Tatsache abwägen, dass Tests keine Funktionen hinzufügen. Produktionscode fügt Funktionen hinzu. Und Funktionen sind das, was die Rechnungen bezahlen.
Pragmatisch gesehen füge ich alle Tests hinzu, mit denen ich durchkommen kann. Ich ignoriere Kommentare zugunsten von Tests. Ich vertraue nicht einmal Code zu tun, was ich denke, dass es tut. Ich vertraue Tests. Aber ich war bekannt dafür, dass ich gelegentlich Hagelwurf mache und Glück habe.
Viele erfolgreiche Codierer führen jedoch keine TDD durch. Das heißt nicht, dass sie nicht testen. Sie bestehen einfach nicht darauf, dass jede Codezeile einen automatisierten Test hat. Selbst Onkel Bob gibt zu, dass er seine Benutzeroberfläche nicht testet. Er besteht auch darauf, dass Sie die gesamte Logik aus der Benutzeroberfläche entfernen.
Als Fußballmetapher (das ist American Football) ist TDD ein gutes Grundspiel. Nur manuelles Testen, bei dem Sie eine Menge Code schreiben und hoffen, dass es funktioniert, ist ein vorübergehendes Spiel. Sie können entweder gut sein. Ihre Karriere wird die Playoffs nicht schaffen, wenn Sie nicht beides können. Erst wenn Sie wissen, wann Sie welche auswählen müssen, wird das Superbowl zu etwas Besonderem werden. Aber wenn Sie einen Schubs in eine bestimmte Richtung brauchen: Die Beamten rufen mich häufiger an, wenn ich vorbeigehe.
Wenn Sie TDD ausprobieren möchten, empfehle ich dringend, dass Sie üben, bevor Sie versuchen, es bei der Arbeit zu tun. TDD auf halbem Weg gemacht, halbherzig und halbherzig ist ein wichtiger Grund, warum manche es nicht respektieren. Es ist, als würde man ein Glas Wasser in ein anderes gießen. Wenn Sie sich nicht festlegen und es schnell und vollständig tun, träufeln Sie am Ende Wasser über den Tisch.