Diseño y gestión de casos de prueba conectados a Jira

Capítulo 4

Tiempo estimado de lectura: 11 minutos

+ Ejercicio

Qué es un caso de prueba “conectado” a Jira

Un caso de prueba conectado a Jira es un artefacto de QA que vive en una herramienta de gestión de pruebas integrada con Jira (por ejemplo, Xray, Zephyr Scale o TestRail con integración) y que se vincula explícitamente a issues de Jira (Historia de Usuario, Bug, Task). La conexión permite: (1) ejecutar el caso desde un plan/sprint, (2) registrar evidencias y resultados por ejecución, y (3) mantener trazabilidad entre requisitos, pruebas y defectos sin duplicar información.

Estructura de un caso de prueba consistente

Para que un caso sea reutilizable y mantenible, debe tener una estructura estable. A continuación se describen los campos recomendados y cómo redactarlos.

1) Precondiciones

Describe el estado inicial necesario para ejecutar el caso. Debe ser verificable y, si aplica, referenciar datos o configuraciones existentes.

  • Incluye roles/permisos (p. ej., “Usuario con rol Admin”).
  • Incluye estado del sistema (p. ej., “Feature flag X activada”).
  • Incluye dependencias externas (p. ej., “Servicio de pagos en sandbox disponible”).

2) Datos de prueba

Lista los datos concretos que se usarán. Evita “datos genéricos” si afectan el resultado. Si hay múltiples combinaciones, considera parametrización o variantes.

  • Identificadores: usuario, cuenta, producto, etc.
  • Valores límite: mínimos, máximos, formatos inválidos.
  • Datos sensibles: usa datos ficticios o enmascarados.

3) Pasos

Los pasos deben ser accionables, numerados y atómicos (una acción por paso). Evita mezclar acciones y validaciones en el mismo paso, salvo que tu estándar lo permita.

Continúa en nuestra aplicación.
  • Escuche el audio con la pantalla apagada.
  • Obtenga un certificado al finalizar.
  • ¡Más de 5000 cursos para que explores!
O continúa leyendo más abajo...
Download App

Descargar la aplicación

4) Resultado esperado

Define el comportamiento observable del sistema. Debe ser específico: mensajes, cambios de estado, persistencia en BD (si es parte del alcance), eventos emitidos, etc. Si el resultado esperado depende de reglas, referencia la regla o el issue relacionado en Jira.

5) Postcondiciones

Indica el estado final esperado o tareas de limpieza (cleanup). Útil para evitar contaminación de datos entre ejecuciones.

  • Revertir configuraciones temporales.
  • Eliminar registros creados si no deben persistir.
  • Dejar el sistema en un estado conocido para el siguiente caso.

6) Notas de automatización

Campo clave para que el caso sea “automation-ready”. Incluye criterios y sugerencias técnicas sin convertir el caso en un script.

  • Tipo de prueba: UI/API/Integración.
  • Selector/endpoint estable recomendado.
  • Datos parametrizables y fuentes (fixtures).
  • Tags sugeridos (p. ej., smoke, regression, critical).
  • Requisitos de entorno (p. ej., “necesita mock de proveedor”).

Plantilla propuesta de caso de prueba

Puedes implementar esta plantilla como campos del tipo “Test” en tu herramienta conectada a Jira, o como una convención de redacción si tu herramienta no soporta todos los campos.

ID/Key: (autogenerado por la herramienta)\nTítulo: [Verbo + objeto + condición] (ej. “Crear pedido con cupón válido”)\nObjetivo: Qué valida el caso en una frase\n\nPrecondiciones:\n- ...\n\nDatos de prueba:\n- Usuario: ...\n- Producto: ...\n- Cupón: ...\n\nPasos y resultados esperados:\n1) Acción: ...\n   Esperado: ...\n2) Acción: ...\n   Esperado: ...\n\nPostcondiciones / Limpieza:\n- ...\n\nNotas de automatización:\n- Tipo: UI/API\n- Tags: smoke, regression\n- Observaciones: ...\n\nVinculación en Jira:\n- Requisito/Historia: ABC-123\n- Bugs relacionados (si aplica): ABC-456

Guía práctica paso a paso: crear y conectar un caso a Jira

Los nombres exactos de botones varían según la app (Xray/Zephyr Scale/etc.), pero el flujo es equivalente.

Paso 1: Crear el artefacto de prueba

  • En Jira, crea un issue del tipo Test (o “Caso de prueba” en tu app).
  • Escribe un título orientado a intención: “Validar X cuando Y”.
  • Completa objetivo, precondiciones, datos, pasos, esperados, postcondiciones y notas de automatización.

Paso 2: Vincular el caso al requisito

  • Desde el caso, agrega un enlace al issue de Jira que representa el requisito (Historia/Task).
  • Usa el tipo de relación que tu herramienta recomienda (p. ej., “tests” / “is tested by”).
  • Si el requisito tiene sub-tareas técnicas, evita vincular el caso a todas: vincúlalo al issue que representa el valor funcional, y usa enlaces secundarios solo si aportan trazabilidad real.

Paso 3: Preparar ejecución en un plan/suite

  • Crea un Test Plan o Test Cycle para agrupar ejecuciones.
  • Agrega el caso al plan, definiendo versión/build/entorno si tu herramienta lo soporta.
  • Si el caso requiere datos específicos, documenta la variante (ver sección de reutilización).

Paso 4: Ejecutar y registrar evidencias

  • Ejecuta el caso desde el plan/ciclo.
  • Registra resultado por paso (Pass/Fail/Blocked) cuando sea posible.
  • Adjunta evidencia relevante (capturas, logs, respuestas API) a la ejecución, no al caso, para mantener el caso limpio y reutilizable.

Paso 5: Si falla, crear bug conectado

  • Desde la ejecución fallida, crea un Bug en Jira.
  • Vincula el Bug a la ejecución/caso y al requisito (si tu proceso lo pide).
  • En el bug, referencia evidencia y pasos mínimos de reproducción; evita copiar todo el caso si ya está vinculado.

Organización de suites/planes de prueba

Una buena organización reduce duplicidad y acelera la selección de pruebas. En Jira + app de testing, normalmente tienes dos niveles: (1) biblioteca de casos (repositorio) y (2) contenedores de ejecución (plan/ciclo/suite). La biblioteca cambia lento; los planes cambian por sprint/release.

Organizar por funcionalidad (estructura por módulos)

Recomendado cuando el producto tiene dominios claros (Checkout, Catálogo, Usuarios).

  • Carpetas o componentes: Checkout > Cupones > Validaciones.
  • Ventaja: fácil encontrar y reutilizar.
  • Riesgo: puede crecer mucho; usa etiquetas para cortes transversales (smoke, API, etc.).

Organizar por riesgo (criticidad/impacto)

Útil para priorizar regresión y smoke.

  • Etiquetas o campos: Risk=High/Medium/Low, Criticality.
  • Crea planes tipo: “Regresión crítica” (solo High) y “Regresión completa”.
  • Evita duplicar casos en carpetas de riesgo; usa metadatos (tags/campos) y filtros.

Organizar por sprint (selección para ejecución)

En lugar de duplicar casos por sprint, crea planes/ciclos por sprint y agrega referencias a los mismos casos.

  • Plan: Sprint 12 - QA.
  • Contenido del plan: casos relacionados a historias del sprint + smoke/regresión mínima.
  • Si tu herramienta lo permite, agrega casos automáticamente por consulta (p. ej., “todos los tests vinculados a issues del sprint”).

Ejemplo de matriz de organización recomendada

ElementoCómo se organizaPropósito
Biblioteca de casosCarpetas por funcionalidad + tags por tipo/riesgoReutilización y mantenimiento
Plan/Ciclo por sprintPor sprint/versión/entornoEjecución y reporte
RegresiónPlan recurrente filtrado por tags (smoke/regression) y riesgoSelección rápida

Versionado de casos cuando cambian los requisitos

Los requisitos cambian; el caso debe evolucionar sin perder trazabilidad histórica. El objetivo es distinguir: (a) el caso como especificación de prueba y (b) sus ejecuciones a través del tiempo.

Estrategia 1: Mantener el mismo caso y registrar cambios (recomendada para cambios menores)

  • Edita el caso para reflejar el comportamiento actual.
  • Usa el historial de Jira y/o un campo “Changelog de prueba” breve: qué cambió y por qué (referenciando el issue).
  • Ventaja: no proliferan casos.
  • Cuándo aplica: cambios de texto, mensajes, validaciones pequeñas, ajustes de datos.

Estrategia 2: Clonar y versionar (para cambios que alteran el objetivo)

Si el objetivo del caso cambia (ya no valida lo mismo), clona.

  • Convención de nombre: [v2] o sufijo por release (R1.8), o un campo “Versión del caso”.
  • Enlaza el nuevo caso con el anterior usando relación “replaces/duplicated by” (según tu app).
  • Deja el caso antiguo como “Deprecated/Obsoleto” (estado o etiqueta), sin borrarlo, para preservar ejecuciones históricas.

Estrategia 3: Variantes parametrizadas (cuando cambia el dato, no el flujo)

Si el flujo es el mismo pero cambian combinaciones de datos (p. ej., tipos de cupón), evita clonar por cada variante.

  • Define un caso base y agrega una tabla de datos/ejemplos.
  • O crea “test iterations”/“datasets” si tu herramienta lo soporta.
  • Registra qué dataset se ejecutó en cada ejecución.

Prácticas para evitar duplicidad

1) Definir un “propósito único” por caso

Antes de crear un caso nuevo, formula su objetivo en una frase. Si ya existe un caso que valida ese objetivo, extiéndelo con datos/variantes en lugar de duplicarlo.

2) Búsqueda y convenciones de naming

  • Usa un patrón consistente: [Módulo] + [Acción] + [Condición].
  • Antes de crear: busca por palabras clave del módulo y la acción (p. ej., “cupón”, “checkout”, “descuento”).
  • Apóyate en etiquetas controladas (taxonomía) para evitar sinónimos dispersos.

3) Separar “pasos comunes” sin copiar/pegar

Si muchos casos comparten preparación (login, crear entidad base), evita repetirlo en cada caso como una lista larga.

  • Opción A: mantener una precondición estándar (“Usuario autenticado”) y un caso separado “Login” solo si se prueba login.
  • Opción B: usar “shared steps”/“call to test” si tu herramienta lo soporta (pasos reutilizables).
  • Opción C: documentar un procedimiento común en un recurso aparte (página interna) y referenciarlo, sin convertirlo en dependencia frágil.

4) Revisiones ligeras (peer review) antes de publicar

Implementa una regla simple: todo caso nuevo debe ser revisado por otra persona (QA o dev) para detectar duplicados y mejorar claridad.

Reutilización efectiva de casos

Reutilización por capas (smoke, regresión, exploratorio guiado)

  • Marca casos “smoke” como flujos cortos y de alto valor.
  • Casos de regresión: más cobertura, pero aún atómicos.
  • Para exploratorio guiado, crea charters o checklists separados; no fuerces a los casos a ser exploratorios.

Reutilización por entorno y datos

Evita reescribir casos para QA/Staging/Prod. Mantén el caso igual y parametriza:

  • URLs/hosts por variable de entorno.
  • Usuarios de prueba por rol (Admin/Viewer).
  • Datos “semilla” por dataset.

Reutilización por integración (API vs UI)

Cuando el mismo objetivo puede validarse por API y por UI, no siempre conviene duplicar. Decide según el propósito:

  • Si el objetivo es regla de negocio: prioriza API (más estable) y deja UI como smoke de flujo.
  • Si el objetivo es experiencia/validación visual: UI es necesaria.

Criterios de calidad de un caso de prueba

Claridad

  • Lenguaje directo, sin ambigüedad (“hacer clic en Guardar” vs “guardar”).
  • Resultados esperados observables (mensaje exacto o patrón, estado, redirección).
  • Evita múltiples interpretaciones: define qué se considera “éxito”.

Atomicidad

  • Un caso valida una idea principal.
  • Si hay múltiples validaciones, sepáralas en casos distintos o en datasets si comparten flujo.

Trazabilidad

  • El caso está vinculado al issue correcto en Jira (requisito) y, cuando aplica, a bugs.
  • El objetivo del caso refleja el valor del requisito, no una implementación interna.

Mantenibilidad

  • Minimiza dependencias de datos frágiles (IDs hardcodeados).
  • Usa precondiciones realistas y fáciles de preparar.
  • Evita pasos excesivos; si supera ~12–15 pasos, evalúa dividir.

Listo para automatización (si aplica)

  • Pasos deterministas y verificables.
  • Datos parametrizables y repetibles.
  • Notas de automatización con sugerencias de endpoints/selectores estables.

Ejemplo completo de caso de prueba (conectado a Jira)

Título: Aplicar cupón válido en checkout y recalcular total

Objetivo: Verificar que un cupón válido aplica descuento y el total se recalcula correctamente.

Precondiciones:

  • Usuario con cuenta activa y dirección de envío registrada.
  • Carrito con 1 producto elegible para cupones.
  • Impuestos configurados para el país de envío.

Datos de prueba:

  • Usuario: qa_buyer_01
  • Producto: SKU-123 precio 100
  • Cupón: DESC10 (10% off, vigente)

Pasos y resultados esperados:

  1. Acción: Iniciar checkout desde el carrito.

    Esperado: Se muestra resumen con subtotal 100 y opción “Aplicar cupón”.

  2. Acción: Ingresar cupón DESC10 y confirmar.

    Esperado: Mensaje de cupón aplicado; se refleja descuento 10; total se recalcula (subtotal 100, descuento 10, impuestos según regla, total consistente).

  3. Acción: Continuar hasta el paso de pago sin confirmar compra.

    Esperado: El descuento permanece aplicado en el resumen.

Postcondiciones / Limpieza:

  • Vaciar carrito del usuario si el flujo no lo hace automáticamente.

Notas de automatización:

  • Tipo: API preferente para regla de descuento + UI smoke para persistencia visual.
  • Tags: regression, critical
  • Validación clave: comparar totales con fórmula (evitar asserts por texto completo si cambia el formato).

Vinculación en Jira: Historia SHOP-248 (cupón en checkout). Bugs relacionados se crean desde ejecuciones fallidas.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la práctica recomendada para mantener un caso de prueba reutilizable cuando se ejecuta desde un plan/ciclo en una herramienta conectada a Jira?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

La evidencia y los resultados varían por ejecución; por eso se recomienda adjuntarlos a la ejecución en el plan/ciclo. Así el caso de prueba queda estable, fácil de mantener y reutilizable en futuros sprints o releases.

Siguiente capítulo

Ejecución de pruebas en Jira con control de estados y resultados

Arrow Right Icon
Portada de libro electrónico gratuitaGestión de Pruebas con Jira: Flujos, Evidencias y Trazabilidad en Proyectos Ágiles
36%

Gestión de Pruebas con Jira: Flujos, Evidencias y Trazabilidad en Proyectos Ágiles

Nuevo curso

11 páginas

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.