El Problema de la Cobertura

Tienes 150 requisitos y 500 test cases. ¿Cómo sabes que cada requisito está cubierto por al menos un test? ¿Cómo sabes que no hay test cases huérfanos probando funcionalidades que ya no existen? Cuando un requisito cambia, ¿qué test cases necesitan actualizarse?

Sin una forma sistemática de vincular requisitos con pruebas, estas preguntas son casi imposibles de responder. La Matriz de Trazabilidad de Requisitos (RTM) es ese vínculo sistemático.

¿Qué Es una Matriz de Trazabilidad de Requisitos?

Una RTM es un documento — típicamente una tabla u hoja de cálculo — que mapea requisitos a test cases y frecuentemente a resultados de pruebas y defectos. Crea una cadena trazable desde la necesidad de negocio hasta la verificación.

graph LR A[Requisito de Negocio] --> B[Requisito Funcional] B --> C[Test Case] C --> D[Resultado del Test] D --> E[Defecto si falla] E --> F[Verificación del Fix]

La idea clave es la trazabilidad bidireccional: puedes trazar hacia adelante desde requisitos hacia tests (¿están todos los requisitos cubiertos?) y hacia atrás desde tests hacia requisitos (¿cada test está justificado por un requisito?).

Tipos de Trazabilidad

Trazabilidad Hacia Adelante

Mapea de requisitos a test cases. Responde: “¿Se prueba cada requisito?”

ID RequisitoRequisitoIDs de Test Cases
REQ-001El usuario puede iniciar sesión con email y contraseñaTC-101, TC-102, TC-103
REQ-002El usuario puede restablecer contraseña por emailTC-104, TC-105
REQ-003La sesión expira tras 30 min de inactividadTC-106
REQ-004El usuario puede habilitar 2FANinguno

Inmediatamente puedes ver que REQ-004 no tiene test cases — una brecha de cobertura que debe atenderse.

Trazabilidad Hacia Atrás

Mapea de test cases a requisitos. Responde: “¿Cada test está justificado?”

ID Test CaseTest CaseID Requisito
TC-101Login con credenciales válidasREQ-001
TC-102Login con contraseña inválidaREQ-001
TC-103Login con campos vacíosREQ-001
TC-104Solicitar restablecimiento de contraseñaREQ-002
TC-105Restablecer contraseña con enlace expiradoREQ-002
TC-106Timeout de sesión por inactividadREQ-003
TC-107Login con caracteres especiales en usuarioNinguno

TC-107 no tiene un requisito vinculado — puede ser un test de caso borde válido o puede estar probando algo fuera de alcance. En cualquier caso, merece revisión.

Trazabilidad Bidireccional

Combina ambas direcciones en una sola matriz. Esta es la forma más completa y más comúnmente utilizada.

Estructura de una RTM Completa

Una RTM completa típicamente incluye estas columnas:

ColumnaDescripciónEjemplo
ID RequisitoIdentificador únicoREQ-001
Descripción del RequisitoQué debe hacer el sistema“El usuario puede iniciar sesión con email/contraseña”
PrioridadPrioridad de negocioAlta
ID(s) Test CaseTest cases vinculadosTC-101, TC-102, TC-103
Estado del Test CaseEstado actual de ejecuciónPass / Fail / Not Run
ID(s) DefectoDefectos encontradosBUG-042
Estado del DefectoEstado actual del defectoOpen / Fixed / Verified
ComentariosContexto adicional“Requiere revisión de seguridad”

Ejemplo: RTM del Carrito de E-Commerce

Aquí hay un ejemplo realista para una funcionalidad de carrito de compras:

ID ReqRequisitoPrioridadTest CasesEstadoDefectos
CART-01Agregar ítem al carritoAltaTC-201, TC-202, TC-203Pass, Pass, Pass
CART-02Actualizar cantidad del ítemAltaTC-204, TC-205Pass, FailBUG-089
CART-03Eliminar ítem del carritoMediaTC-206Pass
CART-04Aplicar código de cupónMediaTC-207, TC-208, TC-209Pass, Pass, Not Run
CART-05Carrito persiste entre sesionesBajaTC-210Not Run
CART-06Mostrar estimación de envíoMedia

Análisis:

  • CART-02 tiene un test case fallando con un defecto abierto — requiere atención
  • CART-04 tiene un test case aún no ejecutado
  • CART-05 no ha sido probado en absoluto
  • CART-06 no tiene test cases — esta es una brecha de cobertura

Beneficios de Usar una RTM

1. Identificación de Brechas de Cobertura

Como se mostró arriba, escanear la RTM revela inmediatamente requisitos sin test cases. Sin una RTM, esta brecha podría pasar inadvertida hasta producción.

2. Análisis de Impacto

Cuando un requisito cambia, la RTM te dice exactamente qué test cases se ven afectados. Sin ella, tendrías que buscar manualmente entre cientos de test cases.

Ejemplo: Si CART-01 cambia de “agregar un solo ítem” a “agregar uno o múltiples ítems,” la RTM muestra que TC-201, TC-202 y TC-203 necesitan actualización. También podrías necesitar agregar nuevos test cases.

3. Reporte de Completitud de Testing

Project managers y stakeholders pueden ver de un vistazo:

  • Qué porcentaje de requisitos tienen test cases (cobertura)
  • Qué porcentaje de test cases se han ejecutado (progreso)
  • Cuántos requisitos tienen tests que pasan (confianza)

4. Cumplimiento Regulatorio

En industrias reguladas (salud, finanzas, aviación), una RTM es frecuentemente obligatoria. Los auditores la usan para verificar que cada requisito regulatorio ha sido probado y verificado.

5. Detección de Scope Creep

Si descubres test cases no vinculados a ningún requisito, puede indicar funcionalidades no oficiales o scope creep que necesita discutirse con stakeholders.

Creando una RTM: Paso a Paso

Paso 1: Recopilar Requisitos

Recopila todos los requisitos de especificaciones, user stories, criterios de aceptación, documentos regulatorios y cualquier otra fuente. Asigna IDs únicos a cada uno.

Paso 2: Diseñar Test Cases

Escribe test cases que cubran cada requisito. Apunta a al menos un test case positivo y uno negativo por requisito.

Paso 3: Mapear Requisitos a Test Cases

Crea la matriz vinculando cada requisito con sus test cases. Aquí es donde se establece la trazabilidad hacia adelante.

Paso 4: Verificar Trazabilidad Hacia Atrás

Verifica que cada test case se mapee a al menos un requisito. Investiga cualquier test case huérfano.

Paso 5: Ejecutar y Actualizar

Conforme se ejecutan las pruebas, actualiza la columna de estado. Cuando se encuentran defectos, vincúlalos tanto al test case como al requisito.

Paso 6: Revisar Regularmente

Revisa la RTM en hitos clave: después del diseño de pruebas, durante la ejecución de pruebas y antes de las decisiones de release.

Herramientas para Crear RTMs

HerramientaComplejidadMejor Para
Hojas de cálculo (Excel, Google Sheets)BajaProyectos pequeños, equipos nuevos en RTM
Jira + Xray / ZephyrMediaEquipos Agile usando Jira
TestRailMediaGestión de pruebas dedicada
Azure DevOps Test PlansMediaEquipos en ecosistema Microsoft
HP ALM / Micro FocusAltaEmpresas, industrias reguladas
Doors (IBM)AltaSistemas de seguridad crítica

Para la mayoría de equipos que comienzan, una hoja de cálculo bien estructurada es perfectamente adecuada. Migra a una herramienta dedicada cuando el proyecto crezca más allá de 200-300 requisitos.

RTM en Proyectos Agile

En Agile, el concepto de RTM sigue aplicando pero se adapta a la naturaleza iterativa de los sprints:

  • Requisitos = User Stories + Criterios de Aceptación
  • Trazabilidad frecuentemente se mantiene en herramientas como Jira (vinculando stories a test cases)
  • Alcance es por sprint en lugar de todo el proyecto
  • Actualizaciones ocurren cada sprint en lugar de en hitos del proyecto

Muchos equipos Agile mantienen un mapeo ligero “story-a-test” dentro de su sprint board, logrando el mismo objetivo sin el overhead de un documento RTM formal.

Errores Comunes con RTMs

  1. Crearla una vez y nunca actualizarla — Una RTM es un documento vivo. RTMs desactualizadas dan falsa confianza.
  2. Trazabilidad demasiado granular — Trazar cada sub-requisito a cada sub-test crea overhead de mantenimiento sin beneficio proporcional.
  3. Sin trazabilidad hacia atrás — La trazabilidad solo hacia adelante pierde test cases huérfanos.
  4. Ignorar requisitos no funcionales — Performance, seguridad y accesibilidad también necesitan trazabilidad.
  5. No involucrar desarrolladores — Los desarrolladores pueden ayudar a identificar requisitos que necesitan más cobertura de pruebas basándose en la complejidad del código.

Ejercicio: Crea una RTM

Escenario: Estás construyendo una RTM para una funcionalidad de registro de usuario. A continuación están los requisitos y test cases. Tu tarea es crear una RTM bidireccional y analizarla en busca de brechas.

Requisitos:

IDRequisito
REG-01El usuario puede registrarse con email, contraseña y nombre
REG-02La contraseña debe tener al menos 8 caracteres con una mayúscula y un número
REG-03El sistema envía email de confirmación después del registro
REG-04El usuario no puede registrarse con un email existente
REG-05El usuario puede registrarse usando Google OAuth
REG-06Los términos y condiciones deben aceptarse antes del registro

Test Cases:

IDTest Case
TC-301Registrarse con email, contraseña y nombre válidos
TC-302Registrarse con contraseña menor a 8 caracteres
TC-303Registrarse con contraseña sin letra mayúscula
TC-304Registrarse con contraseña sin número
TC-305Registrarse con email que ya existe
TC-306Verificar que se recibe email de confirmación
TC-307Registrarse usando cuenta de Google
TC-308Registrarse sin aceptar términos
TC-309Registrarse con campo de nombre vacío
TC-310Registrarse con inyección SQL en campo de email

Tareas:

  1. Crea la RTM bidireccional (mapea requisitos a test cases Y test cases a requisitos)
  2. Identifica brechas de cobertura (requisitos sin tests)
  3. Identifica test cases huérfanos (tests sin requisitos)
  4. Sugiere test cases adicionales para cerrar brechas
Pista
  • Mapea cada test case al requisito que verifica. Algunos test cases pueden mapearse a múltiples requisitos.
  • Busca requisitos que no tengan test cases en absoluto.
  • Busca test cases que no se mapeen a ningún requisito listado.
  • Considera qué escenarios adicionales podría necesitar cada requisito.
Solución

RTM Bidireccional

ID ReqRequisitoIDs Test CaseCobertura
REG-01Registrarse con email, contraseña, nombreTC-301, TC-309Cubierto
REG-02Requisitos de contraseñaTC-302, TC-303, TC-304Cubierto
REG-03Email de confirmaciónTC-306Parcialmente cubierto
REG-04No registrarse con email existenteTC-305Cubierto
REG-05Registrarse con Google OAuthTC-307Parcialmente cubierto
REG-06Aceptar términos antes del registroTC-308Cubierto

Trazabilidad Hacia Atrás

ID TCTest CaseID Req
TC-301Registro con datos válidosREG-01
TC-302Contraseña muy cortaREG-02
TC-303Contraseña sin mayúsculaREG-02
TC-304Contraseña sin númeroREG-02
TC-305Email existenteREG-04
TC-306Email de confirmaciónREG-03
TC-307Google OAuthREG-05
TC-308Términos no aceptadosREG-06
TC-309Nombre vacíoREG-01
TC-310Inyección SQL en emailNinguno (huérfano)

Análisis

Brechas de cobertura:

  • REG-03 solo tiene un test case. Falta: email de confirmación no recibido, email contiene detalles correctos, el enlace de confirmación funciona.
  • REG-05 solo tiene un test case. Falta: fallo de Google OAuth, cuenta de Google sin email, flujo OAuth cancelado.

Test cases huérfanos:

  • TC-310 (inyección SQL) no se mapea a ningún requisito listado. Es un test de seguridad válido — debería vincularse a un requisito de seguridad implícito o explícito. Si no existe un requisito de seguridad, recomienda agregar uno (ej., REG-07: “El sistema debe sanitizar todos los campos de entrada”).

Test cases adicionales sugeridos:

  • TC-311: Email de confirmación contiene el nombre correcto del usuario (REG-03)
  • TC-312: El enlace de confirmación expira después de 24 horas (REG-03)
  • TC-313: Google OAuth cancelado por el usuario (REG-05)
  • TC-314: Google OAuth con cuenta sin email (REG-05)
  • TC-315: Registrarse con contraseña que cumple todos los criterios (REG-02, test positivo)
  • TC-316: Registrarse con caracteres especiales en el nombre (REG-01)

Puntos Clave

  • Una RTM vincula requisitos con test cases, creando una cadena trazable desde la necesidad de negocio hasta la verificación
  • La trazabilidad hacia adelante asegura que cada requisito se pruebe; la trazabilidad hacia atrás asegura que cada test esté justificado
  • Las RTMs revelan brechas de cobertura, soportan análisis de impacto y permiten auditorías de cumplimiento
  • Comienza simple con una hoja de cálculo y evoluciona a herramientas dedicadas conforme crece el proyecto
  • Trata la RTM como un documento vivo — actualízala durante todo el ciclo de vida del proyecto