So haben Sie es oft von denen gehört, die die Werte des Testens nicht wirklich verstehen. Um es vorwegzunehmen, ich bin ein Anhänger von Agile and Testing ...
Ich hatte kürzlich eine Diskussion über die Durchführung von TDD bei einem Produkt-Re-Write, bei dem das aktuelle Team auf keiner Ebene Unit-Tests übt und wahrscheinlich noch nie von der Abhängigkeitsinjektionstechnik oder Testmustern / -design usw. gehört hat (wir werden es nicht einmal verstehen) um den Code zu bereinigen).
Jetzt bin ich voll und ganz für das Umschreiben dieses Produkts verantwortlich, und es wird mir gesagt, dass ein Versuch in der Art von TDD es nur zu einem Wartungs-Albtraum macht und für das Team unmöglich ist, es zu warten. Da es sich um eine Front-End-Anwendung handelt (nicht webbasiert), ist das Hinzufügen von Tests sinnlos. Da sich die Geschäftsabläufe ändern (Änderungen bedeuten natürlich Verbesserungen), werden die Tests veraltet sein, andere Entwickler werden dazu übergehen Das Projekt in der Zukunft wird sie nicht mehr unterhalten und für sie zu einer größeren Belastung für die Behebung usw. werden.
Ich kann verstehen, dass TDD in einem Team, das derzeit keine Testerfahrung hat, nicht gut klingt, aber mein Argument in diesem Fall ist, dass ich meine Praxis denjenigen um mich herum beibringen kann, aber darüber hinaus weiß ich, dass TDD BESSER macht Software. Selbst wenn ich die Software mit TDD erstellen und alle Tests wegwerfen würde, um sie an ein Wartungsteam zu übergeben, wäre es sicherlich ein besserer Ansatz, als TDD von Anfang an überhaupt nicht zu verwenden?
Ich wurde abgeschossen, weil ich erwähnt habe, dass ich bei den meisten Projekten für ein Team TDD mache, das noch nie davon gehört hat. Der Gedanke an "Interfaces" und seltsam aussehende DI-Konstruktoren schreckt sie ab ...
Kann mir jemand helfen, was normalerweise ein sehr kurzes Gespräch über den Versuch ist, TDD zu verkaufen, und meine Herangehensweise an Menschen? Normalerweise habe ich ein sehr kurzes Zeitfenster für Auseinandersetzungen, bevor ich der Firma / dem Team in die Knie gehe.