Skip to Content
Plan de pruebas11. Asistente IA

11. Asistente IA

Cubre las 7 tools del chatbot (internal/ai/usecase/tools.go): search_products, create_sale, get_inventory, create_expense, create_customer, get_sales_summary, search_manual. El aislamiento entre empresas de estas tools ya se cubre en 2. Aislamiento multi-tenant (MT-24) — aquí se prueba la calidad de la interpretación del lenguaje natural y el manejo de instrucciones ambiguas o incompletas.

Historial de ejecución

CicloFechaEjecutado porCasos ejecutadosResultado
1———Pendiente

CP IA-01: search_products — búsqueda exacta por nombre

  • Pasos: “¿tienes hamburguesa clásica?”
  • Resultado esperado: encuentra el producto y responde con precio/SKU.
  • Resultado obtenido: Pendiente.

CP IA-02: search_products — búsqueda con error de tipeo (ej. “hamburgesa”)

  • Objetivo: la búsqueda usa ILIKE '%query%' literal — no hay corrección de errores ni búsqueda fonética.
  • Resultado esperado a verificar: confirmar que efectivamente no encuentra nada con el typo, y ver cómo responde el asistente ante un resultado vacío (¿sugiere revisar el nombre, o dice genéricamente “no encontré productos”?).
  • Resultado obtenido: Pendiente.

CP IA-03: create_sale — pedir una venta sin antes buscar el producto

  • Pasos: “vende 2 hamburguesas a $15.000 cada una en la tienda 1” (sin haber llamado search_products en la conversación).
  • Resultado esperado a verificar: el asistente debería llamar search_products primero para obtener el ID real; confirmar si efectivamente lo hace solo o si acepta ciegamente el precio que el usuario dictó (que podría no coincidir con el precio real del producto).
  • Resultado obtenido: Pendiente.

CP IA-04: create_sale — instrucción ambigua sobre la tienda

  • Pasos: en una empresa con 2+ tiendas, pedir “registra una venta de una pizza” sin mencionar cuál tienda.
  • Resultado esperado a verificar: store_id es obligatorio para la tool — confirmar si el asistente pregunta cuál tienda, o falla con un error técnico poco claro, o asume una tienda por defecto sin avisar (los tres comportamientos son posibles y tienen implicaciones de usabilidad muy distintas).
  • Resultado obtenido: Pendiente.

CP IA-05: create_sale — producto que no existe

  • Pasos: “vende un producto llamado ‘xyz123’ que no existe”.
  • Resultado esperado: debe fallar con un mensaje entendible para el usuario del chat, no un stacktrace ni un JSON crudo de error.
  • Resultado obtenido: Pendiente.

CP IA-06: get_inventory — pedir solo productos bajo mínimo

  • Pasos: “¿qué productos están por agotarse?” (low_stock_only).
  • Resultado esperado: solo lista productos donde quantity <= min_stock y min_stock > 0.
  • Resultado obtenido: Pendiente.

CP IA-07: get_inventory — pedir el stock de un producto que no existe

  • Resultado esperado: respuesta clara de que no se encontró, no una lista vacía sin explicación.
  • Resultado obtenido: Pendiente.

CP IA-08: create_expense — monto en formato de texto ambiguo (ej. “cincuenta mil pesos” en vez de un número)

  • Resultado esperado a verificar: confirmar si el modelo de lenguaje interpreta correctamente montos escritos en palabras, o solo funciona bien si el usuario escribe el número directamente.
  • Resultado obtenido: Pendiente.

CP IA-09: create_expense — tienda inexistente o de otra empresa

  • Resultado esperado: debe fallar con "tienda inválida para esta empresa" (ya validado en el código) — confirmar que el mensaje que llega al chat es comprensible para un usuario no técnico, no el string crudo del error.
  • Resultado obtenido: Pendiente.

CP IA-10: create_customer — nombre con apellido junto (sin separar first/last en el chat)

  • Pasos: “crea un cliente llamado María Fernanda Gómez”.
  • Resultado esperado a verificar: la tool solo tiene un campo name (no separa en first/last como el módulo de usuarios internos) — confirmar que el contacto queda bien formado y es editable después desde Ajustes → Clientes sin inconsistencias.
  • Resultado obtenido: Pendiente.

CP IA-11: get_sales_summary — pedir el resumen de un rango de fechas en lenguaje natural (“la semana pasada”, “este mes”, “ayer”)

  • Resultado esperado a verificar: la tool solo acepta date_from/date_to en formato YYYY-MM-DD — confirmar qué tan bien el modelo traduce expresiones relativas de tiempo a ese formato exacto, especialmente “la semana pasada” (rango de 7 días) vs. un solo día.
  • Resultado obtenido: Pendiente.

CP IA-12: search_manual — preguntar “cómo hacer X” para un flujo real del manual (ej. “¿cómo creo un descuento?”)

  • Resultado esperado: debe encontrar y resumir el contenido de crear-descuento.mdx, con un link o referencia clara, sin intentar ejecutar la acción él mismo (esta tool es solo informativa).
  • Resultado obtenido: Pendiente.

CP IA-13: search_manual — pregunta sobre un flujo que no existe en el manual (ej. facturación DIAN, que este plan excluye por no estar terminada)

  • Resultado esperado: debe responder honestamente que no encontró información, no inventar una respuesta (verificar que no haya alucinación sobre una feature incompleta).
  • Resultado obtenido: Pendiente.

CP IA-14: Mensaje fuera de alcance (ej. “cuéntame un chiste”, o una pregunta de otro negocio no relacionado con el POS)

  • Resultado esperado a verificar: confirmar cómo reacciona el asistente — ¿se mantiene en su rol de “owner bot” del negocio, o responde cualquier cosa como un chatbot genérico? Evaluar si el prompt del sistema lo mantiene enfocado.
  • Resultado obtenido: Pendiente.

CP IA-15: Conversación larga que mezcla varias tools en secuencia (buscar → vender → consultar resumen)

  • Pasos: en un solo hilo: “busca gaseosas” → “vende 3 de la primera que encontraste” → “¿cómo van las ventas de hoy?”
  • Resultado esperado: el asistente debe mantener contexto entre tools dentro de la misma conversación (ej. saber a cuál producto se refiere “la primera que encontraste”).
  • Resultado obtenido: Pendiente.

Notas de usabilidad y sugerencias

Se completa durante la ejecución. Prestar atención especial a IA-04 (tienda ambigua) y IA-11 (fechas relativas) — son los puntos de fricción más probables entre lenguaje natural y los parámetros estrictos que espera cada tool.

© 2026 ClickStock