Faccio parte di un team di sviluppatori che lavora con molti altri team per mantenere e migliorare un'applicazione in uso da almeno 15 anni. Quando fu costruito e progettato per la prima volta, TDD era inaudito.
L'applicazione è abbastanza stabile e raramente si verifica un bug che interrompe lo spettacolo, ma facciamo una media di circa uno o due bug a settimana che riducono notevolmente la qualità del servizio. Questi bug impiegano un'eternità a trovare e correggere, in gran parte a causa del puntamento del dito, e l'unico test che abbiamo è il test dell'interfaccia. Poiché c'è molto tempo sprecato a cercare il bug prima che possa essere risolto, io e un altro sviluppatore abbiamo in programma di proporre Test Driven Development. È in arrivo una nuova revisione e vorremmo vedere i test di unità quasi completi eseguiti sui nuovi moduli, prevediamo anche di suggerire di costruire unità di test per qualsiasi codice che dobbiamo modificare che sia legacy (ad esempio, correzione di bug o implementazione di funzionalità ), ma per non perdere tempo a sviluppare casi di test per codice che non ha causato problemi.
A me sembra ragionevole. Questo mese abbiamo riscontrato un bug che ha richiesto più di due settimane per essere risolto, ma avrebbe potuto essere identificato prima di essere distribuito se fosse stato eseguito il test dell'unità. Ma per i nostri manager sembra che spenderanno più soldi.
Come convincere i nostri clienti a voler spendere i soldi per test unitari e sviluppo guidato dai test? Ci sono studi che mostrano il ROI dei test unitari?