No es magia, es método (y un poco de IA): probando flujos complejos sin morir (PARTE 1)

Si trabajas en QA, te habrá pasado: abres un diagrama enorme —chatbot, BPMN, journey de marketing— y lo primero que sientes es respeto… o un leve deseo de fingir que tu VPN se ha caído.

Existen demasiadas decisiones, demasiados caminos, y el tiempo es ese ente mítico que nunca sobra.

La pregunta es siempre la misma: ¿por dónde empiezo a probar?

La buena noticia: con un poco de método y una IA generativa como copiloto, ese mural de nodos se convierte en algo más manejable: pruebas claras, trazables y ejecutables.

Ojo: la IA no hace magia, ni convierte un BPMN en una fiesta… pero sí te ayuda a no perderte, a no olvidar ramas y a documentar con cabeza.



El truco que cambia el juego: convertir el dibujo en texto inequívoco

Lo que más atasca no es qué probar, sino entender el flujo sin ambigüedades.

Si tu herramienta exporta a BPMN 2.0 (XML): felicidades; la IA puede recorrer nodos y transiciones tal cual. Será más sencillo que interprete el flujo que has diseñado aportando el archivo con el estándar bpmn.

Si solo tienes una imagen (PNG/JPG/PDF): empieza el clásico “¿esta conexión vuelve aquí o saltaba allá?”. Textos pequeños, líneas que se cruzan, trazos superpuestos que parecen hechos por un diseñador con prisa… y ruido visual por doquier.

Aquí es donde entra mi consejo práctico: obliga a la IA (y a ti) a pasarlo por un diagrama ASCII.

Suena retro, pero funciona:
  • Linealiza el flujo.
  • Hace visibles los huecos (“¿y esta rama a dónde vuelve?”).
  • Te da un lenguaje común para discutir sin que alguien señale con el dedo en la pantalla diciendo “aquí” y todos miremos a sitios distintos.
Especialmente si partes de un PDF/imagen sin estándar, asume que necesitarás varias iteraciones con la IA:
  1. Primer borrador ASCII.
  2. Revisión humana.
  3. Correcciones.
  4. ASCII final.
Especialmente cuando partes de un PDF/imagen sin estándar, asume que necesitarás varias iteraciones con la IA:  Es normal; hay flechas superpuestas y detalles de maquetación que confunden. Lo importante es cerrar un texto inequívoco.

Un ejemplo realista: el “Asistente Universal”

Imagina un chatbot genérico para e-commerce/soporte que atiende cosas típicas: seguimiento de pedido, devoluciones, hablar con agente... Con eso, ya tenemos complejidad suficiente para practicar (y es fácil de “portar” a banca, telco, viajes, etc. cambiando las etiquetas).

El flujo de atención al cliente, estaría representado en el siguiente diagrama:

Identificar splits y opciones.

Una vez tenemos el flujo en ASCII, lo siguiente es “marcar” el terreno. Esto significa localizar todos los puntos de decisión (decision splits) y enumerarlos de forma unívoca.

A cada split le damos un número (IF 1, IF 2…) y a cada opción que sale de ese punto, una letra distinta (A, B, C…).

¿Por qué molestarse en esto?

Porque es la forma más precisa de referirnos a un camino sin ambigüedades. Si yo digo “recorrido 1B-3F”, tanto yo como la IA sabemos exactamente qué secuencia de opciones lleva a ese escenario, sin tener que volver a mirar todo el dibujo. Esto reduce malentendidos, facilita el diseño de casos de prueba y, lo más importante, permite medir la cobertura (branch coverage, path coverage) con números claros.

La IA generativa aquí juega un papel muy práctico:
  • Puede recorrer el ASCII y proponerte la numeración inicial.
  • Puede detectar splits que hayas pasado por alto (esas bifurcaciones “ocultas” en un bloque).
  • Puede asignar letras evitando repeticiones, algo que se vuelve un dolor cuando el flujo es grande.
Incluso si el trabajo final lo revisas tú, dejar que la IA haga el borrador ahorra tiempo y reduce errores tontos.

Y ahora que ya tenemos clara la jugada —diagrama en ASCII y splits identificados—, viene la parte visual: el mapa completo del flujo.

Este ASCII no es “arte abstracto”: es el esqueleto del proceso, con cada punto de decisión numerado (IF 1, IF 2…) y sus opciones en letras únicas (A, B, C…).

Así, cualquier camino se puede referenciar sin ambigüedades: “camino 1C-2E” es siempre el mismo, aunque el diagrama original tenga flechas que se crucen, globos de texto y un diseño de PowerPoint de los 2000.

Lo bueno de pedirle a la IA que haga este paso es que:
  • Si el flujo es largo, no te vas a dejar ninguna rama.
  • Si hay nombres parecidos, la IA se encarga de que cada opción tenga su letra única.
  • Puedes copiar y pegar este ASCII en cualquier conversación, documento o herramienta, y todos verán lo mismo que tú.
Con esto en la mano, ya no estás “navegando” por un diagrama, estás leyendo un mapa de rutas.

Y cuando empieces a definir casos de prueba, este mapa será la guía para marcar qué caminos vamos a cubrir y cuáles quedan fuera.

Aquí tienes el ejemplo del Asistente Universal, listo para servir como base de diseño de pruebas:



El diccionario del flujo

El diagrama ASCII está listo, pero para que sea realmente útil falta un detalle: la leyenda. Es la lista que explica cada punto de decisión (IF) y cada opción (A, B, C…), sin volver a leer todo el flujo.

Yo simplemente se lo pido a la IA:
 
“A partir del ASCII, identifica y numera todos los decision splits, asigna letras únicas a sus opciones y descríbelas.”

Así obtienes un “diccionario” claro, sin repeticiones y perfecto para referenciar recorridos como 1C-2E sin perderte.

Decision Splits y Opciones:

IF 1: ¿En qué puedo ayudarte hoy?
  • A: Consultar un pedido
  • B: Devolver un producto
  • C: Hablar con un agente
IF 2: ¿Existe el pedido? 
  • H: Sí, existe
  • I: No, no existe
IF 3: ¿Qué estado tiene el pedido? 
  • L: Enviado → Mostrar fecha de envío + tracking
  • M: En preparación → Mostrar fecha estimada de envío
  • N: Cancelado → Mostrar fecha y motivo de cancelación
IF 4: ¿Está dentro del plazo de devolución? 
  • O: Sí
  • R: No
IF 5: ¿Cómo prefieres devolverlo?
  • P: En tienda física
  • Q: Con mensajero
IF 6: ¿Quieres que revisemos si podemos hacer una excepción?
  • S: Sí → Crear caso
  • T: No → Mostrar política de devoluciones
IF 7: ¿Quieres volver a intentarlo? 
  • J: Sí → Volver a pedir nº de pedido 
  • K: No → Cerrar chat
IF 8: ¿Hay agente disponible? 
  • D: Sí → Transferencia a agente en vivo
  • E: No
IF 9: ¿Quieres dejar tu contacto para que te llamemos?
  • F: Sí → Capturar teléfono/email + franja
  • G: No → Mensaje de cortesía y cierre

De diagrama a tabla de caminos:

Una vez que tienes el ASCII con sus decision splits numerados y las opciones etiquetadas, lo lógico es pasar a la tabla de caminos.

Esta tabla es tu mapa: cada fila describe un recorrido único desde el inicio hasta un final, y qué resultado produce ese recorrido.

La estructura mínima que uso es esta:

Camino → un identificador secuencial (1, 2, 3…)
Recorrido → la secuencia de IFs y opciones, por ejemplo 1A-2E-3R
Resultado → qué pasa justo antes del FIN (mensaje del bot, acción, creación de caso, etc.)

El problema es que, cuando el flujo tiene muchos splits y caminos, enumerarlos manualmente es tedioso y propenso a errores:
  • Te puedes dejar ramas enteras.
  • Puedes confundir letras o repetirlas.
  • Es fácil perder la trazabilidad si reordenas algo.
Aquí la IA generativa es un copiloto perfecto:
  • Velocidad: puede recorrer el ASCII y extraer todos los recorridos posibles en segundos.
  • Consistencia: sigue la numeración que ya le diste, sin inventar letras nuevas ni duplicarlas.
  • Cobertura total: no se olvida de ramas “escondidas” que visualmente pasaban desapercibidas.

Camino Recorrido Resultado
11A-2H-3LPedido enviado con fecha de envío y número de seguimiento.
21A-2H-3MPedido en preparación con fecha estimada de envío.
31A-2H-3NPedido cancelado con motivo y fecha de cancelación.
41A-2I-7JVolver a solicitar número de pedido (Consultar).
51A-2I-7KCerrar chat.
61B-2H-4O-5PDevolución en tienda física con instrucciones y código QR.
71B-2H-4O-5QDevolución con mensajero, etiqueta e instrucciones.
81B-2H-4R-6SCrear caso para excepción de devolución.
91B-2H-4R-6TMostrar política de devoluciones.
101B-2I-7JVolver a solicitar número de pedido (Devolver).
111B-2I-7KCerrar chat.
121C-8DTransferencia a agente en vivo.
131C-8E-9FCaptura de contacto para devolución de llamada.
141C-8E-9GMensaje de cortesía y cierre de chat.

Hasta aquí la Parte 1 del post:

Con esto damos por cerrada la primera parte: hemos pasado de un diagrama con demasiadas flechas y cajas a un ASCII limpio, numerado y con opciones claras.

Ya podemos hablar de caminos concretos sin perdernos y sin tener que abrir el original cada vez.

Qué viene en la Parte 2: 

En la siguiente parte entraremos en diseñar las pruebas sobre este flujo y veremos cómo aplicar Data-Driven Testing para cubrir los distintos recorridos.

Será el momento de poner a prueba si este esquema que hemos montado aguanta el trabajo real y podemos pasar de "ya entiendo el flujo" a "tengo un diseño de pruebas sólido y eficiente".

PARTE 2: No es magia, es método (y un poco de IA): probando flujos complejos sin morir

Comentarios