27. Trazabilidad entre requisitos, interfaces y pruebas de integración

27.1 Introducción

En un proyecto real, una prueba de integración no debería existir como un elemento aislado. Debe poder relacionarse con un requisito, una regla de negocio, una interfaz, un contrato, un riesgo o un defecto conocido.

La trazabilidad permite responder por qué existe una prueba, qué cubre, qué componente protege y qué impacto tendría si falla.

En este tema veremos cómo relacionar requisitos, interfaces y pruebas de integración para mantener claridad y evitar suites difíciles de entender.

27.2 Qué es trazabilidad

La trazabilidad es la capacidad de seguir la relación entre distintos elementos del desarrollo y testing. En integración, nos interesa conectar pruebas con aquello que justificó su existencia.

Puede relacionar:

  • Requisitos funcionales.
  • Reglas de negocio.
  • Interfaces entre componentes.
  • Contratos de APIs o eventos.
  • Casos de prueba.
  • Defectos reportados.
  • Evidencias de ejecución.
Una prueba trazable no solo dice qué ejecuta. También permite entender por qué importa.

27.3 Por qué importa en pruebas de integración

Las pruebas de integración suelen cubrir colaboraciones importantes. Si no sabemos qué requisito o contrato cubre cada prueba, la suite se vuelve difícil de mantener.

La trazabilidad ayuda a:

  • Detectar requisitos sin pruebas de integración.
  • Identificar pruebas duplicadas o sin propósito claro.
  • Evaluar impacto cuando cambia una interfaz.
  • Priorizar pruebas según riesgo de negocio.
  • Explicar por qué una prueba fallida es importante.
  • Relacionar defectos con escenarios faltantes.

27.4 Trazabilidad desde requisitos

Un requisito describe una necesidad o comportamiento esperado. Desde un requisito podemos derivar integraciones que deben verificarse.

Ejemplo de requisito:

El sistema debe permitir confirmar una compra si el cliente está activo, hay stock suficiente y el pago es aprobado.

De este requisito pueden surgir pruebas de integración para:

  • Consultar cliente activo.
  • Verificar stock.
  • Registrar pago aprobado.
  • Guardar orden confirmada.
  • Publicar evento de compra confirmada.

27.5 Trazabilidad desde interfaces

Una interfaz define cómo se comunican componentes. Desde una interfaz podemos identificar contratos que deben probarse.

Ejemplos:

  • Endpoint para crear pedidos.
  • Método de servicio para confirmar pago.
  • Evento de orden creada.
  • Archivo CSV de importación.
  • Consulta de repositorio para pedidos pendientes.

Una prueba trazable indica qué interfaz verifica y qué aspecto del contrato está cubriendo.

27.6 Trazabilidad desde riesgos

Algunas pruebas existen porque cubren un riesgo importante, aunque el requisito sea amplio. Por ejemplo, riesgo de duplicar pagos, dejar stock negativo o procesar dos veces un evento.

Riesgos que pueden generar pruebas de integración:

  • Datos inconsistentes después de un error.
  • Contrato externo cambiado.
  • Timeout de dependencia crítica.
  • Evento duplicado.
  • Archivo de importación con formato inválido.
  • Configuración incorrecta de ambiente.

Relacionar pruebas con riesgos ayuda a justificar por qué ciertos escenarios merecen prioridad.

27.7 Trazabilidad desde defectos

Cuando se encuentra un defecto de integración, conviene preguntarse si debe quedar una prueba que evite su repetición.

Ejemplo:

  • Defecto: el sistema descontaba stock aunque el pago fuera rechazado.
  • Prueba agregada: pago rechazado no debe descontar stock ni confirmar orden.
  • Requisito relacionado: confirmar compra solo con pago aprobado.
  • Componentes relacionados: compras, pagos, stock y base de datos.

Esta trazabilidad permite saber que la prueba protege una falla real ya observada.

27.8 Matriz de trazabilidad

Una matriz de trazabilidad es una tabla que relaciona requisitos, interfaces, riesgos y pruebas. No tiene que ser compleja para ser útil.

Requisito o riesgo Interfaz Prueba de integración Resultado esperado
Compra con pago aprobado. Servicio de compras y pagos. Confirmar compra aprobada. Orden pagada y stock descontado.
Pago rechazado no confirma compra. Servicio de pagos. Pago rechazado no descuenta stock. Orden no confirmada y stock intacto.
Notificar orden creada. Evento orden_creada. Orden creada publica evento válido. Evento con campos obligatorios.

27.9 Trazabilidad liviana

No siempre hace falta una matriz formal. En equipos pequeños, la trazabilidad puede mantenerse de forma liviana.

Opciones simples:

  • Nombres de pruebas claros.
  • Comentarios breves indicando requisito o riesgo.
  • Identificadores de historias o tickets en la descripción.
  • Documentación mínima en una tabla compartida.
  • Relación entre defecto y prueba agregada.

La clave es que la información sea útil y se mantenga actualizada. Una documentación pesada y abandonada pierde valor rápidamente.

27.10 Impacto de cambios

Cuando cambia una interfaz, la trazabilidad permite identificar qué pruebas revisar. Esto es muy importante en integración, porque un cambio pequeño puede afectar varios consumidores.

Si cambia un evento, podemos buscar:

  • Qué consumidores usan ese evento.
  • Qué pruebas verifican su estructura.
  • Qué requisitos dependen de ese flujo.
  • Qué datos deben actualizarse.
  • Qué pruebas de regresión ejecutar.

Sin trazabilidad, el equipo puede descubrir impactos recién cuando una prueba amplia falla o cuando aparece un defecto.

27.11 Cobertura de integración

La trazabilidad ayuda a entender cobertura, pero cobertura no significa cantidad de pruebas. Significa qué riesgos, requisitos e interfaces están protegidos.

Preguntas útiles:

  • ¿Qué requisitos críticos tienen pruebas de integración?
  • ¿Qué interfaces no tienen ninguna prueba?
  • ¿Qué dependencias externas están cubiertas solo con simulaciones?
  • ¿Qué defectos recurrentes no tienen prueba de regresión?
  • ¿Qué pruebas ya no están asociadas a un riesgo actual?

27.12 Trazabilidad y mantenimiento

Una suite de pruebas crece con el tiempo. Sin trazabilidad, pueden acumularse pruebas que nadie entiende o que ya no cubren un comportamiento relevante.

La trazabilidad ayuda a decidir:

  • Qué pruebas actualizar cuando cambia un contrato.
  • Qué pruebas eliminar si un requisito desaparece.
  • Qué pruebas mover a otro nivel si están mal ubicadas.
  • Qué pruebas priorizar cuando el tiempo de ejecución es alto.
  • Qué escenarios faltan para cubrir un riesgo nuevo.

27.13 Ejemplo: importación de clientes

Supongamos una funcionalidad que importa clientes desde un archivo CSV.

Elemento Relación trazable
Requisito El sistema debe importar clientes desde un archivo CSV válido.
Interfaz Archivo CSV con columnas nombre, email y documento.
Prueba positiva CSV válido crea clientes en la base de datos.
Prueba negativa CSV sin columna email rechaza importación.
Riesgo Crear clientes incompletos o duplicados.

27.14 Ejemplo: evento de orden creada

Para un evento de orden creada, la trazabilidad puede mostrar:

  • Requisito: notificar al cliente cuando una orden se crea.
  • Interfaz: evento orden_creada.
  • Contrato: debe incluir ordenId, clienteId, email y total.
  • Prueba de productor: al crear orden se publica evento con esos campos.
  • Prueba de consumidor: notificaciones procesa evento y crea mensaje pendiente.

Si el contrato del evento cambia, sabemos qué pruebas y consumidores revisar.

27.15 Errores comunes

Al trabajar con trazabilidad, suelen aparecer errores como:

  • Crear pruebas sin relación clara con requisitos o riesgos.
  • Mantener matrices de trazabilidad desactualizadas.
  • Confundir trazabilidad con documentación excesiva.
  • No vincular defectos corregidos con pruebas nuevas.
  • No revisar pruebas cuando cambia una interfaz.
  • Medir solo cantidad de pruebas, no cobertura de riesgos.
  • Usar nombres de pruebas demasiado genéricos.

27.16 Lista de verificación

Para revisar trazabilidad en pruebas de integración, podemos preguntar:

  • ¿Cada prueba importante tiene un requisito, interfaz o riesgo asociado?
  • ¿Los nombres de pruebas explican qué colaboración verifican?
  • ¿Los defectos de integración corregidos tienen prueba de regresión?
  • ¿Sabemos qué pruebas revisar si cambia una interfaz?
  • ¿Las pruebas críticas están asociadas a funcionalidades críticas?
  • ¿Hay pruebas que ya no tienen propósito claro?
  • ¿La trazabilidad se mantiene de una forma sostenible para el equipo?

27.17 Qué debes recordar de este tema

  • La trazabilidad relaciona pruebas con requisitos, interfaces, riesgos y defectos.
  • Ayuda a entender por qué existe una prueba y qué cubre.
  • Permite analizar impacto cuando cambia un contrato o componente.
  • No siempre requiere documentación pesada; puede ser liviana y práctica.
  • La cobertura debe evaluarse por riesgo cubierto, no solo por cantidad de pruebas.
  • Una suite trazable es más fácil de mantener y priorizar.

27.18 Conclusión

La trazabilidad convierte una suite de pruebas en una fuente de información útil. Permite saber qué requisitos, interfaces y riesgos están protegidos, y qué impacto tiene una falla o un cambio.

En pruebas de integración, donde varias partes colaboran, esta claridad es especialmente valiosa para mantener el sistema bajo control a medida que evoluciona.

En el próximo tema veremos diagnóstico de fallas de integración.