ENEnglish
QA · Metodología de Reporte de Bugs

Reportar errores es un acto de diseño

Un buen reporte de bug no solo describe un problema: ahorra horas al equipo, acelera el fix y elimina ambigüedad. Esta es la estructura que uso para que cada caso se entienda a la primera.

Desliza

Principios del reporte

Antes de tocar el teclado, estas son las reglas que definen el cómo y el porqué de cada reporte.

🎯

Reproducible al 100%

Si no se puede reproducir, no es un bug, es una observación. Cada paso está numerado y verificable.

🔍

Contexto, no opiniones

Se describe el comportamiento observado y el esperado. La calificación del impacto la pone el negocio.

📎

Evidencia visible

Capturas, grabaciones y archivos adjuntos. Un buen reporte se entiende sin abrir el ticket del lado.

Criterios claros

El fix no termina cuando "parece funcionar": termina cuando se cumplen los criterios de aceptación.

Cómo se construye un reporte

Cinco pasos secuenciales que sigo desde que detecto el caso hasta que queda listo para handover.

01 / DETECTAR

Identificar

Detecto el caso durante prueba exploratoria o regresión. Anoto el flujo exacto.

02 / REPRODUCIR

Validar

Reproduzco el bug en al menos 2 ciclos. Confirmo que no sea flake (intermitente real).

03 / CAPTURAR

Evidencia

Tomo screenshots, grabo screen-recording y exporto logs si el caso lo requiere.

04 / DOCUMENTAR

Redactar

Escribo el reporte con el template: título, descripción, pasos, esperado, obtenido, criterios.

05 / REPORTAR

Entregar

Subo el ticket con la prioridad correcta, asigno módulo y notifoco al responsable.

Cómo documento un bug

Cada reporte sigue la misma estructura interna (A→G). Las apps cambian, el método no.

ATítulo
BDescripción
CPasos
DEsperado
EObtenido
FEvidencia
GCriterios
BUG-2025-0142 · Módulo: Facturación · Estado: Reportado
"No volver a mostrar este mensaje" no persiste tras cerrar sesión
● Bug funcional● Prioridad media● Android / iOS
Descripción

Dentro del flujo Escanear Factura, se muestra una pantalla informativa antes de permitir al usuario continuar con el escaneo. Al seleccionar "No volver a mostrar este mensaje", el sistema deja de mostrar la alerta mientras el usuario permanece con la sesión activa. Sin embargo, si el usuario cierra sesión y vuelve a ingresar, la alerta vuelve a mostrarse. Este comportamiento indica que la preferencia no se está guardando de forma persistente.

Pasos para reproducir
  1. Ingresar a la app con un usuario válido.
  2. Ir al flujo Escanear Factura.
  3. En la pantalla informativa, marcar la opción "No volver a mostrar este mensaje".
  4. Continuar con el flujo y verificar que el mensaje no vuelva a mostrarse durante la sesión activa.
  5. Cerrar sesión.
  6. Iniciar sesión nuevamente con el mismo usuario.
  7. Volver al flujo Escanear Factura.
  8. Observar que la pantalla informativa vuelve a mostrarse.
Resultado esperado vs. obtenido
✓ Esperado

La preferencia se guarda de forma persistente. La pantalla informativa no vuelve a mostrarse, incluso tras cerrar y abrir sesión.

✕ Obtenido

La opción funciona solo dentro de la sesión activa. Al reingresar, el mensaje vuelve a aparecer.

Criterios de aceptación
  • La preferencia "No volver a mostrar este mensaje" debe guardarse de forma persistente.
  • La pantalla informativa no debe volver a mostrarse después de cerrar sesión e iniciar nuevamente.
  • La preferencia debe mantenerse asociada al usuario correspondiente.
  • Si otro usuario ingresa en el mismo dispositivo, debe respetarse la configuración propia de ese usuario.
  • El comportamiento debe validarse en Android y iOS.
  • Si el usuario no marca la opción, la pantalla informativa debe seguir mostrándose según el comportamiento definido.
Evidencia

Evidencia visual: flujo Escanear Factura. La zona marcada corresponde al checkbox afectado.

ATítulo
BDescripción
CPasos
DEsperado
EObtenido
FEvidencia
GCriterios
BUG-2025-0151 · Módulo: Facturación · OCR · Estado: Reportado
OCR omite productos sin coincidencia en el catálogo
● Bug funcional● Prioridad alta● Backoffice / Web
Descripción

Al cargar una factura, el sistema no muestra todos los productos visibles en el documento cuando no existen en el catálogo. En la factura se observan varios productos, pero en el detalle procesado solo aparecen algunos en la tabla Productos Extraídos. Los productos sin coincidencia deben listarse también, marcados como Sin coincidencia, para que el usuario pueda revisarlos o asociarlos manualmente.

Pasos para reproducir
  1. Ingresar al sistema con un usuario válido.
  2. Cargar una factura que contenga varios productos.
  3. Esperar a que el OCR procese la factura.
  4. Acceder al detalle de la factura desde el Backoffice.
  5. Comparar los productos visibles en la imagen con los productos en la tabla Productos Extraídos.
  6. Verificar que algunos productos visibles no aparecen en la tabla.
Resultado esperado vs. obtenido
✓ Esperado

Mostrar todos los productos leídos, incluso sin coincidencia, con estado Sin coincidencia para que el usuario los revise.

✕ Obtenido

Solo se listan algunos productos. El sistema omite los productos visibles que no tienen coincidencia en el catálogo.

Criterios de aceptación
  • El OCR debe mostrar todos los productos leídos desde la factura.
  • Los productos sin coincidencia deben mostrarse con estado Sin coincidencia.
  • El sistema no debe omitir productos visibles solo porque no tengan coincidencia.
  • El usuario debe poder revisar manualmente los productos sin coincidencia.
  • La cantidad de productos en el detalle debe coincidir con los detectados por OCR.
  • La información debe incluir nombre, cantidad, precio y total cuando estén visibles.
  • El comportamiento debe aplicarse a todas las facturas procesadas.
Evidencia

Evidencia visual: Backoffice · Detalle de Factura. La factura contiene 3 productos · la tabla solo lista 2.

1 / 2

Cómo cubro un feature antes de que se desarrolle

Feature solicitado: el banner del tablero debe contabilizar facturas pendientes y puntos reconocidos.

⌖ App: Pulso⌖ Banner a probar⌖ App: Pulso

Solicitud del cliente

Dentro del banner del tablero (Mi Tablero), se deben contabilizar todas las facturas pendientes, incluyendo las que tienen puntos reconocidos y las que no.

  • Contar facturas en estado pendiente.
  • Sumar puntos reconocidos de cada factura pendiente.
  • No contar facturas aprobadas, rechazadas, canceladas o procesadas.
  • Mostrar el contador en formato:

🧪 Casos de prueba (20)

20 total15 15 happy path5 5 a confirmar
IDEscenarioEscena / casoDatos de pruebaResultado esperadoCategoría
CP-01Conteo baseUsuario sin facturas pendientes0 facturas pendientesEl banner no se muestra o muestra 0 facturas pendientes · 0 pts reconocidos, según diseño definido.Conteo base
CP-02Conteo baseUna factura pendiente con puntos reconocidos1 factura pendiente con 20 ptsEl banner muestra 1 factura pendiente de revisión · 20 pts reconocidos.Conteo base
CP-03Conteo baseUna factura pendiente sin puntos reconocidos1 factura pendiente con 0 ptsEl banner muestra 1 factura pendiente de revisión · 0 pts reconocidos.Conteo base
CP-04Conteo baseVarias facturas pendientes con puntos2 facturas pendientes: 10 pts + 30 ptsEl banner muestra 2 facturas pendientes de revisión · 40 pts reconocidos.Conteo base
CP-05Conteo baseVarias facturas pendientes sin puntos2 facturas pendientes: 0 pts + 0 ptsEl banner muestra 2 facturas pendientes de revisión · 0 pts reconocidos.Conteo base
CP-06Conteo baseFacturas pendientes mixtas1 factura con 40 pts + 1 factura con 0 ptsEl banner muestra 2 facturas pendientes de revisión · 40 pts reconocidos.Conteo base
CP-07Conteo baseMúltiples facturas mixtas5 pendientes: 10, 0, 20, 0, 30 ptsEl banner muestra 5 facturas pendientes de revisión · 60 pts reconocidos.Conteo base
CP-08EstadosFacturas aprobadas no deben contarse1 pendiente + 2 aprobadasSolo se cuenta la pendiente. El banner muestra 1 factura pendiente.Estados
CP-09EstadosFacturas rechazadas no deben contarse1 pendiente + 2 rechazadasSolo se cuenta la pendiente. El banner muestra 1 factura pendiente.Estados
CP-10EstadosFacturas en otros estados no pendientesFacturas aprobadas, rechazadas, canceladas o procesadasNo deben afectar ni el conteo ni los puntos reconocidos.Estados
CP-11Edge caseFactura pendiente con puntos nulosPendiente con points = nullDebe contarse como factura pendiente y los puntos deben tratarse como 0.Edge case
CP-12Edge caseFactura pendiente con puntos en decimal, si aplica1 factura con 10.5 ptsValidar si el sistema permite decimales o debe redondear.Edge case
CP-13Edge caseSingular/plural del texto1 factura pendienteDebe decir 1 factura pendiente, no 1 facturas pendientes.Edge case
CP-14SincronizaciónActualización después de escanear facturaEl usuario escanea una factura nueva pendienteEl contador aumenta inmediatamente o después de refrescar, según comportamiento esperado.Sincronización
CP-15SincronizaciónActualización después de aprobaciónUna factura pendiente pasa a aprobadaEl contador de pendientes disminuye y los puntos reconocidos se actualizan.Sincronización
CP-16SincronizaciónActualización después de rechazoUna factura pendiente pasa a rechazadaEl contador disminuye y sus puntos dejan de sumarse.Sincronización
CP-17Multi-farmaciaUsuario con varias farmaciasEl usuario cambia de farmacia activaEl banner debe mostrar solo las facturas pendientes de la farmacia seleccionada.Multi-farmacia
CP-18SincronizaciónPull to refresh / botón refrescarCambian datos en backendEl banner debe actualizar la cantidad y los puntos correctamente.Sincronización
CP-19ErroresError de carga de datosBackend no respondeMostrar estado controlado: loading, error o mantener último dato válido, según diseño.Errores
CP-20ErroresUsuario sin conexiónApp offlineNo debe mostrar datos incorrectos; debe manejar el estado offline correctamente.Errores

Método de Trabajo · Reporte de Errores & Escaenarios de Prueba

Documento de portafolio · QA & Documentación de Bugs