Una prueba inestable pasa y falla sin un cambio de código relevante. Los reintentos repetidos pueden ocultar la señal y hacer que una construcción rota parezca saludable, así que primero aprenda qué cambia entre ejecuciones.
Recoge un fracaso útil
- Registre la semilla de prueba, el recuento de trabajadores, el navegador y la configuración del entorno relevante.
- Ejecute la prueba fallida más pequeña repetidamente y luego compare la ejecución aislada y paralela.
- Inspeccione archivos compartidos, estado global, temporizadores, dependencias de red y suposiciones sobre el orden de las pruebas.
Eliminar la dependencia no determinista
Utilice datos de prueba únicos, configuración y limpieza explícitas, relojes deterministas y esperas de estado observable. Reemplace un servicio externo con un límite controlado cuando la prueba esté destinada a verificar la lógica de la aplicación.
Mantener un reintento sólo como medida de contención temporal con un propietario y una fecha límite para eliminarlo. Realice un seguimiento de la tasa de fallas para que se pueda demostrar que un cambio reduce la descamación en lugar de simplemente ocultarla.
