Las pruebas inestables o "flaky tests" se definen como pruebas que devuelven tanto aprobaciones como fallos a pesar de no haber cambiado el código o la propia prueba.
Hay varios factores que pueden causar resultados poco fiables en las pruebas, como las incoherencias en los entornos, la falta de actualización de los datos entre una prueba y la siguiente, los problemas de tiempo y zona horaria, y las dependencias en el orden de ejecución de las pruebas.
El problema de las pruebas inestables es que ralentizan el proceso de CI/CD y erosionan la confianza en los procesos de prueba. Como no se puede confiar en los resultados de las pruebas, no se puede estar seguro de si una prueba exitosa significa que el código está libre de errores o si se debe invertir tiempo en tratar de reproducir y arreglar un problema cuando las pruebas fallan.
Para detectar las pruebas inestables, es necesario comparar los resultados de varias pruebas. Este análisis sería un proceso que llevaría mucho tiempo si se realizara manualmente pero, afortunadamente, muchos servidores de CI detectan las pruebas inestables automáticamente.
Identificar las pruebas inestables es el primer paso para tenerlas bajo control. Una vez que conozca el alcance del problema, podrá priorizar su solución. Es buena idea silenciar las pruebas inestables provisionalmente para que los resultados de las pruebas no fiables sean excluidos de sus informes de pruebas automatizadas.