🐛 ¿Qué es un Bug Report?
Un reporte de bug es un documento que describe un defecto encontrado en el software, con suficiente
detalle para que el equipo de desarrollo pueda reproducirlo, entenderlo y corregirlo.
📝 Elementos Esenciales
1. Título Descriptivo
Debe ser claro, conciso y específico. Incluir el módulo afectado.
- ✅ Bueno: "Transferencias - Error 500 al enviar monto negativo"
- ❌ Malo: "No funciona"
2. Severidad y Prioridad
CRÍTICA Sistema no funcional, pérdida de datos
ALTA Funcionalidad principal afectada
MEDIA Funcionalidad secundaria con workaround
BAJA Cosmético, no afecta funcionalidad
3. Descripción
Explicación clara del problema observado.
4. Pasos para Reproducir
Lista numerada y detallada de cómo replicar el bug.
5. Resultado Esperado vs Obtenido
Qué debería pasar vs qué pasó realmente.
6. Entorno
- Sistema Operativo
- Navegador/Cliente
- Versión de la aplicación
- Ambiente (Dev, QA, Prod)
7. Evidencias
- Screenshots
- Logs de consola
- Request/Response de API
- Videos (si aplica)
📋 Ejemplo Completo
🔴 BUG-TRF-042: Transferencias - Error 500 al enviar monto negativo
Severidad: ALTA
Prioridad: Alta
Módulo: Transferencias
Endpoint: POST /transferencias/
Descripción:
Al intentar realizar una transferencia con un monto negativo, la API retorna un error 500 (Internal
Server Error) en lugar de validar el input y retornar un 400 (Bad Request) con un mensaje
descriptivo.
Pasos para Reproducir:
- Acceder a Swagger UI: https://homebanking-demo.onrender.com/docs
- Expandir endpoint POST /transferencias/
- Hacer clic en "Try it out"
- Ingresar el siguiente payload:
{
"monto": -5000,
"cuenta_origen": "ACC001",
"cuenta_destino": "ACC002",
"descripcion": "Test"
}
- Ejecutar request
Resultado Esperado:
Status Code: 400
Response Body:
{
"exito": false,
"error": "MONTO_INVALIDO",
"mensaje": "El monto debe ser mayor a $100"
}
Resultado Obtenido:
Status Code: 500
Response Body:
{
"detail": "Internal Server Error"
}
Entorno:
- OS: Windows 11
- Browser: Chrome 144.0
- API Version: 1.0.0
- Environment: Production (Render)
Logs de Consola:
POST https://homebanking-demo.onrender.com/transferencias/ 500
Traceback (most recent call last):
File "transfers.py", line 24
ValueError: Monto inválido
✅ Mejores Prácticas
- 🔍 Reproduce el bug antes de reportarlo
- 📸 Adjunta evidencias visuales siempre que sea posible
- 🎯 Un bug por ticket - No mezcles múltiples issues
- 🔄 Actualiza el estado cuando haya cambios
- 💬 Sé profesional en la descripción
- 🏷️ Usa etiquetas para categorizar (API, UI, DB, etc.)
- 🔗 Referencia casos de prueba relacionados
🚫 Errores Comunes
- ❌ Títulos vagos: "Error en la app"
- ❌ Falta de pasos para reproducir
- ❌ No especificar el entorno
- ❌ Reportar sin verificar primero
- ❌ Mezclar múltiples bugs en un ticket
- ❌ Usar lenguaje emocional o no profesional
🛠️ Herramientas Recomendadas
- Jira - Gestión de bugs empresarial
- GitHub Issues - Para proyectos open source
- Azure DevOps - Integrado con Microsoft
- Bugzilla - Sistema clásico de tracking
- Linear - Moderno y ágil
📊 Ciclo de Vida de un Bug
- New - Bug recién reportado
- Assigned - Asignado a un desarrollador
- In Progress - En proceso de corrección
- Fixed - Corregido, pendiente de verificación
- Verified - QA confirma la corrección
- Closed - Bug cerrado
- Reopened - Si el bug persiste