Saltar al contenido

Testing de Sistema

Evaluar el sistema completo de punta a punta en lugar de cada componente por separado, y la diferencia real con testing de integración.

2 min. de lectura

Qué es

El testing de sistema evalúa el sistema completo desde una perspectiva funcional. Acá dejamos de pensar en componentes individuales y empezamos a evaluar un comportamiento de punta a punta.

1. Usuario busca disponibilidad  (Availability Service)
2. Reserva creada                (Reservation API)
3. Seña cobrada                  (Payment Service)
4. Mesa bloqueada                (Table Service)
5. Confirmación enviada          (Notification Service)

El objetivo no es verificar cada componente por separado, sino que el comportamiento completo funcione de punta a punta. Es comprobar que el sistema satisface los requisitos funcionales como un todo, no que cada pieza por separado esté bien construida.

System Test vs. Integration Test

Esta diferencia genera confusión seguido, así que vale la pena dejarla explícita:

Foco
Integration TestLa interacción entre componentes (ReservationService → PostgreSQL)
System TestUn comportamiento completo del sistema (Usuario → API → múltiples componentes → resultado)

Un system test puede involucrar múltiples integration tests, pero su objetivo es distinto: no valida una interacción puntual, sino el resultado final que le llega al usuario.

El costo de subir de nivel

A medida que aumenta el alcance —de unit a integration a system— normalmente aumentan el tiempo de ejecución, la complejidad de configuración, los requisitos de infraestructura y el costo de debugging. Por eso no conviene convertir toda la test suite en tests end-to-end: es exactamente la razón de ser de la test pyramid que vimos en la introducción de este tema.

Qué NO detecta

Un system test puede confirmar que el flujo de cancelación de ReservaResto funciona exactamente como fue codeado: la seña se reintegra según la regla implementada, la mesa se libera, se notifica al comensal. Lo que no puede confirmar es que esa regla implementada sea la que el negocio realmente necesita. Ahí es donde entra UAT.

Te sirvió, compartilo

// ¿te sirvió?
// compartilo