Quando si lavora in sistemi legacy di grandi dimensioni (sistemi di grandi dimensioni senza test di unità in assoluto), spesso mi imbatto in persone che dicono di utilizzare il test dell'unità come strumento contro possibili bug. Mi chiedo se qualcuno l'abbia provato su sistemi di grandi dimensioni senza alcun test unitario.
Ovviamente è facile dire che il test delle unità aiuta, ma nei sistemi di grandi dimensioni può richiedere molto tempo. Possono essere necessari mesi, se non anni, per testare completamente ciascuna parte dell'applicazione.
Quando ti viene chiesto di realizzare una funzionalità che è la modifica delle funzionalità esistenti o l'aggiunta di nuove funzionalità all'applicazione, come faresti? Ovviamente ci saranno molti casi in cui il codice in classi diverse apparirà simile e si vorrebbe ricalcolare quelle classi che senza un corretto test unitario possono e molto probabilmente apriranno una lattina di worm.
Quindi, come andresti a testare le grandi applicazioni? E quali altre misure useresti per ridurre i possibili bug dalla tua codifica (ovviamente alcuni bug rimarranno probabilmente comunque)?