¿Cuál es una causa raíz común de los flaky tests?
Opciones
- Usar demasiadas assertions en un solo test
- Depender de la hora, de estado compartido o de la red real (Opción correcta)
- Usar fixtures para preparar los datos
- Ejecutar los tests en la máquina local
Respuesta
Depender de la hora, el orden, el estado compartido, la aleatoriedad o llamadas de red reales
Por qué
Un flaky test a veces pasa y a veces falla sin ningún cambio de código. Entonces los equipos dejan de confiar en la suite.
Causas típicas: depender de la hora actual, valores aleatorios, orden de los tests, datos dejados por otros tests, llamadas de red reales, o sleep() para esperar algo.
Corrige la causa (inyecta el reloj, fija la semilla aleatoria, aísla los datos, haz mock de la red, espera a condiciones). Los reintentos automáticos solo lo ocultan.
Recuerda
Flaky = no determinista. Elimina la fuente de aleatoriedad.