Io faccio parte di un team di sviluppatori che lavora con molti altri team per mantenere e migliorare un'applicazione che è stata utilizzata da almeno 15 anni. Quando fu creato e progettato per la prima volta, TDD era sconosciuto.
L'applicazione è abbastanza stabile e raramente incontriamo un bug di interruzione dello show, ma facciamo una media di uno o due bug alla settimana che riduce seriamente la qualità del servizio. Questi bug impiegano molto tempo per trovare e risolvere, in gran parte a causa del puntamento del dito, e l'unico test che abbiamo è il test dell'interfaccia. Poiché c'è un sacco di tempo perso a cercare dove si trova il bug prima che possa essere risolto, io e un altro programmatore proponiamo di proporre lo sviluppo basato su test. È in arrivo una nuova revisione e ci piacerebbe vedere quasi il test unitario completo sui nuovi moduli, inoltre proponiamo di costruire unità di test per qualsiasi codice che dobbiamo modificare che sia legacy (cioè, correzione di bug o implementazione di funzionalità ), ma non perdere tempo a sviluppare casi di test per codice che non ha causato problemi.
Per me, questo sembra ragionevole. Questo mese abbiamo avuto un bug che ha richiesto più di due settimane per essere risolto, ma potrebbe essere stato identificato prima di essere implementato se il test dell'unità fosse stato fatto. Ma ai nostri manager sembra proprio che spenderanno di più.
Come faccio a convincere i nostri clienti che vogliono spendere i soldi per i test unitari e lo sviluppo guidato dai test? Ci sono studi che mostrano il ROI dei test unitari?