Sto lavorando su un sistema legacy (intendo dire che è stato scritto senza test). Abbiamo provato a testare parte del sistema scrivendo test di integrazione che testano la funzionalità dall'esterno.
Questo mi dà un po 'di fiducia nel refactoring di 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 un dolore da mantenere. Ciascuno di essi copre migliaia di righe di codice e quando una di esse si interrompe possono essere necessarie ore per il debug del perché.
Ho scritto molti test unitari per questi cambiamenti funzionali che ho apportato di recente, 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 dei test di integrazione si sovrappongono a ciò che testano.
Come faccio a sapere se i miei buoni test unitari coprono adeguatamente un test di integrazione errato in modo da poter eliminare quel test di integrazione?