Módulo 02: Gestión de Pruebas con Jira
Objetivos del módulo
- Comprender qué es Jira y su rol en proyectos ágiles
- Crear y configurar proyectos Scrum y Kanban
- Gestionar issues: épicas, historias, tareas, bugs
- Crear y gestionar tableros para QA
- Diseñar flujos de trabajo para bugs
1. ¿Qué es Jira?
Jira (de Atlassian) es la herramienta de gestión de proyectos más utilizada en equipos de desarrollo ágil.
| Característica | Descripción |
|---|---|
| Gestión de issues | Historias de usuario, tareas, bugs, épicas |
| Tableros | Scrum board con sprints o Kanban board con flujo |
| Workflows | Flujos de trabajo personalizables |
| Reportes | Burndown, velocity, cumulative flow |
| Integraciones | GitHub, GitLab, Slack, Confluence, TestRail |
2. Conceptos fundamentales
2.1 Proyecto
Un proyecto en Jira agrupa todas las issues de un producto o equipo.
| Tipo | Uso |
|---|---|
| Scrum | Proyectos con sprints de duración fija |
| Kanban | Flujo continuo sin sprints |
| Bug tracking | Solo gestión de defectos |
2.2 Tipos de issues
graph TD
E[Épica<br/>Gran funcionalidad] --> H1[Historia 1]
E --> H2[Historia 2]
E --> H3[Historia 3]
H1 --> T1[Tarea 1.1]
H1 --> T2[Tarea 1.2]
H2 --> B1[Bug 2.1]
style E fill:#9C27B0,color:white
style H1 fill:#2196F3,color:white
style H2 fill:#2196F3,color:white
style H3 fill:#2196F3,color:white
style B1 fill:#f44336,color:white
| Tipo | Icono | Descripción | Ejemplo |
|---|---|---|---|
| Épica | 🟣 | Gran funcionalidad que abarca varios sprints | Sistema de autenticación |
| Historia | 🔵 | Funcionalidad desde perspectiva del usuario | Login con email |
| Tarea | 🟢 | Trabajo técnico específico | Configurar base de datos |
| Bug | 🔴 | Defecto encontrado | Error en validación de email |
| Subtarea | ⚪ | División de una historia o tarea | Diseñar formulario de login |
2.3 Estados y transiciones
El flujo de trabajo por defecto tiene 3 estados:
graph LR
A[To Do] --> B[In Progress]
B --> C[Done]
B --> A
style A fill:#e0e0e0,color:black
style B fill:#2196F3,color:white
style C fill:#4CAF50,color:white
3. Creación de un proyecto paso a paso
Paso 1: Crear el proyecto
- Accede a Jira → Crear proyecto
- Selecciona Scrum como plantilla
- Nombre:
Mi App→ Clave:MIAPP - El proyecto se crea con tablero Scrum
Paso 2: Crear una épica
Épica: Sistema de Usuarios
Descripción: Toda la funcionalidad relacionada con registro,
login y gestión de perfiles de usuario
Paso 3: Crear historias de usuario
Historia: MIAPP-1 — Login de usuario
Tipo: Historia
Épica: Sistema de Usuarios
Descripción:
Como usuario registrado
Quiero hacer login con mi email y contraseña
Para acceder a mi cuenta
Criterios de aceptación:
- Login exitoso redirige al dashboard
- Credenciales incorrectas muestran error
- Bloqueo tras 5 intentos fallidos
Story Points: 5
Prioridad: Alta
Sprint: Sprint 1
Paso 4: Desglosar en subtareas
MIAPP-1 Login de usuario
├── MIAPP-2 [Subtarea] Diseñar formulario de login
├── MIAPP-3 [Subtarea] Implementar endpoint /api/login
├── MIAPP-4 [Subtarea] Implementar validaciones
├── MIAPP-5 [Subtarea] Escribir tests unitarios
└── MIAPP-6 [Subtarea] Escribir tests E2E
4. Gestión de Bugs
4.1 Cómo reportar un bug efectivo
Un buen reporte de bug permite al desarrollador reproducir y corregir el defecto rápidamente.
Campos obligatorios
| Campo | Ejemplo |
|---|---|
| Título | Error al hacer login con email que contiene “+” |
| Tipo | Bug |
| Prioridad | Alta |
| Severidad | Crítica / Mayor / Menor / Trivial |
| Entorno | Chrome 120, Windows 11, Producción |
| Pasos para reproducir | (ver ejemplo abajo) |
| Resultado esperado | Login exitoso |
| Resultado actual | Error 500: “Invalid email format” |
| Evidencia | Captura de pantalla / video |
| Versión | v2.3.1 |
Ejemplo de bug bien reportado
**Título:** [BUG] Error 500 al hacer login con email que contiene "+"
**Prioridad:** Alta
**Severidad:** Crítica
**Entorno:** Chrome 120.0.6099.130, Windows 11, Producción
**Pasos para reproducir:**
1. Ir a https://miapp.com/login
2. Introducir email: usuario+tag@gmail.com
3. Introducir contraseña: Password123!
4. Pulsar "Iniciar sesión"
**Resultado esperado:**
Login exitoso y redirección al dashboard
**Resultado actual:**
Página de error 500 con mensaje "Internal Server Error"
En consola: "System.FormatException: Invalid email format"
**Notas:**
- Funciona correctamente con emails sin "+"
- Afecta a todos los navegadores
- Log del servidor adjunto
**Adjuntos:** screenshot_error.png, server_log.txt
4.2 Prioridad vs Severidad
| Baja severidad | Alta severidad | |
|---|---|---|
| Baja prioridad | Typo en página poco visitada | Crash en funcionalidad que nadie usa |
| Alta prioridad | Error de color en logo (visible) | Crash en el login (bloquea todo) |
📘 Concepto: Severidad = impacto técnico del bug. Prioridad = urgencia de corrección según el negocio. Un bug puede ser severo pero de baja prioridad (o viceversa).
4.3 Flujo de vida de un bug
graph LR
A[Nuevo] --> B[Asignado]
B --> C[En progreso]
C --> D[Resuelto]
D --> E{QA Verifica}
E -->|Verificado| F[Cerrado]
E -->|Reabierto| B
B --> G[Rechazado]
A --> H[Duplicado]
style A fill:#FF9800,color:white
style F fill:#4CAF50,color:white
style G fill:#9E9E9E,color:white
5. Tableros
5.1 Tablero Scrum
El tablero Scrum muestra el sprint actual con sus historias y tareas:
╔══════════════╦══════════════╦══════════════╦══════════════╗
║ POR HACER ║ EN PROGRESO ║ EN REVISIÓN ║ HECHO ║
╠══════════════╬══════════════╬══════════════╬══════════════╣
║ MIAPP-5 ║ MIAPP-3 ║ MIAPP-2 ║ MIAPP-1 ║
║ Tests unit. ║ Endpoint ║ Formulario ║ Diseño BD ║
║ ║ ║ ║ ║
║ MIAPP-6 ║ MIAPP-4 ║ ║ ║
║ Tests E2E ║ Validaciones ║ ║ ║
╚══════════════╩══════════════╩══════════════╩══════════════╝
5.2 Tablero Kanban con WIP Limits
╔══════════════╦════════════════╦═══════════════╦══════════╗
║ BACKLOG ║ IN PROGRESS(3) ║ TESTING (2) ║ DONE ║
╠══════════════╬════════════════╬═══════════════╬══════════╣
║ Feature C ║ Feature A ║ Bug Fix #42 ║ Setup ║
║ Feature D ║ Bug Fix #43 ║ ║ Feature B║
║ Bug Fix #44 ║ ║ ║ ║
╚══════════════╩════════════════╩═══════════════╩══════════╝
6. Filtros y JQL
JQL (Jira Query Language) permite hacer búsquedas avanzadas.
Ejemplos de JQL
-- Todos los bugs abiertos del proyecto MIAPP
project = MIAPP AND type = Bug AND status != Done
-- Bugs críticos asignados a mí
assignee = currentUser() AND type = Bug AND priority = Critical
-- Issues del sprint actual
sprint in openSprints()
-- Historias completadas en el último sprint
type = Story AND status = Done AND sprint in closedSprints()
ORDER BY resolved DESC
-- Bugs creados esta semana
type = Bug AND created >= startOfWeek()
-- Issues sin asignar
assignee is EMPTY AND status = "To Do"
-- Búsqueda por texto
summary ~ "login" OR description ~ "autenticación"
7. Informes y métricas
7.1 Burndown Chart
Muestra el trabajo restante vs el tiempo del sprint.
Trabajo ▲
restante │ \
│ \ ← Línea ideal
│ \
│ · \
│ · \
│ · · \
│ ··· · · ← Progreso real
│ \
└──────────────► Tiempo
Día 1 Día 10
| Patrón | Significado |
|---|---|
| Línea real por debajo de la ideal | El equipo va adelantado |
| Línea real por encima | El equipo va retrasado |
| Línea plana | Nadie está trabajando o actualizando |
| Picos hacia arriba | Se añadió trabajo al sprint (scope creep) |
7.2 Velocity Chart
Muestra los story points completados por sprint.
| Sprint | Comprometidos | Completados |
|---|---|---|
| Sprint 1 | 20 | 15 |
| Sprint 2 | 18 | 18 |
| Sprint 3 | 20 | 22 |
| Sprint 4 | 21 | 19 |
Velocidad promedio: (15+18+22+19)/4 = 18.5 puntos/sprint
💡 Consejo: Usa la velocidad promedio de los últimos 3-5 sprints para planificar. No compares velocidad entre equipos diferentes.
8. Jira para QA: Buenas prácticas
Dashboard de QA
Crea un dashboard personalizado con estos gadgets:
| Gadget | Uso |
|---|---|
| Filter Results | Bugs abiertos por prioridad |
| Pie Chart | Distribución de bugs por componente |
| Created vs Resolved | Tendencia de creación vs resolución |
| Sprint Burndown | Progreso del sprint |
Etiquetas útiles para QA
Labels: qa-ready, qa-in-progress, qa-passed, qa-failed
regression, automation-needed, flaky-test
Workflow personalizado para QA
graph LR
A[To Do] --> B[Dev In Progress]
B --> C[Ready for QA]
C --> D[QA In Progress]
D --> E{¿Pasa?}
E -->|Sí| F[Done]
E -->|No| B
style C fill:#FF9800,color:white
style D fill:#2196F3,color:white
style F fill:#4CAF50,color:white
9. Ejercicios prácticos
Ejercicio 1: Crear un proyecto
Crea un proyecto Scrum en Jira (Free tier) para una “Tienda Online”. Crea al menos: 2 épicas, 5 historias, 3 bugs.
Ejercicio 2: Reportar bugs
Escribe 3 reportes de bugs completos (con todos los campos) para defectos imaginarios en una app de e-commerce.
Ejercicio 3: JQL
Escribe consultas JQL para:
- Todos los bugs críticos sin resolver
- Historias del sprint actual asignadas a ti
- Issues creadas en los últimos 7 días
- Bugs reabiertos
Ejercicio 4: Dashboard
Diseña (en papel o herramienta) un dashboard de QA con al menos 4 widgets y explica qué información muestra cada uno.
Resumen
| Concepto | Descripción |
|---|---|
| Jira | Herramienta de gestión de proyectos ágiles |
| Issues | Épicas > Historias > Tareas / Bugs |
| Bug report | Título, pasos, esperado vs actual, evidencia |
| Prioridad vs Severidad | Urgencia de negocio vs impacto técnico |
| JQL | Lenguaje de consultas de Jira |
| Tableros | Scrum (sprints) o Kanban (flujo continuo) |
| Métricas | Burndown, velocity, created vs resolved |