Trabajo para una gran empresa y soy responsable de una gran aplicación de Java con miles de pruebas junit. Desde que me mudé a este rol, ha habido 200-300 pruebas rotas (probablemente rotas por años). Las pruebas son antiguas y frágiles y son un desastre de dependencias de espagueti que generalmente terminan con datos de sandbox en vivo.
Mi objetivo es pasar el 100% de las pruebas para que podamos romper la construcción en las fallas de las pruebas unitarias, pero no puedo hacerlo hasta que aborde las pruebas rotas. Tengo muy poco presupuesto porque el presupuesto de mantenimiento es principalmente para soporte, pero mi equipo ha identificado y reparado las pruebas frutales de bajo perfil (en su mayoría problemas de configuración / recursos locales) y tenemos 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 lleva tiempo y dinero que probablemente no tengamos.
Estoy pensando que deberíamos documentar los estados de las pruebas rotas con todo lo que sabemos, luego eliminar o ignorar las pruebas rotas por completo e ingresar un elemento de trabajo / error de menor prioridad para investigar y corregirlos. Entonces estaremos al 100% y comenzaremos a obtener un valor real de las otras pruebas y si tenemos una ganancia inesperada de mantenimiento / refactorización podremos retomarlas nuevamente.
¿Cuál sería el mejor enfoque?
Editar: Creo que esta es una pregunta diferente a esta pregunta porque tengo una dirección clara para las pruebas que deberíamos escribir en el futuro, pero heredé las pruebas de fallas heredadas para abordar antes de que el gran conjunto actual de pruebas se vuelva significativo.