Qué es un test E2E y cómo funciona: guía práctica para principiantes

Los tests E2E fueron de las primeras cosas que aprendí en mi formación como QA. Y aunque al principio el concepto puede sonar técnico, en realidad es uno de los tipos de pruebas más intuitivos que existen — porque simulan exactamente lo que haría un usuario real.

En este artículo te explico qué son, cómo funcionan y por qué son tan importantes.


Qué significa E2E

E2E son las siglas de End-to-End, que en español significa de extremo a extremo. Un test E2E verifica un flujo completo de una aplicación desde el principio hasta el final, tal y como lo experimentaría un usuario real.

No prueba una función aislada ni un componente específico. Prueba todo el camino que recorre el usuario para completar una tarea, pasando por todas las capas del sistema: interfaz, lógica de negocio, base de datos y APIs.


Un ejemplo concreto

Imagina una tienda online. Un test E2E del proceso de compra haría exactamente esto:

  1. Abrir el navegador y entrar en la web
  2. Buscar un producto
  3. Añadirlo al carrito
  4. Ir al carrito y verificar que el producto está ahí
  5. Introducir los datos de envío
  6. Completar el pago
  7. Verificar que aparece la confirmación del pedido

Todo ese flujo, automatizado, ejecutándose en segundos cada vez que hay un cambio en el código. Si algo falla en cualquier paso, el test lo detecta antes de que llegue a los usuarios reales.


Por qué son importantes los tests E2E

Los tests unitarios verifican que una función concreta funciona correctamente. Los tests de integración verifican que dos componentes se comunican bien. Pero ninguno de los dos garantiza que el flujo completo desde el punto de vista del usuario funciona.

Eso es exactamente lo que hacen los tests E2E. Son la red de seguridad que garantiza que todo el sistema funciona de principio a fin como se espera.

Sin tests E2E, un equipo puede tener todos sus tests unitarios en verde y aun así tener un proceso de pago roto en producción.


La pirámide de testing y el lugar de los E2E

En el mundo del testing existe un concepto llamado pirámide de testing que describe cuántos tests de cada tipo deberías tener en tu proyecto.

En la base están los tests unitarios — muchos, rápidos y baratos. En el medio están los tests de integración. En la cima están los tests E2E — pocos, más lentos y más costosos de mantener, pero que dan la mayor confianza sobre el funcionamiento real del sistema.

La recomendación general es tener muchos tests unitarios, algunos de integración y los tests E2E justos y necesarios para cubrir los flujos más críticos.


Cómo funciona un test E2E con Playwright

Playwright es la herramienta más popular actualmente para escribir tests E2E. Controla un navegador real de forma programática y simula exactamente lo que haría un usuario.

Un test E2E básico con Playwright en Python tiene esta estructura:

python

from playwright.sync_api import Page

def test_login_exitoso(page: Page):
    # 1. Abrir la página
    page.goto("https://miweb.com/login")
    
    # 2. Rellenar el formulario
    page.fill("#email", "usuario@test.com")
    page.fill("#password", "password123")
    
    # 3. Hacer clic en el botón
    page.click("#btn-login")
    
    # 4. Verificar que el login fue correcto
    assert "dashboard" in page.url
```

Playwright abre el navegador y ejecuta cada paso

Playwright abre el navegador, ejecuta cada paso y verifica que el resultado es el esperado. Si algo falla, el test falla y el equipo lo sabe antes de que llegue a producción.

Si quieres aprender a instalar Playwright y escribir tus primeros tests puedes leer cómo instalar Playwright en Windows paso a paso.


Tests E2E y CI/CD

Una de las grandes ventajas de los tests E2E automatizados es que se pueden integrar en un pipeline de CI/CD para que se ejecuten automáticamente en cada push al repositorio.

Así, cada vez que un desarrollador hace un cambio en el código, los tests E2E verifican que los flujos críticos siguen funcionando antes de que ese cambio llegue a producción.

Puedes ver cómo configurarlo en GitHub Actions para QA.


Cuántos tests E2E necesita un proyecto

No hay una respuesta única, pero la regla general es cubrir los flujos más críticos del negocio. En una tienda online serían: registro, login, búsqueda de productos, proceso de compra y confirmación del pedido. En una aplicación bancaria: login, consulta de saldo y transferencias.

Más allá de esos flujos críticos, el coste de mantener los tests E2E puede superar el beneficio. Para el resto de funcionalidades, los tests unitarios y de integración son más eficientes.


Ventajas e inconvenientes de los tests E2E

Dan la mayor confianza sobre el funcionamiento real del sistema, detectan problemas que los tests unitarios no pueden ver y simulan exactamente la experiencia del usuario. Sin embargo, son más lentos, más difíciles de mantener cuando la interfaz cambia y pueden ser inestables si no están bien escritos.

Por eso la clave está en tener los tests E2E justos y necesarios, bien escritos y enfocados en los flujos más críticos.


Tests E2E en proyectos reales

En mis proyectos de GitHub puedes ver ejemplos reales de tests E2E con Playwright y Python. El repositorio qa-suite-saucedemo tiene una suite completa de 20 tests E2E organizados con Page Object Model y CI/CD con GitHub Actions.

Si quieres saber más sobre cómo organizar los tests E2E de forma profesional puedes leer qué es el Page Object Model. Y si necesitas implementar tests E2E en tu proyecto puedes ver mis servicios en fatimaqa.com.

Scroll al inicio