Je travaille pour une grande entreprise et je suis responsable d'une grande application java avec des milliers de tests junit. Depuis que je suis passé à ce poste, 200 à 300 tests ont été brisés (probablement cassés pendant des années). Les tests sont anciens et fragiles et ils sont un gâchis de dépendances spaghetti qui se terminent généralement par des données de bac à sable en direct.
Mon objectif est de réussir à 100% les tests afin que nous puissions briser les échecs des tests unitaires, mais je ne peux pas le faire avant d'avoir résolu les tests brisés. J'ai très peu de budget parce que le budget de maintenance est principalement pour le support, mais mon équipe a identifié et corrigé les tests de fruits bas (principalement des problèmes de configuration / ressources locales) et nous en sommes à 30-40 tests vraiment laids.
Quelles sont les opinions sur les meilleures pratiques? Je ne pense pas que les tests soient utiles, mais je ne sais pas non plus ce qu'ils testent ou pourquoi ils ne fonctionnent pas sans creuser, ce qui prend du temps et de l'argent que nous n'avons probablement pas.
Je pense que nous devrions documenter les statuts des tests cassés avec tout ce que nous savons, puis supprimer ou ignorer complètement les tests cassés et entrer un bug / élément de travail de priorité inférieure pour enquêter et les corriger. Nous serons alors à 100% et commencerons à obtenir une réelle valeur ajoutée des autres tests et si nous avons une manne de maintenance / refactoring, nous pourrons les reprendre.
Quelle serait la meilleure approche?
Edit: Je pense que c'est une question différente de cette question parce que j'ai une direction claire pour les tests que nous devrions écrire à l'avenir, mais j'ai hérité des tests défaillants hérités à adresser avant que le grand ensemble actuel de tests ne devienne significatif.