Stavo leggendo alcune domande su TDD e ho trovato il mio.
Capisco che TDD sia un modo per sviluppare o catturare le specifiche / i requisiti interni dettagliati per il codice nel corso della stesura di quel codice.
Procediamo passo dopo passo e aggiungiamo proposizioni falsificabili al corpo della specifica sotto forma di test. Mostriamo che questi sono falsi e poi scriviamo il codice per renderli veri. Quindi refactoring mantenendoli veri.
Il problema è, come facciamo a sapere che tutti i test esistenti sono restanti falsificabili (per quanto riguarda la loro funzione originale)?
Durante l'aggiunta di alcuni nuovi elementi al codice tramite questo processo, supponiamo che alcuni test possano facilmente diventare obsoleti nel seguente senso: quei test sono stati inizialmente associati ad alcuni cambiamenti specifici, e se tale cambiamento è ora ripristinato nel attuale base, forse passano ancora. Qualunque cosa li stia facendo passare ora non è quella caratteristica originale che li ha capovolti dal non riuscire a passare.
Quei test / specifiche sembrano immondizie che aggiungono massa alla base delle specifiche senza alcuna sostanza. Oppure c'è ancora un valore in un test che non diventa falso se viene ripristinato il codice originale che lo ha reso vero, e non è ovvio quale cambiamento di codice altro nella base attuale lo renderebbe falso ?
C'è qualche processo TDD per identificare questi test? E poi vengono rimossi o riscritti o cosa?
O, in alternativa, questo è completamente impedito in qualche modo?