Saltar al contenido principal
Producto e ingeniería

Cincuenta fallos suelen ser cuatro problemas

Cincuenta tests que fallan en una corrida es un número que no te dice nada excepto que alguien debe leer cincuenta stack traces. La mayoría comparte una causa: un fixture, una forma cambiada, un timeout en una dependencia compartida.

Agrupar por el fallo, no por el nombre del test, es lo que reduce cincuenta a cuatro. Dos tests con nombres sin relación que fallan en la misma aserción en el mismo frame son un problema.

También hay que separar nuevos y recurrentes. Un fallo que aparece en nueve de las últimas diez corridas es una condición conocida y pertenece a una lista distinta de la que apareció por primera vez en este commit.

El informe que se lee dice cuatro problemas, uno de ellos nuevo, con el rango de commits anexo. El informe que se ignora dice cincuenta.

Cómo se ejecuta el ActionFlow en el lienzo

Los resultados de tests llegan por un trigger Webhook desde tu runner, o un nodo HTTP Request los lee después de una corrida Start Scheduled.

Un nodo Extract Data reduce cada fallo a su firma: la aserción, los frames superiores del trace y el archivo del test. Descarta el resto, porque el resto es lo que hace ilegible la salida.

Un nodo Uniq colapsa firmas idénticas. Un nodo Generate Object agrupa el resto por el fallo que describen, con los tests miembros listados bajo cada uno.

Un nodo PostgreSQL o MongoDB guarda el historial de firmas, que es lo que permite distinguir las nuevas de las recurrentes.

Un nodo If parte los grupos contra ese historial. Un nodo Math cuenta en cuántas de las últimas corridas apareció cada grupo recurrente.

Un nodo Sort pone primero los fallos nuevos, luego los recurrentes en orden de cuánto llevan fallando, que es el orden que elegiría un ingeniero de todos modos.

Un nodo Generate Text escribe el resumen, incluido el rango de commits y los conteos de grupo. Un nodo Slack lo publica en el canal de ingeniería.

Aquí no se aprueba ni se falla ningún build, y no se desactiva ningún test. El flujo reporta.

Nodos que usa este ActionFlow

  • Webhook (Triggers): resultados del runner en cuanto termina la ejecución.
  • Extract Data (Data): reduce un fallo a aserción, frames y archivo.
  • Uniq (Control): colapsa firmas idénticas antes de agrupar.
  • Generate Object (AI Core): agrupa por el fallo descrito, con los miembros listados.
  • PostgreSQL (Data): historial de firmas, para poder distinguir nuevos y recurrentes.
  • If (Control) con Math (Util): parte contra el historial y cuenta la recurrencia.
  • Sort (Data): primero los nuevos, luego los recurrentes por antigüedad.
  • Slack (Communication): publica el resumen. La decisión del build se queda con el pipeline.

Preguntas frecuentes

Empieza a crear flujos de IA

Crea una cuenta gratuita, abre una plantilla o un lienzo en blanco y ejecuta tu primer ActionFlow.

Boletín

Recibe actualizaciones del producto

Nodos nuevos, agents y notas de producto. Solo enviamos correo cuando merece la pena abrirlo.

Cancela la suscripción en cualquier momento.