/e2e-testing
Configurar y escribir tests end-to-end con Playwright o Cypress. También: validar flujos de usuario completos, testing de integración en navegador, tests E2E en CI, tests de aceptación, smoke tests en producción.
$ npx -y skills add 686f6c61/alfred-dev --skill e2e-testing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/e2e-testing
Context preview
The summary Claude sees to decide when to auto-load this skill.
Configurar y escribir tests end-to-end con Playwright o Cypress. También: validar flujos de usuario completos, testing de integración en navegador, tests E2E en CI, tests de aceptación, smoke tests en producción.
SKILL.md
e2e-testing.SKILL.mdname: e2e-testing
description: "Configurar y escribir tests end-to-end con Playwright o Cypress. También: validar flujos de usuario completos, testing de integración en navegador, tests E2E en CI, tests de aceptación, smoke tests en producción."
Testing end-to-end
Resumen
Los tests end-to-end (E2E) validan flujos completos desde la perspectiva del usuario, interactuando con la aplicación tal y como lo haría una persona real: navegando por la interfaz, rellenando formularios, haciendo clic en botones y verificando que el resultado es el esperado. Son el último eslabón de la pirámide de testing y complementan a los tests unitarios y de integración.
Su valor principal reside en detectar problemas de integración entre componentes que los tests unitarios no pueden cubrir: una API que devuelve datos en un formato que el frontend no espera, un flujo de autenticación que falla cuando intervienen cookies y redirecciones, o un proceso de checkout que se rompe al combinar descuentos con impuestos. Son más lentos y más frágiles que los tests unitarios, por lo que deben reservarse para los flujos más críticos del sistema.
Proceso
Paso 1: elegir la herramienta
Seleccionar la herramienta de testing E2E según el stack del proyecto. Consultar la configuración de Alfred para detectar el stack automáticamente.
| Herramienta | Cuándo elegirla | |-------------|-----------------| | **Playwright** | Opción recomendada por defecto. Soporte multi-navegador (Chromium, Firefox, WebKit), API moderna, buena integración con CI. | | **Cypress** | Alternativa válida si el equipo ya lo usa o si el proyecto es exclusivamente web con un solo navegador objetivo. |
Si no hay preferencia previa, usar Playwright.
Paso 2: configurar el entorno
1. Instalar la herramienta y sus dependencias (navegadores incluidos). 2. Crear la configuración base (fichero de config, directorios de tests y fixtures). 3. Configurar el entorno de test: URL base, credenciales de test, datos de seed. 4. Verificar que la aplicación arranca correctamente en el entorno de test.
Paso 3: identificar los flujos críticos
No todos los flujos necesitan cobertura E2E. Priorizar los que cumplen al menos uno de estos criterios:
- **Alto impacto de fallo:** si se rompe, el usuario no puede completar su objetivo (registro, login, compra, envío de formulario principal).
- **Cruza múltiples componentes:** frontend, backend, base de datos, servicios externos.
- **Historial de bugs:** flujos donde se han detectado regresiones en el pasado.
- **Requisito de negocio:** flujos que el producto owner considera críticos.
Ejemplos típicos: registro de usuario, login/logout, checkout o proceso de pago, creación y edición del recurso principal, flujos de permisos y roles.
Paso 4: escribir los tests
Seguir el patrón Arrange-Act-Assert en cada test:
1. **Arrange:** preparar el estado inicial (datos de seed, usuario autenticado, página cargada). 2. **Act:** ejecutar las acciones del usuario (navegar, rellenar, hacer clic). 3. **Assert:** verificar el resultado esperado (elemento visible, datos guardados, redirección correcta).
Principios de escritura:
- Un test, un flujo. No encadenar múltiples flujos en un solo test.
- Usar selectores estables (data-testid, roles ARIA), no clases CSS ni XPath frágiles.
- No depender del orden de ejecución. Cada test debe poder ejecutarse de forma independiente.
- Preparar y limpiar los datos de cada test (fixtures, API calls de setup/teardown).
Paso 5: configurar en CI
Integrar los tests E2E en el pipeline de CI para que se ejecuten automáticamente:
- Configurar el job en GitHub Actions (u otro CI) con los navegadores necesarios.
- Ejecutar los tests contra un entorno de staging o un servidor levantado en el propio CI.
- Configurar reintentos automáticos (1-2 reintentos) para mitigar tests inestables mientras se corrigen.
- Publicar los artefactos de fallo (screenshots, vídeos, traces) para facilitar la depuración.
Paso 6: ejecutar y verificar
- Ejecutar la suite completa en local antes de integrar en CI.
- Verificar que todos los tests pasan de forma consistente (ejecutar al menos 3 veces para detectar flakiness).
- Revisar los tiempos de ejecución: una suite E2E que tarda más de 10 minutos necesita optimización o paralelización.
Criterios de éxito
- Los flujos críticos del usuario están cubiertos por al menos un test E2E.
- Los tests son estables: pasan de forma consistente en múltiples ejecuciones consecutivas.
- Los tests corren en CI automáticamente en cada push o pull request.
- Los tests son independientes entre sí: se pueden ejecutar en cualquier orden sin afectarse.
- Los artefactos de fallo (screenshots, vídeos) están disponibles para depuración.
- El tiempo total de la suite es razonable (menos de 10 minutos para proyectos medianos).
Qué NO hacer
- No intentar cubrir todo con E2E. Reservar los tests E2E para flujos críticos que cruzan múltiples componentes; el resto se cubre mejor con tests unitarios y de integración, que son más rápidos y menos frágiles.
- No depender de datos de producción en los tests. Usar datos de seed controlados que el propio test prepara y limpia.
- No usar sleeps fijos (`sleep(3000)`) para esperar a que algo ocurra. Usar condiciones de espera explícitas (`waitForSelector`, `waitForResponse`, `waitForURL`) que resuelven en cuanto la condición se cumple.
- No hacer tests E2E para lógica de negocio pura. Si una función calcula un descuento, eso es un test unitario. El test E2E verifica que el descuento aparece correctamente en la interfaz.
- No ignorar los tests inestables (flaky). Un test que falla intermitentemente erosiona la confianza en la suite y hace que el equipo deje de prestar atención a los fallos reales. Corregirlos o eliminarlos.
- No ejecutar los tests solo en un navegador si la aplicación soporta varios. Al menos cubrir Chromium y Firefox.
Read more
name: e2e-testing description: "Configurar y escribir tests end-to-end con Playwright o Cypress. También: validar flujos de usuario completos, testing de integración en navegador, tests E2E en CI, tests de aceptación, smoke tests en producción."
Testing end-to-end
Resumen
Los tests end-to-end (E2E) validan flujos completos desde la perspectiva del usuario, interactuando con la aplicación tal y como lo haría una persona real: navegando por la interfaz, rellenando formularios, haciendo clic en botones y verificando que el resultado es el esperado. Son el último eslabón de la pirámide de testing y complementan a los tests unitarios y de integración.
Su valor principal reside en detectar problemas de integración entre componentes que los tests unitarios no pueden cubrir: una API que devuelve datos en un formato que el frontend no espera, un flujo de autenticación que falla cuando intervienen cookies y redirecciones, o un proceso de checkout que se rompe al combinar descuentos con impuestos. Son más lentos y más frágiles que los tests unitarios, por lo que deben reservarse para los flujos más críticos del sistema.
Proceso
Paso 1: elegir la herramienta
Seleccionar la herramienta de testing E2E según el stack del proyecto. Consultar la configuración de Alfred para detectar el stack automáticamente.
| Herramienta | Cuándo elegirla | |-------------|-----------------| | **Playwright** | Opción recomendada por defecto. Soporte multi-navegador (Chromium, Firefox, WebKit), API moderna, buena integración con CI. | | **Cypress** | Alternativa válida si el equipo ya lo usa o si el proyecto es exclusivamente web con un solo navegador objetivo. |
Si no hay preferencia previa, usar Playwright.
Paso 2: configurar el entorno
1. Instalar la herramienta y sus dependencias (navegadores incluidos). 2. Crear la configuración base (fichero de config, directorios de tests y fixtures). 3. Configurar el entorno de test: URL base, credenciales de test, datos de seed. 4. Verificar que la aplicación arranca correctamente en el entorno de test.
Paso 3: identificar los flujos críticos
No todos los flujos necesitan cobertura E2E. Priorizar los que cumplen al menos uno de estos criterios:
- **Alto impacto de fallo:** si se rompe, el usuario no puede completar su objetivo (registro, login, compra, envío de formulario principal).
- **Cruza múltiples componentes:** frontend, backend, base de datos, servicios externos.
- **Historial de bugs:** flujos donde se han detectado regresiones en el pasado.
- **Requisito de negocio:** flujos que el producto owner considera críticos.
Ejemplos típicos: registro de usuario, login/logout, checkout o proceso de pago, creación y edición del recurso principal, flujos de permisos y roles.
Paso 4: escribir los tests
Seguir el patrón Arrange-Act-Assert en cada test:
1. **Arrange:** preparar el estado inicial (datos de seed, usuario autenticado, página cargada). 2. **Act:** ejecutar las acciones del usuario (navegar, rellenar, hacer clic). 3. **Assert:** verificar el resultado esperado (elemento visible, datos guardados, redirección correcta).
Principios de escritura:
- Un test, un flujo. No encadenar múltiples flujos en un solo test.
- Usar selectores estables (data-testid, roles ARIA), no clases CSS ni XPath frágiles.
- No depender del orden de ejecución. Cada test debe poder ejecutarse de forma independiente.
- Preparar y limpiar los datos de cada test (fixtures, API calls de setup/teardown).
Paso 5: configurar en CI
Integrar los tests E2E en el pipeline de CI para que se ejecuten automáticamente:
- Configurar el job en GitHub Actions (u otro CI) con los navegadores necesarios.
- Ejecutar los tests contra un entorno de staging o un servidor levantado en el propio CI.
- Configurar reintentos automáticos (1-2 reintentos) para mitigar tests inestables mientras se corrigen.
- Publicar los artefactos de fallo (screenshots, vídeos, traces) para facilitar la depuración.
Paso 6: ejecutar y verificar
- Ejecutar la suite completa en local antes de integrar en CI.
- Verificar que todos los tests pasan de forma consistente (ejecutar al menos 3 veces para detectar flakiness).
- Revisar los tiempos de ejecución: una suite E2E que tarda más de 10 minutos necesita optimización o paralelización.
Criterios de éxito
- Los flujos críticos del usuario están cubiertos por al menos un test E2E.
- Los tests son estables: pasan de forma consistente en múltiples ejecuciones consecutivas.
- Los tests corren en CI automáticamente en cada push o pull request.
- Los tests son independientes entre sí: se pueden ejecutar en cualquier orden sin afectarse.
- Los artefactos de fallo (screenshots, vídeos) están disponibles para depuración.
- El tiempo total de la suite es razonable (menos de 10 minutos para proyectos medianos).
Qué NO hacer
- No intentar cubrir todo con E2E. Reservar los tests E2E para flujos críticos que cruzan múltiples componentes; el resto se cubre mejor con tests unitarios y de integración, que son más rápidos y menos frágiles.
- No depender de datos de producción en los tests. Usar datos de seed controlados que el propio test prepara y limpia.
- No usar sleeps fijos (`sleep(3000)`) para esperar a que algo ocurra. Usar condiciones de espera explícitas (`waitForSelector`, `waitForResponse`, `waitForURL`) que resuelven en cuanto la condición se cumple.
- No hacer tests E2E para lógica de negocio pura. Si una función calcula un descuento, eso es un test unitario. El test E2E verifica que el descuento aparece correctamente en la interfaz.
- No ignorar los tests inestables (flaky). Un test que falla intermitentemente erosiona la confianza en la suite y hace que el equipo deje de prestar atención a los fallos reales. Corregirlos o eliminarlos.
- No ejecutar los tests solo en un navegador si la aplicación soporta varios. Al menos cubrir Chromium y Firefox.
Plugin de Claude Code: 18 agentes especializados, 60 skills, 25 comandos, 13 hooks, memoria persistente, Memory UI local, quality gates, evidence guard, continuidad operativa y modo autopilot.
Repo: 686f6c61/alfred-dev
Other skills on alfred-dev.
- /alfred
Alias global /alfred para abrir el asistente contextual de Alfred Dev sin escribir el namespace completo. Activar solo cuando el usuario invoque explicitamente /alfred.
Open skill - /choose-stack
Usar para evaluar y elegir tecnologías con matriz de decisión ponderada. Activar cuando el usuario quiera elegir tecnología, comparar frameworks, decidir entre alternativas técnicas, construir una matriz de decisión, evaluar stack, seleccionar base de datos, elegir lenguaje o
Open skill - /design-system
Usar para diseñar la arquitectura de un sistema con diagramas y contratos. Activar cuando el usuario quiera diseñar arquitectura, definir componentes del sistema, crear un diagrama de flujo, establecer contratos entre módulos, planificar la estructura del proyecto o decidir cómo
Open skill - /evaluate-dependencies
Usar para evaluar si una dependencia merece la pena antes de añadirla. Activar cuando el usuario quiera añadir una librería, saber si merece la pena esta dependencia, evaluar un paquete antes de instalarlo, hacer npm install o pip install de algo nuevo, buscar alternativas a una
Open skill - /write-adr
Usar para documentar decisiones arquitectónicas como ADR. Activar cuando el usuario quiera documentar por qué se tomó una decisión, registrar alternativas descartadas, crear un ADR, un decision record, dejar constancia de una elección técnica o justificar una decisión de diseño
Open skill - /code-review
Usar para revisar código con foco en calidad, legibilidad y errores lógicos. También: revisar código, buscar errores, calidad del código, revisión de PR, pull request review.
Open skill

