Trabajo para una gran empresa y soy responsable de una gran aplicación java con miles de pruebas Junit. Desde que me mudé a esta función, se han realizado 200-300 pruebas rotas (probablemente rotas durante años). Las pruebas son antiguas y frágiles y son un desorden de dependencias de spaghetti que normalmente terminan con datos de la caja de arena en vivo.
Mi objetivo es pasar las pruebas al 100% para que podamos romper la compilación en fallas de pruebas unitarias, pero no puedo hacerlo hasta que aborde las pruebas rotas. Tengo muy poco presupuesto porque el presupuesto de mantenimiento es principalmente para el apoyo, pero mi equipo ha identificado y arreglado las pruebas de rendimiento de poca importancia (principalmente problemas de recursos locales / de configuración) y nos hemos reducido a 30-40 pruebas realmente feas.
¿Cuáles son algunas opiniones sobre las mejores prácticas? No creo que las pruebas sean valiosas, pero tampoco sé qué están probando o por qué no funcionan sin excavar, lo que requiere tiempo y dinero que probablemente no tengamos.
Estoy pensando que deberíamos documentar los estados de las pruebas rotas con cualquier cosa que sepamos, luego eliminarlas o ignorarlas por completo e ingresar un error / elemento de trabajo de menor prioridad para investigar y corregirlas. Entonces estaremos al 100% y comenzaremos a obtener un valor real de las otras pruebas y, si tenemos una ganancia imprevista de mantenimiento / refactorización, podremos recuperarlas nuevamente.
¿Cuál sería el mejor enfoque?
Edit: creo que esta es una pregunta diferente a esta pregunta porque tengo una dirección clara para las pruebas que Debería escribir en el futuro, pero heredé las pruebas heredadas que fallaron para abordar antes de que el gran conjunto actual de pruebas sea significativo.