Lavoro per una grande azienda e sono responsabile di una grande applicazione java con migliaia di test di junit. Da quando mi sono trasferito in questo ruolo, ci sono stati 200-300 test non funzionanti (probabilmente rotto per anni). I test sono vecchi e fragili e sono un casino di dipendenze spaghetti che in genere finiscono con dati live sandbox.
Il mio obiettivo è superare i test al 100% in modo da poter interrompere la build sugli errori del test dell'unità, ma non posso farlo finché non affronterò i test non funzionanti. Ho un budget molto limitato perché il budget di manutenzione è principalmente di supporto, ma il mio team ha identificato e corretto i test di frutta a bassa sospensione (per lo più config / risorse locali) e siamo in 30-40 test davvero brutti.
Quali sono alcune opinioni sulle migliori pratiche? Non penso che i test siano preziosi, ma non so nemmeno cosa stanno testando o perché non funzionano senza scavare, il che richiede tempo e denaro che probabilmente non abbiamo.
Penso che dovremmo documentare lo stato dei test non funzionanti con tutto ciò che sappiamo, quindi eliminare o ignorare completamente i test non funzionanti e inserire un bug / elemento di lavoro con priorità inferiore per indagare e correggerli. Saremo quindi al 100% e inizieremo a ricavare un valore reale dagli altri test e, se avremo una manutenibilità / refactoring, saremo in grado di riprenderli di nuovo.
Quale sarebbe l'approccio migliore?
Modifica: penso che questa sia una domanda diversa dalla domanda perché ho una chiara direzione per i test che dovrei scrivere in futuro, ma ho ereditato i precedenti test falliti prima che l'ampia serie corrente di test diventi significativa.