28. Trazabilidad entre requisitos, pruebas y defectos

28.1 Introducción

En un proyecto de software, los requisitos indican qué debe construirse, los casos de prueba indican cómo se verificará y los defectos muestran qué problemas se encontraron. La trazabilidad conecta estos elementos.

Sin trazabilidad, puede ser difícil responder preguntas simples: ¿qué pruebas cubren este requisito?, ¿qué defectos afectan esta funcionalidad?, ¿qué casos debemos repetir si cambia una regla?, ¿qué requisitos quedaron sin probar?

En este tema veremos qué es la trazabilidad, para qué sirve y cómo aplicarla de forma práctica.

28.2 ¿Qué es trazabilidad?

La trazabilidad es la capacidad de relacionar elementos del proyecto entre sí. En testing, normalmente buscamos conectar requisitos, criterios de aceptación, casos de prueba, ejecuciones, defectos y versiones.

Ejemplo simple:

Requisito R-LOGIN-01 -> Caso CP-LOGIN-001 -> Ejecución aprobada -> Sin defectos abiertos.

Otro ejemplo:

Requisito R-PAGO-02 -> Caso CP-PAGO-004 -> Ejecución fallida -> Defecto DEF-231.

Estas relaciones permiten seguir el recorrido desde lo que se pidió hasta lo que se probó y lo que falló.

28.3 ¿Para qué sirve?

La trazabilidad sirve para:

  • Conocer qué requisitos tienen pruebas asociadas.
  • Detectar requisitos sin cobertura.
  • Identificar qué defectos afectan a qué funcionalidades.
  • Analizar impacto de cambios.
  • Saber qué casos deben repetirse cuando cambia un requisito.
  • Comunicar avance y riesgos.
  • Preparar evidencias para auditorías o revisiones.
  • Evitar pruebas desconectadas del objetivo del producto.

No se trata de crear burocracia. Se trata de poder responder preguntas importantes con menos incertidumbre.

28.4 Elementos que se pueden relacionar

Según el proyecto, podemos relacionar:

  • Requisitos.
  • Historias de usuario.
  • Criterios de aceptación.
  • Casos de uso.
  • Casos de prueba.
  • Suites de prueba.
  • Ejecuciones de prueba.
  • Defectos.
  • Versiones o releases.
  • Riesgos.
  • Cambios de código o commits.

No siempre hace falta relacionarlo todo. El nivel de trazabilidad debe ser proporcional al riesgo y tamaño del proyecto.

28.5 Trazabilidad hacia adelante y hacia atrás

Podemos pensar la trazabilidad en dos direcciones:

Dirección Pregunta Ejemplo
Hacia adelante Desde un requisito, ¿qué pruebas y defectos lo cubren? R-LOGIN-01 está cubierto por CP-LOGIN-001 y CP-LOGIN-002.
Hacia atrás Desde una prueba o defecto, ¿qué requisito lo justifica? DEF-231 afecta el requisito R-PAGO-02.

Ambas direcciones son útiles. Una ayuda a medir cobertura; la otra ayuda a entender propósito e impacto.

28.6 Matriz de trazabilidad

Una forma común de representar trazabilidad es una matriz de trazabilidad. Puede ser una tabla simple donde se relacionan requisitos con casos de prueba y defectos.

Requisito Descripción Casos de prueba Defectos Estado
R-LOGIN-01 Inicio de sesión con credenciales válidas. CP-LOGIN-001 - Cubierto y aprobado.
R-LOGIN-02 Rechazo de contraseña incorrecta. CP-LOGIN-002 DEF-238 Cubierto con defecto abierto.
R-PAGO-01 Pago aprobado. CP-PAGO-001, CP-PAGO-002 - Cubierto parcialmente.
R-REPORTE-03 Exportar reporte mensual. - - Sin cobertura.

Esta tabla permite ver rápidamente qué requisitos están cubiertos, fallidos o sin pruebas.

28.7 Trazabilidad y cobertura

La trazabilidad ayuda a medir cobertura de requisitos. Por ejemplo:

  • 20 requisitos totales.
  • 16 requisitos con casos de prueba asociados.
  • 4 requisitos sin pruebas.

Podemos decir que hay 80% de requisitos con cobertura, pero debemos analizar calidad de esa cobertura. Un requisito puede tener un caso asociado y aun así estar probado de forma insuficiente.

Trazabilidad indica relación. No garantiza profundidad ni calidad de la prueba.

28.8 Trazabilidad y análisis de impacto

Cuando cambia un requisito, la trazabilidad ayuda a identificar qué pruebas deben revisarse o repetirse.

Ejemplo:

Cambia R-PAGO-02: el pago rechazado ahora debe permitir reintento inmediato.

Con trazabilidad podemos buscar:

  • Casos de prueba asociados a R-PAGO-02.
  • Defectos abiertos relacionados.
  • Suites de regresión que incluyen esos casos.
  • Automatizaciones que deben actualizarse.
  • Documentación o criterios de aceptación afectados.

Sin trazabilidad, el equipo puede olvidar pruebas importantes después del cambio.

28.9 Trazabilidad y defectos

Relacionar defectos con requisitos o casos de prueba ayuda a entender impacto.

Ejemplo:

Defecto Descripción Requisito afectado Caso relacionado
DEF-238 Error 500 con contraseña incorrecta. R-LOGIN-02 CP-LOGIN-002
DEF-245 El total no incluye descuento premium. R-COMPRA-05 CP-COMPRA-014

Esto permite responder qué funcionalidad queda comprometida por cada defecto.

28.10 Trazabilidad y regresión

La trazabilidad ayuda a seleccionar pruebas de regresión. Si sabemos qué requisitos y casos están relacionados con un cambio, podemos elegir una regresión más inteligente.

Ejemplo: si se cambia la regla de promociones, debemos buscar:

  • Requisitos relacionados con promociones.
  • Casos de prueba de descuentos.
  • Casos de compra con y sin cupón.
  • Defectos anteriores en cálculo de totales.
  • Automatizaciones de carrito y pago.

Así evitamos elegir regresión solo por intuición.

28.11 Ejemplo completo: recuperación de contraseña

Supongamos estos requisitos:

  • R-REC-01: usuario registrado puede solicitar enlace de recuperación.
  • R-REC-02: el enlace vence a los 30 minutos.
  • R-REC-03: el enlace no puede reutilizarse.
Requisito Criterio Caso Resultado última ejecución Defecto
R-REC-01 Enviar enlace si el correo existe. CP-REC-001 Aprobado -
R-REC-02 Rechazar enlace vencido. CP-REC-002 Aprobado -
R-REC-03 Rechazar reutilización de enlace. CP-REC-003 Fallido DEF-310

Con esta tabla sabemos que la recuperación de contraseña está parcialmente cubierta, pero tiene un defecto abierto en reutilización de enlaces.

28.12 Trazabilidad en proyectos ágiles

En proyectos ágiles, la trazabilidad puede ser más liviana, pero sigue siendo útil. Puede relacionar historias de usuario, criterios de aceptación, pruebas y defectos.

Ejemplo:

HU-23 Recuperar contraseña -> CA-23.1 Enviar enlace -> CP-REC-001 -> Ejecución aprobada.

No siempre hace falta una matriz formal. A veces basta con usar enlaces en la herramienta de gestión, nombres consistentes y casos vinculados a historias.

28.13 Trazabilidad en proyectos regulados

En proyectos regulados o de alto riesgo, la trazabilidad suele ser más formal. Puede requerirse demostrar que cada requisito fue probado y que cada defecto fue gestionado.

Ejemplos de contextos donde puede ser más estricta:

  • Sistemas médicos.
  • Sistemas financieros.
  • Software para gobierno.
  • Aplicaciones con datos sensibles.
  • Sistemas sujetos a auditoría.

En estos casos, la trazabilidad ayuda a generar evidencia verificable del proceso de calidad.

28.14 Herramientas para trazabilidad

La trazabilidad puede gestionarse con distintas herramientas:

  • Planillas.
  • Herramientas de gestión de pruebas.
  • Sistemas de seguimiento de issues.
  • Repositorios de código.
  • Herramientas de gestión ágil.
  • Documentación enlazada.

La herramienta no es lo más importante. Lo importante es que las relaciones sean claras, mantenibles y consultables.

28.15 Nombres e identificadores

La trazabilidad mejora cuando usamos identificadores consistentes.

Ejemplos:

  • R-LOGIN-01 para requisito.
  • CA-LOGIN-01 para criterio de aceptación.
  • CP-LOGIN-001 para caso de prueba.
  • DEF-238 para defecto.
  • HU-23 para historia de usuario.

Los identificadores permiten referenciar elementos sin depender de títulos largos o ambiguos.

28.16 Mantenimiento de trazabilidad

La trazabilidad debe mantenerse. Si los requisitos cambian y las relaciones no se actualizan, la información pierde confianza.

Situaciones que requieren actualización:

  • Se agrega un requisito nuevo.
  • Se modifica un criterio de aceptación.
  • Se elimina una funcionalidad.
  • Se crea un caso de prueba nuevo.
  • Un caso queda obsoleto.
  • Se registra un defecto relacionado.
  • Se cambia una suite de regresión.

La trazabilidad desactualizada puede ser peor que no tener trazabilidad, porque genera falsa confianza.

28.17 Errores comunes

Al trabajar con trazabilidad, algunos errores frecuentes son:

  • Crear matrices enormes que nadie mantiene.
  • Relacionar elementos de forma superficial solo para completar una tabla.
  • No actualizar relaciones cuando cambian requisitos.
  • Confundir "tener un caso asociado" con "estar bien probado".
  • No vincular defectos con requisitos o casos afectados.
  • No usar identificadores consistentes.
  • Depender de memoria o conversaciones informales para saber qué cubre cada prueba.

La trazabilidad debe ser útil y mantenible, no una carga artificial.

28.18 Buenas prácticas

Para aplicar trazabilidad de forma efectiva conviene:

  • Usar identificadores claros para requisitos, casos y defectos.
  • Relacionar cada caso importante con un requisito, criterio o riesgo.
  • Vincular defectos con casos o requisitos afectados.
  • Mantener la matriz o herramienta actualizada.
  • Usar trazabilidad para analizar impacto de cambios.
  • Revisar requisitos sin cobertura.
  • No crear más relaciones de las que el equipo pueda mantener.
  • Combinar trazabilidad con análisis de calidad real de las pruebas.

28.19 Qué debes recordar de este tema

  • La trazabilidad conecta requisitos, pruebas, defectos y versiones.
  • Ayuda a saber qué se probó y qué quedó sin cubrir.
  • Permite analizar impacto cuando cambia un requisito.
  • Relacionar defectos con requisitos ayuda a entender impacto funcional.
  • Una matriz de trazabilidad puede ser simple y muy útil.
  • Tener relación no garantiza buena calidad de prueba.
  • La trazabilidad debe mantenerse actualizada.
  • El nivel de formalidad depende del riesgo y contexto del proyecto.

28.20 Conclusión

La trazabilidad permite conectar lo que se pidió, lo que se probó y lo que falló. Ayuda a medir cobertura, analizar impacto, seleccionar regresión y comunicar riesgos con mayor claridad.

Una trazabilidad útil no necesita ser compleja, pero sí debe mantenerse. Su valor aparece cuando permite responder preguntas importantes de forma rápida y confiable.

En el próximo tema estudiaremos riesgos comunes al probar software, para identificar problemas frecuentes que pueden afectar el proceso de testing y la calidad de los resultados.