exploratory-testing

$npx mdskill add 686f6c61/alfred-dev/exploratory-testing

Run structured exploratory testing sessions to find unexpected bugs.

  • Discovers hidden defects through guided heuristic-based exploration.
  • Executes within fixed 25-minute intervals to maintain focus.
  • Targets specific areas like registration flows or payment APIs.
  • Outputs documented findings and identified edge cases.

SKILL.md

.github/skills/exploratory-testingView on GitHub ↗
---
name: exploratory-testing
description: "Usar para testing exploratorio con sesiones documentadas. También: probar sin script, buscar bugs, testing manual, edge cases, sesión de testing."
---

# Testing exploratorio

## Resumen

Este skill ejecuta sesiones de testing exploratorio estructurado. A diferencia de los tests automatizados que verifican comportamientos conocidos, el testing exploratorio busca descubrir comportamientos inesperados que nadie pensó en probar. Es el complemento humano imprescindible a la suite automatizada.

Cada sesión tiene un objetivo concreto, un tiempo limitado y produce documentación de lo encontrado. No es "probar cosas al azar" sino una exploración guiada por heurísticas.

## Proceso

1. **Definir el objetivo de la sesión.** Cada sesión se centra en un área o aspecto:

   - "Explorar el flujo de registro buscando estados inconsistentes."
   - "Probar la API de pagos con datos inválidos."
   - "Verificar el comportamiento bajo carga simulada."

   Un objetivo demasiado amplio ("probar todo") no es un objetivo.

2. **Establecer tiempo limitado.** Las sesiones duran 25 minutos (un pomodoro). El límite de tiempo obliga a centrarse y evita la fatiga que reduce la efectividad. Si se necesita más tiempo, iniciar una nueva sesión con objetivo refinado.

3. **Aplicar heurísticas de exploración.** Estas heurísticas guían la búsqueda de problemas:

   - **Límites:** valores en los extremos de lo permitido (0, 1, máximo, máximo+1).
   - **Estados:** qué pasa al cambiar de estado rápidamente (crear y eliminar inmediatamente, editar mientras otro usuario edita).
   - **Flujos alternativos:** seguir caminos que no son el happy path (cancelar a mitad, volver atrás, refrescar la página).
   - **Datos inválidos:** inyectar datos que no se esperan (HTML, SQL, unicode exótico, strings vacíos, valores negativos).
   - **Interrupciones:** qué pasa si la conexión se corta a mitad de una operación, si el navegador se cierra, si se agota el timeout.
   - **Concurrencia:** dos usuarios haciendo lo mismo a la vez, requests duplicadas, doble click.
   - **Rendimiento:** operaciones con volumen grande de datos, búsquedas con resultados masivos.

4. **Documentar en tiempo real.** Durante la sesión, registrar:

   - Qué se probó (acción concreta).
   - Qué se esperaba que pasase.
   - Qué pasó realmente.
   - Si es un bug, un comportamiento confuso o un área sin cobertura.

5. **Clasificar los hallazgos:**

   - **Bug:** comportamiento incorrecto que debe corregirse.
   - **UX issue:** funciona pero confunde al usuario.
   - **Falta de cobertura:** área sin tests automatizados que debería tenerlos.
   - **Duda:** comportamiento que no se sabe si es correcto sin consultar el requisito.

6. **Documentar lo que NO se probó.** Tan importante como lo probado es lo que quedó fuera. Esto alimenta futuras sesiones.

7. **Generar informe de sesión.** Resumen con: objetivo, duración, hallazgos clasificados, áreas no cubiertas, próximos pasos sugeridos.

## Criterios de éxito

- La sesión tenía un objetivo concreto y un tiempo limitado.
- Se aplicaron al menos 3 heurísticas de exploración distintas.
- Los hallazgos están documentados con: acción, resultado esperado y resultado real.
- Los hallazgos están clasificados (bug, UX, cobertura, duda).
- Se han documentado las áreas que no se pudieron cubrir.

More from 686f6c61/alfred-dev

SkillDescription
acceptance-criteriaGenerar criterios de aceptación en formato Given/When/Then. Activar cuando el usuario quiera definir criterios de aceptacion, usar formato Given When Then, escribir en Gherkin, saber como determinar que algo esta terminado o establecer una definicion de hecho.
architecture-docsUsar para documentar la arquitectura del sistema. Activar ante: documentar arquitectura, diagrama del sistema, como funciona el proyecto, vision general tecnica
bundle-sizeAnalizar y reducir el tamaño de bundles frontend. Activar cuando el bundle sea grande, se quiera reducir tamaño, aplicar tree shaking, configurar lazy loading, usar webpack analyzer o analizar el peso de la aplicacion.
choose-stackUsar 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 comparar herramientas.
ci-cd-pipelineConfigurar pipeline CI/CD adaptado al proyecto. Activar cuando el usuario quiera configurar CI, crear GitHub Actions, configurar GitLab CI, montar un pipeline de despliegue, automatizar tests o implementar integracion continua.
code-review-responseUsar al recibir feedback de code review para responder técnicamente. Activar cuando el usuario quiera responder a comentarios de PR, gestionar feedback de code review, resolver comentarios de un revisor, o cuando el revisor pide cambios en el código.
compliance-checkUsar para verificar cumplimiento RGPD, NIS2 y CRA. También: verificar RGPD, cumplimiento normativo, NIS2, CRA, Cyber Resilience Act, protección de datos, regulación europea.
copy-reviewRevisar textos publicos: claridad, tono, ortografia y CTAs. Activar ante: revisar textos, mejorar copy, tono de comunicacion, textos de la web, landing page copy
dependency-strategyEstrategia integral de gestion de dependencias: inventario, evaluacion de riesgo, politica de actualizaciones y documentacion. Usar para auditar el estado global de las dependencias del proyecto.
dependency-updateRevisar dependencias desactualizadas, con CVEs o end-of-life, y proponer actualizaciones seguras. También: actualizar paquetes, actualizar dependencias, Dependabot, Renovate, versión desactualizada, breaking changes.