Należę do zespołu programistów, który współpracuje z wieloma innymi zespołami w celu utrzymania i ulepszania aplikacji, która była używana przez co najmniej 15 lat. Kiedy został zbudowany i zaprojektowany po raz pierwszy, TDD było niespotykane.
Aplikacja jest dość stabilna i rzadko napotykamy błąd zatrzymujący program, ale robimy średnio około jednego lub dwóch błędów tygodniowo, co poważnie obniża jakość usług. Te błędy trwają wiecznie, aby je znaleźć i naprawić, głównie z powodu wskazywania palcem, a jedynym testem, jaki mamy, jest testowanie interfejsu. Ponieważ jest dużo marnowanego czasu na szukanie, gdzie jest błąd, zanim będzie można go naprawić, ja i inny programista planujemy zaproponować Test Driven Development. Niedługo nadejdzie nowy przegląd i chcielibyśmy zobaczyć prawie całkowite testowanie jednostek przeprowadzone na nowych modułach, planujemy również zaproponować zbudowanie jednostek testowych dla każdego kodu, który musimy zmienić, który jest starszy (tj. Naprawa błędu lub implementacja funkcji ), ale nie marnuj czasu na tworzenie przypadków testowych dla kodu, który nie spowodował problemów.
Wydaje mi się to rozsądne. W tym miesiącu mieliśmy błąd, którego usunięcie zajęło ponad dwa tygodnie, ale można go było zidentyfikować przed wdrożeniem, gdyby przeprowadzono testy jednostkowe. Ale dla naszych menedżerów wygląda na to, że wydadzą więcej pieniędzy.
Jak przekonać naszych klientów, że chcą wydać pieniądze na testy jednostkowe i rozwój oparty na testach? Czy są jakieś badania, które pokazują ROI testów jednostkowych?