Es gibt einige Studien zu den Auswirkungen und Vorteilen von TDD, aber die Ergebnisse sind widersprüchlich. Einige Projekte (dies ist meiner Erfahrung nach) weisen aufgrund der Verwendung von TDD eine geringere Fehlerrate und geringere Betriebskosten auf, da sich die Kosten für das Ändern einer Funktion drastisch verringern. Einige andere bleiben stehen.
Einige Studien ( hier ist eine - überprüfen Sie Folie n50) zeigen, dass die Anzahl der Fehler mit der Abdeckung zunahm. Ich gehe davon aus, dass eine größere Abdeckung TDD impliziert und dass eine höhere Anzahl von Fehlern höhere Betriebskosten impliziert.
Aus meiner Sicht kann keine Metrik oder Praxis allein mit einer besseren Qualität oder niedrigeren Betriebskosten in Verbindung gebracht werden. Es gibt eine Kombination von Faktoren, die zu einer gewissen Korrelation führen können. Und diese Faktoren ändern sich zwischen Teams und Projekten.
Ich denke, wir haben alle Geschichten von Teams gehört, die gerade mit TDD angefangen haben und 100-Zeilen-Testmethoden geschrieben haben, was (meiner Ansicht nach) die Betriebskosten erhöht, da die Aktualisierung dieses Tests teuer sein wird.
Meine pragmatische Regel lautet, dass Menschen, die sich um etwas kümmern und lernbegierig sind und in einem Umfeld arbeiten, das sie und ihre Ideen unterstützt, eine bessere Qualität und bessere Betriebskosten haben.
Ich habe keine spezifischen Studien, aber ich kann Ihnen aus persönlicher Erfahrung und aus den Erfahrungen anderer Entwickler sagen, dass TDD bei korrekter Anwendung für mittlere und größere Projekte die Markteinführungszeit verkürzt, Fehler und Defekte reduziert und die Codequalität verbessert .
Können Sie guten Code ohne TDD schreiben, obwohl es keine Silberkugeln gibt? Ja, können Sie mit TDD schlechten Code schreiben? Ja. Abhängig von Ihrem Projekt kann TDD Ihre Betriebskosten für den Code erheblich erhöhen. Ein gutes Beispiel ist die NASA, bei der die Kosten pro Codezeile enorm sind, die Betriebskosten jedoch nicht im Mittelpunkt stehen, sondern keine Mängel aufweisen.
Bei korrekter Anwendung erhöht TDD Ihre Startkosten und Ihre Codebasis. Sie profitieren jedoch langfristig von Regressionstests, frühzeitiger Fehlererkennung und besserem Code-Design, wodurch Fehler, Testkosten und Wartungszeit reduziert und somit die Gesamtkosten von gesenkt werden Eigentum.
quelle