test-plan
$
npx mdskill add 686f6c61/alfred-dev/test-planPrioritize testing effort by risk to focus on critical failures.
- Identifies high-impact system areas to prevent data loss or service outages.
- Classifies components as critical, high, medium, or low priority based on failure probability.
- Covers unit, integration, and end-to-end tests across edge cases and negative scenarios.
- Delivers an actionable document guiding testing strategy from scope definition to execution.
SKILL.md
.github/skills/test-planView on GitHub ↗
--- name: test-plan description: "Usar para generar un plan de testing priorizado por riesgo. También: plan de testing, qué probar, priorizar tests por riesgo, estrategia de testing, cobertura de tests." --- # Generar plan de testing ## Resumen Este skill produce un plan de testing estructurado y priorizado por riesgo. No se trata de probar todo con la misma intensidad, sino de concentrar el esfuerzo donde más impacto tiene: las áreas críticas del sistema que, si fallan, causan mayor daño al usuario o al negocio. El plan cubre desde tests unitarios hasta tests end-to-end, pasando por integración, edge cases y escenarios negativos. El resultado es un documento accionable que guía el esfuerzo de testing. ## Proceso 1. **Identificar el alcance.** Definir qué se va a probar: una feature nueva, un módulo refactorizado, el sistema completo, o un área específica. El alcance determina la profundidad del plan. 2. **Analizar el riesgo de cada área.** Para cada componente o funcionalidad, evaluar: - **Impacto del fallo:** qué pasa si esta parte falla (pérdida de datos, caída del servicio, mala experiencia de usuario, etc.). - **Probabilidad de fallo:** complejidad del código, frecuencia de cambios, historial de bugs. - **Visibilidad:** si el fallo es visible para el usuario o silencioso. Clasificar cada área como crítica, alta, media o baja prioridad de testing. 3. **Definir las categorías de tests:** - **Unitarios:** funciones individuales aisladas de sus dependencias. Rápidos, abundantes, cubren lógica de negocio y casos límite. - **Integración:** interacción entre módulos o con servicios externos (base de datos, APIs). Verifican que las piezas encajan. - **End-to-end (e2e):** flujos completos desde la perspectiva del usuario. Pocos pero críticos. Cubren los happy paths más importantes. - **Edge cases:** valores límite, inputs vacíos, unicode, números negativos, listas gigantes. - **Escenarios negativos:** qué pasa cuando las cosas van mal (red caída, base de datos llena, permisos insuficientes, timeout). 4. **Asignar prioridad a cada test:** | Prioridad | Criterio | Ejemplo | |-----------|----------|---------| | Crítica | Fallo = pérdida de datos o dinero | Test de transacciones, test de backup | | Alta | Fallo = servicio no disponible | Test de autenticación, test de endpoints principales | | Media | Fallo = mala experiencia de usuario | Test de validación de formularios, test de paginación | | Baja | Fallo = molestia menor | Test de formato de fecha, test de ordenación | 5. **Estimar el esfuerzo.** Para cada grupo de tests, estimar el tiempo necesario para escribirlos. Esto ayuda a planificar sprints y a negociar alcance si hay restricciones de tiempo. 6. **Documentar el plan.** Utilizar `templates/test-plan.md` si existe. El documento debe ser una referencia viva que se actualiza conforme el proyecto evoluciona. ## Criterios de éxito - Cada área del sistema tiene un nivel de riesgo asignado. - Los tests están categorizados (unitario, integración, e2e, edge case, negativo). - Las prioridades reflejan el impacto real del fallo, no la facilidad de escribir el test. - El esfuerzo está estimado para permitir planificación. - El plan cubre escenarios positivos, negativos y edge cases para las áreas críticas. - Las decisiones de estrategia de testing se han registrado en la memoria del proyecto. ## Paso de memoria Registrar las decisiones de estrategia de testing en la memoria del proyecto con `memory_log_decision`. Esto incluye qué áreas se han priorizado, qué se ha descartado y por qué, para que el plan se mantenga coherente entre sesiones. ## Referencia al stack Consultar el stack detectado en la configuración de Alfred para seleccionar automáticamente el framework de testing adecuado (Jest, Vitest, pytest, etc.) y adaptar las recomendaciones al ecosistema del proyecto. ## Qué NO hacer - No priorizar tests por facilidad de escritura. Priorizar por riesgo e impacto del fallo, que es el criterio que realmente protege al usuario. - No planificar tests E2E para todo. Los tests E2E son lentos y frágiles; reservarlos para flujos críticos y cubrir el resto con tests unitarios y de integración. - No generar un plan de testing sin conocer el código. El plan debe basarse en la arquitectura real, no en una plantilla genérica. - No ignorar los tests negativos y de edge cases. Los happy paths se prueban solos; los bugs viven en los caminos inesperados.