Ich bin Teil eines Entwicklerteams, das mit vielen anderen Teams zusammenarbeitet, um eine Anwendung zu warten und zu verbessern, die seit mindestens 15 Jahren verwendet wird. Als es zum ersten Mal gebaut und entworfen wurde, war TDD unbekannt.
Die Anwendung ist ziemlich stabil, und wir stoßen selten auf einen Fehler beim Stoppen der Show, aber wir machen durchschnittlich ein oder zwei Fehler pro Woche, die die Servicequalität erheblich beeinträchtigen. Es dauert ewig, diese Fehler zu finden und zu beheben, hauptsächlich aufgrund von Fingerzeig. Die einzigen Tests, die wir haben, sind Schnittstellentests. Da viel Zeit damit verschwendet wird, nach dem Fehler zu suchen, bevor er behoben werden kann, planen ich und ein anderer Entwickler, eine testgesteuerte Entwicklung vorzuschlagen. In Kürze wird es eine neue Überarbeitung geben, und wir möchten, dass die neuen Module nahezu vollständig getestet werden. Wir planen außerdem, Testeinheiten für jeden Code zu erstellen, den wir ändern müssen, der älter ist (dh Fehlerbehebung oder Funktionsimplementierung) ), aber keine Zeit damit zu verbringen, Testfälle für Code zu entwickeln, der keine Probleme verursacht hat.
Das erscheint mir vernünftig. Diesen Monat hatten wir einen Fehler, dessen Behebung mehr als zwei Wochen dauerte, der jedoch vor der Bereitstellung hätte identifiziert werden können, wenn Unit-Tests durchgeführt worden wären. Für unsere Manager sieht es jedoch so aus, als würden sie mehr Geld ausgeben.
Wie kann ich unsere Kunden davon überzeugen, dass sie das Geld für Unit-Tests und testgetriebene Entwicklung ausgeben möchten? Gibt es Studien, die den ROI von Unit-Tests belegen?