Skip to content
IRC-CodingIRC-Coding
TestpyramideUnit TestsIntegration TestsE2E TestsSoftware TestingEstrategia de TestsAutomatización de Tests

Testpyramide: Unit, Integration y E2E Tests

Testpyramide explicada: Unit Tests, Integration Tests y E2E Tests en la proporción correcta. Guía práctica con ejemplos.

S

schutzgeist

3 min read
Testpyramide: Unit, Integration y E2E Tests

Pirámide de pruebas: Unit, Integration y E2E

La pirámide de pruebas es un modelo simple pero poderoso para planificar la distribución correcta de pruebas automatizadas. Muestra qué tipos de pruebas necesitan ser muchas, rápidas y económicas en la base, y cuáles son más útiles en menor cantidad pero con mayor cobertura de casos reales en la cúspide.

En resumen

  • La pirámide de pruebas consta de tres niveles: Unit Tests, Integration Tests y E2E Tests.
  • Cuanto más bajo, más pruebas, retroalimentación más rápida y costos menores.
  • Cuanto más alto, menos pruebas, pero mayor cobertura de flujos de usuario reales.
  • Una mezcla equilibrada reduce costos e incrementa la calidad simultáneamente.

Descripción técnica

La pirámide de pruebas es un modelo de referencia para la automatización de pruebas. Recomienda escribir la mayoría de las pruebas como Unit Tests, que verifican componentes individuales de forma aislada. Encima están los Integration Tests, que prueban cómo trabajan juntos varios componentes o interfaces. En la cúspide se encuentran los E2E Tests, que simulan flujos completos del usuario en todo el sistema.

Los tres niveles

Unit Tests (Base)

Los Unit Tests verifican la unidad más pequeña comprobable, típicamente una función o una clase.

  • Ventajas: Rápidos, aislados, fáciles de mantener, proporcionan retroalimentación inmediata.
  • Herramientas: JUnit, NUnit, pytest, Jest, Mocha.
  • Objetivo: Cobertura amplia de la lógica de negocio, detectar errores temprano.
  • Costos: Bajos, ya que no requieren dependencias externas.

Integration Tests (Medio)

Los Integration Tests verifican cómo múltiples componentes o sistemas colaboran entre sí.

  • Ventajas: Detectan errores de interfaz que los Unit Tests no encuentran.
  • Herramientas: Testcontainers, Spring Boot Test, Supertest, REST Assured.
  • Objetivo: Integrar correctamente bases de datos, APIs, mensajería y servicios externos.
  • Costos: Moderados, ya que requieren entornos de prueba y datos.

E2E Tests (Cúspide)

Los E2E Tests simulan flujos reales del usuario en todo el sistema completo.

  • Ventajas: Alta relevancia sobre aplicabilidad real y experiencia del usuario.
  • Herramientas: Playwright, Cypress, Selenium, Robot Framework.
  • Objetivo: Validar procesos críticos del negocio desde el login hasta la compra.
  • Costos: Altos, ya que pueden ser lentos, inestables y requieren mucho mantenimiento.

Ejemplo práctico: Pirámide de pruebas para un sistema de e-commerce

Número de pruebas:
- Unit Tests: 500 (70 por ciento)
- Integration Tests: 150 (25 por ciento)
- E2E Tests: 50 (5 por ciento)

Ejemplo de un proceso de pedido:

Unit Tests:
- Cálculo de precio con descuento
- Validación de dirección de correo electrónico
- Transiciones de estado del pedido

Integration Tests:
- Guardar el pedido en la base de datos
- Envío del correo de confirmación
- Consulta del inventario a través de la API

E2E Tests:
- Cliente agrega artículos al carrito y completa la compra
- Admin cambia el estado del pedido y el cliente ve la actualización

Ventajas y desventajas

Ventajas

  • Retroalimentación rápida: Los Unit Tests se ejecutan en segundos y muestran errores inmediatamente.
  • Costos menores: Encontrar errores temprano es significativamente más económico.
  • Base estable: Una base amplia de Unit Tests protege contra regresiones.
  • Estrategia clara: Los equipos comparten una visión común sobre la proporción de pruebas.

Desventajas

  • Balance incorrecto: Demasiados E2E Tests llevan a tiempos de ejecución largos e pipelines inestables.
  • Simplificación: La pirámide es un modelo, no la verdad para cada proyecto.
  • Negligencia: Los Unit Tests aislados no cubren problemas de interfaz.
  • Esfuerzo de mantenimiento: Una base de pruebas grande necesita ser cuidada.

Puntos clave para evaluaciones

  • Estructura de la pirámide de pruebas con Unit, Integration y E2E Tests.
  • Características de cada nivel: velocidad, costos, cobertura.
  • Distribución ideal de pruebas en proporción.
  • Diferencia entre pruebas aisladas e integradas.
  • Herramientas importantes por nivel.

Preguntas típicas de evaluación (con respuesta breve)

  1. ¿De cuáles tres niveles consta la pirámide de pruebas? Unit Tests, Integration Tests, E2E Tests.

  2. ¿Qué nivel tiene más pruebas? La base con Unit Tests.

  3. ¿Por qué los E2E Tests son costosos? Son lentos, requieren un entorno completo y son más difíciles de mantener.

  4. ¿Qué verifican los Integration Tests? La colaboración entre múltiples componentes o sistemas externos.

  5. ¿Cuál es una desventaja de la pirámide de pruebas? Es simplificada y no se ajusta uno a uno en cada proyecto.

Continúa en la ruta de aprendizaje de Software Testing

El siguiente artículo en la ruta de aprendizaje de Software Testing trata sobre Fundamentos de Unit Tests — los principios básicos de Unit Tests con ejemplos y mejores prácticas.

Fuentes principales

  1. https://martinfowler.com/bliki/TestPyramid.html
  2. https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
  3. https://en.wikipedia.org/wiki/Test_automation
Volver al blog
Share:

Entradas relacionadas