Ich arbeite für ein großes Unternehmen und bin für eine große Java-Anwendung mit Tausenden von Junit-Tests verantwortlich. Seit ich in diese Rolle gewechselt bin, gab es 200-300 defekte Tests (wahrscheinlich seit Jahren defekt). Die Tests sind alt und zerbrechlich und es gibt eine Menge Spaghetti-Abhängigkeiten, die normalerweise mit Live-Sandbox-Daten enden.
Mein Ziel ist es, dass die Tests zu 100% bestanden werden, damit wir die Fehler beim Komponententest beheben können. Ich kann dies jedoch erst tun, wenn ich mich mit den fehlerhaften Tests befasse. Ich habe nur ein sehr kleines Budget, da das Wartungsbudget hauptsächlich für den Support vorgesehen ist, aber mein Team hat die niedrig hängenden Fruchttests (hauptsächlich Konfigurations- / lokale Ressourcenprobleme) identifiziert und behoben, und wir haben nur 30-40 wirklich hässliche Tests.
Was sind einige Meinungen zu Best Practice? Ich denke nicht, dass die Tests wertvoll sind, aber ich weiß auch nicht, was sie testen oder warum sie nicht funktionieren, ohne sich einzuarbeiten, was Zeit und Geld kostet, die wir wahrscheinlich nicht haben.
Ich denke, wir sollten den Status der fehlerhaften Tests mit allem dokumentieren, was wir wissen, dann die fehlerhaften Tests entweder löschen oder vollständig ignorieren und einen Fehler / ein Arbeitselement mit niedrigerer Priorität eingeben, um sie zu untersuchen und zu beheben. Dann sind wir zu 100% und können die anderen Tests zu einem echten Gewinn machen. Wenn wir einen Wartungs-Refactoring-Fehler haben, können wir sie wieder aufnehmen.
Was wäre der beste Ansatz?
Bearbeiten: Ich denke, dies ist eine andere Frage als diese Frage, weil ich eine klare Richtung für die Tests habe, die wir in Zukunft schreiben sollten, aber ich habe das Erbe von fehlgeschlagenen Tests geerbt, bevor die große Anzahl aktueller Tests aussagekräftig wird.