Cómo detectar falsos verdes en tests E2E

Por

Un falso verde es un test E2E que pasa sin haber probado nada: el selector no encontró el elemento o la aserción nunca llegó a evaluarse. Se detectan con cuatro señales por corrida: pasos que no alcanzaron un estado estable, menos screenshots que pasos ejecutados, ausencia de aserciones de intención y una duración anormalmente baja.

Un falso verde es un test E2E que pasa sin haber probado nada. El selector no encontró el elemento pero el paso continuó, la aserción nunca llegó a evaluarse, o el flujo siguió adelante tras un fallo que alguien decidió tragarse con un try/catch. El reporte dice SUCCESS y nadie mira más.

Cuesta más que un test roto. Un rojo se investiga; un verde falso se celebra, y encima da permiso para desplegar.

Las cuatro señales que lo delatan

1. Pasos que no alcanzaron un estado estable

Si el runner siguió adelante mientras la página aún se estaba pintando, ese paso no probó lo que dice probar. Es la señal más fuerte y casi ninguna herramienta la reporta.

2. Menos screenshots que pasos ejecutados

Si el flujo declara ocho pasos y la corrida guardó cuatro capturas, la mitad no dejó rastro. Comparar ambos números es la verificación más barata que existe.

3. Cero aserciones de intención

Un flujo que solo navega y hace clic pasa casi siempre, porque nada verifica el resultado. Sin al menos una aserción sobre el estado final, el verde es de navegación, no de negocio.

4. Duración anormalmente baja

Una compra que normalmente tarda 40 segundos y se resolvió en 6 no fue más rápida: se saltó pasos.

La prueba definitiva: doble corrida

La forma más simple de saber si un verde vale es correr el flujo dos veces:

  • A, tal cual está.
  • B, con una aserción explícita sobre el resultado que importa.

Si A pasa y B falla, A era un falso verde. Sin excepción.

Por qué las suites los producen

El patrón raíz es siempre el mismo: código que continúa en silencio tras un fallo. Esperas fijas en lugar de esperar por condición, catch que solo registran en el log, selectores que resuelven varios elementos y toman el primero.

En testing, cada línea que permite seguir adelante ante un fallo es una línea que fabrica confianza falsa.

Sigue leyendo