Sto lavorando su un sistema legacy (con questo intendo che è stato scritto senza test). Abbiamo provato a testare alcuni sistemi scrivendo test di integrazione che testano funzionalità dall'esterno.
Questo mi dà un po 'di fiducia nel rifattorizzare parti del codice senza preoccuparmi di romperlo. Ma il problema è che questi test di integrazione richiedono una distribuzione (2+ minuti) e molti minuti per l'esecuzione. Inoltre, sono dolorosi da mantenere. Ognuno di essi copre migliaia di righe di codice e quando uno di essi si rompe può richiedere ore per il debug del perché.
Ho scritto molti test unitari per questi cambiamenti funzionali che ho fatto ultimamente, ma prima di impegnarmi faccio sempre una nuova distribuzione ed eseguo tutti i test di integrazione, solo per assicurarmi di non aver perso nulla. A questo punto conosco i miei test unitari e alcuni test di integrazione si sovrappongono a ciò che testano.
Come faccio a sapere quando i miei buoni test unitari coprono adeguatamente un cattivo test di integrazione in modo da poter cancellare quel test di integrazione?