Skip to content

Plan general y setup

Guía para validar manualmente que todas las funcionalidades de HUMAE operan correctamente. Complementa la suite automatizada del backend (Pest) y del frontend (Vitest + Playwright).

Audiencia

  • QA manual: ejecuta estos planes antes de cada release.
  • Product / stakeholders: validación final de negocio en staging.
  • Desarrolladores nuevos: familiarizarse con flujos completos.
  • Soporte: reproducir bugs reportados por usuarios.

Cuándo correr estas pruebas

MomentoAlcance
Pre-commit del developerSolo la suite automatizada (composer check, npm run test)
Pre-release (QA semanal)Smoke tests: Checklist de regresión
Post-release inicialSmoke tests + 1 flujo end-to-end real con cuenta propia
Antes de cada deploy a prodChecklist de regresión completo
Tras bug reportadoCasos específicos del flujo afectado
Validación trimestralTodo el plan completo (≈ 1 día persona)

Formato de cada caso de prueba

Cada caso sigue este formato:

### TC-XXX-001 · Nombre descriptivo

Severidad: 🔴 Crítica / 🟠 Alta / 🟡 Media / 🟢 Baja

Precondiciones:
- Qué debe existir antes de ejecutar

Pasos:
1. Acción concreta
2. Acción concreta
3. ...

Resultado esperado:
- Qué debe pasar (UI, DB, notificaciones)

Variaciones:
- Si X, entonces Y
- Si el usuario hace Z, el sistema debe responder W

Niveles de severidad

  • 🔴 Crítica — bloquea la operación del negocio (pagos, auth, datos personales).
  • 🟠 Alta — funcionalidad core afectada, hay workaround molesto.
  • 🟡 Media — degradación de UX pero no bloqueante.
  • 🟢 Baja — cosmético, inconsistencia menor.

Ambiente de pruebas

Opción A: Local (recomendada para dev)

bash
# Backend
cd humae_backend
php artisan serve

# Frontend
cd ../humae_frontend
npm run dev

# Docker (levanta mysql + redis + mailhog)
cd ..
docker compose up -d

URLs:

  • Backend: http://localhost:8000
  • Frontend: http://localhost:3000
  • MailHog (correos): http://localhost:8025

Opción B: Staging

Si existe un ambiente staging desplegado:

  • Backend: https://api.staging.humae.com.mx
  • Frontend: https://staging.humae.com.mx

Credenciales y datos de prueba provistos por el equipo DevOps.

Opción C: Producción

⚠️ Pruebas en producción deben ser NO destructivas. No crear membresías con tarjetas reales a menos que se haga refund inmediato.

Cuentas de prueba

Los seeders crean roles + permisos pero no users. Para testing manual:

bash
cd humae_backend
php artisan tinker
php
// Admin
$admin = \App\Models\User::factory()->create([
    'name' => 'Test Admin',
    'email' => 'admin@test.humae',
    'password' => bcrypt('Password123'),
]);
$admin->assignRole('admin');
$admin->markEmailAsVerified();

// Recruiter
$recruiter = \App\Models\User::factory()->create([
    'name' => 'Test Recruiter',
    'email' => 'recruiter@test.humae',
    'password' => bcrypt('Password123'),
]);
$recruiter->assignRole('recruiter');
$recruiter->markEmailAsVerified();

// Company user (requiere crear Company primero)
$company = \App\Models\Company::factory()->create(['name' => 'Acme Corp']);
$companyUser = \App\Models\User::factory()->create([
    'name' => 'Test Company',
    'email' => 'company@test.humae',
    'password' => bcrypt('Password123'),
]);
$companyUser->assignRole('company_user');
$companyUser->markEmailAsVerified();
\App\Models\CompanyMember::create([
    'company_id' => $company->id,
    'user_id' => $companyUser->id,
    'role' => 'owner',
]);

// Candidato (lo crearás desde el flujo de registro público)

Script de setup

Para evitar escribir esto cada vez, crea un seeder TestAccountsSeeder y córrelo con php artisan db:seed --class=TestAccountsSeeder. NO incluirlo en DatabaseSeeder principal — solo bajo demanda.

Herramientas necesarias

HerramientaUso
Browser (Chrome/Firefox/Safari)Ejecutar flujos UI
DevTools del browserInspeccionar Network, Console, Cookies
Postman / Insomnia / HTTPieLlamar a la API directamente
Stripe CLIDisparar webhooks, validar firmas
MailHog (local) o /var/log/mail.log + mailq (prod)Verificar correos enviados por el Postfix local
mysql CLI o TablePlus/DBeaverInspeccionar estado de DB
redis-cliInspeccionar cache + queue
Laravel TinkerREPL para cambiar estado rápido

Datos de prueba

Stripe test cards (test mode)

TarjetaResultado esperado
4242 4242 4242 4242Pago exitoso
4000 0000 0000 9995Pago fallido (fondos insuficientes)
4000 0025 0000 3155Requiere 3D Secure (SCA)
4000 0000 0000 0002Tarjeta rechazada (generic decline)
4000 0000 0000 0069Tarjeta expirada
4000 0000 0000 0119Error de procesamiento

Todas: CVC cualquiera, fecha futura cualquiera, ZIP cualquiera.

Imágenes de prueba

Para subir avatars/logos sin descargar nada:

  • https://picsum.photos/512 — imagen aleatoria 512×512
  • https://placebear.com/400/400 — placeholder

PDFs / documentos de prueba

Reportar un bug

Si durante las pruebas encuentras un bug, documéntalo con:

TÍTULO: [TC-CAND-005] Verificación de email falla con URL expirada

AMBIENTE: staging / local
ROL: candidato
NAVEGADOR: Chrome 124 / macOS Sonoma

PASOS PARA REPRODUCIR:
1. Registrar nuevo candidato
2. Esperar 61 minutos
3. Clic en link de verificación del email

RESULTADO ACTUAL:
Pantalla blanca con error 500.

RESULTADO ESPERADO:
Mensaje "Link expirado, solicita uno nuevo" con botón de reenvío.

ADJUNTOS:
- Screenshot: ...
- Network log: ...
- Laravel log fragment: ...

SEVERIDAD: 🟠 Alta (los candidatos quedan bloqueados si tardan en ver el correo)

Canal de reporte:

  • Linear / Jira / GitHub Issues del equipo
  • Slack #humae-qa
  • Email a qa@humae.com.mx

Cómo está organizado el plan

Secciones por flujo:

Sección# CasosDuración estimada
Flujo del candidato~2060 min
Flujo del reclutador1545 min
Flujo de la empresa925 min
Flujo del administrador~1550 min
Auto-registro y aprobación1440 min
Integraciones externas~1030 min
Casos edge y what-ifs~1545 min
Checklist de regresiónsmoke20 min

Total completo: ~4h 30min persona para ejecutar todo el plan (sin contar el setup inicial).

Siguiente

Empezar por el flujo más crítico: Flujo del candidato →

Manual de usuario HUMAE · Uso interno