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

  1. Accede a JiraCrear proyecto
  2. Selecciona Scrum como plantilla
  3. Nombre: Mi App → Clave: MIAPP
  4. 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:

  1. Todos los bugs críticos sin resolver
  2. Historias del sprint actual asignadas a ti
  3. Issues creadas en los últimos 7 días
  4. 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