Una suite de pruebas es un detector de defectos. Como todo detector, puede equivocarse en dos direcciones, y las dos hacen el mismo daño de fondo por caminos opuestos: el equipo deja de creerle a la señal.
Esta página nombra las dos, explica por qué ocurren, y presenta el único instrumento que detecta la más peligrosa de las dos.
Es contenido pre-agentic en su mayoría. Lo que cambió con la IA no es el fenómeno: es que producir una suite que miente se volvió muchísimo más barato.
El test es un detector de defectos. Positivo significa "detecté un defecto".
| Falso positivo | Falso negativo | |
|---|---|---|
| Qué dice el test | Rojo, hay un problema | Verde, no hay problema |
| Qué pasa en realidad | No hay defecto | Sí hay defecto |
| Nombre común | Flakiness, test intermitente | El verde falso |
| Qué aprende el equipo | A ignorar el rojo | A confiar en un verde que no vale |
| Cuándo se paga | Ahora, en atención desperdiciada | Después, como bug o incidente |
Advertencia de vocabulario. "Falso negativo" es un término que la gente invierte todo el tiempo en conversación, porque en el habla suelta "positivo" se entiende como "pasó". Con un equipo mixto conviene definirlo la primera vez que aparece y no darlo por sabido.
Un falso positivo es el test fallando por una razón que no tiene nada que ver con el código que dice estar probando.
Espera fija. Un test de login hace clic en Entrar, espera 2 segundos, y verifica que aparezca el nombre del usuario. Un martes cualquiera el servidor está cargado y el nombre aparece a los 2,3 segundos. El test falla. El login funciona. Lo que falló fue el supuesto del test sobre cuánto se demora el mundo.
Orden no garantizado. Un test verifica que la lista de productos venga en el orden A, B, C. La consulta no tiene un ORDER BY, así que el motor devuelve las filas en el orden que le conviene. El test falla la mitad de las veces. Los tres productos están, todos correctos.
Google publicó que el 84% de las transiciones de verde a rojo que observan involucran un test intermitente, no un bug. La mayoría de las alarmas rojas son ruido.
Y la flakiness escala con el tamaño del test, no con la herramienta:
| Factor | Correlación con flakiness |
|---|---|
| Tamaño del binario | r² = 0,82 |
| Uso de RAM | r² = 0,76 |
| Elección de herramienta | Explica solo 4 a 5% de la variación |
Y por tamaño de test: small 0,5%, medium 1,6%, large 14%.