Skip to content

Checklist de regresión

Smoke tests rápidos que deben ejecutarse antes de cada release a producción. Todos deben pasar para dar el OK.

Duración estimada: 20 minutos ejecutándolo en orden.

Cuándo usar

  • Antes de cada deploy a producción
  • Después de un merge grande a main
  • Tras cambios en Stripe o en la infra propia (storage local, Postfix, DNS de correo)
  • En validación post-deploy desde el checklist de Deploy

Pre-flight

  • [ ] Ambiente correcto identificado (local / staging / prod)
  • [ ] Cuentas de prueba disponibles: admin + recruiter + company_user + candidate
  • [ ] MailHog (local) o acceso a inbox real (staging/prod)
  • [ ] Stripe en test mode (sk_test_...)
  • [ ] Navegador con DevTools abierto
  • [ ] Terminal con acceso a logs del backend

A · Autenticación (5 checks)

  • [ ] A1: Registro de candidato con email nuevo → correo de verificación llega
  • [ ] A2: Link del correo de verificación funciona → email_verified_at se setea
  • [ ] A3: Login con credenciales correctas → redirige a dashboard
  • [ ] A4: Login con password incorrecto → 422 con mensaje
  • [ ] A5: Logout → sesión termina, redirige a /login

B · Membresía + Stripe (4 checks)

  • [ ] B1: Candidato inicia checkout → redirige a Stripe Checkout
  • [ ] B2: Pago con tarjeta 4242 4242 4242 4242 → webhook llega → membresía activa
  • [ ] B3: Email "Membresía activa" llega al inbox
  • [ ] B4: Dashboard muestra tarjeta verde con expires_at correcta

C · Perfil + uploads (3 checks)

  • [ ] C1: Editar datos básicos → cambios persisten tras reload
  • [ ] C2: Subir avatar JPG (2MB) → /storage/avatars/{user_id}/... resuelve imagen 400×400 webp
  • [ ] C3: Descargar CV PDF → archivo válido con datos del perfil

D · Psicométricos (2 checks)

  • [ ] D1: Iniciar Big Five → 25 preguntas renderizan
  • [ ] D2: Completar y enviar → resultado con radar chart se muestra

E · Recruiter — directorio (3 checks)

  • [ ] E1: Login como recruiter → accede a /recruiter/directorio
  • [ ] E2: Filtro por skill funciona → lista se reduce correctamente
  • [ ] E3: Abrir detalle de candidato → datos + documentos + CV accesibles

F · Pipeline + asignaciones (4 checks)

  • [ ] F1: Asignar candidato a vacante → aparece en stage sourced
  • [ ] F2: Mover a presented → notificación a company_user
  • [ ] F3: Intentar saltar stage (sourced → finalist) → 422 "Transición no permitida"
  • [ ] F4: Agregar nota al assignment → se guarda con visibility correcta

G · Entrevistas (4 checks)

  • [ ] G1: Recruiter agenda entrevista → candidato + company recibe email
  • [ ] G2: Candidato confirma → state pasa a confirmada, recruiter notificado
  • [ ] G3: Reprogramar → crea row en interview_reschedules, state vuelve a propuesta
  • [ ] G4: Cancelar con motivo → state cancelada, todas las partes notificadas

H · Empresa (3 checks)

  • [ ] H1: Company_user crea vacante en borrador
  • [ ] H2: Publicar vacante → state activa, recruiters HUMAE notificados
  • [ ] H3: Ver candidatos presentados → solo presented+ visibles (sin contact info)

I · Admin (3 checks)

  • [ ] I1: /admin/usuarios lista usuarios con filtros
  • [ ] I2: /admin/reportes carga KPIs + charts sin errores
  • [ ] I3: Crear nueva skill en catálogos → aparece en picker del candidato

J · Notificaciones (3 checks)

  • [ ] J1: Campana del header muestra badge con unread count
  • [ ] J2: Al abrir, lista las últimas notificaciones
  • [ ] J3: Clic en notificación → marca como leída + navega al deep link

K · Jobs y scheduler (2 checks)

  • [ ] K1: php artisan schedule:list muestra ExpireMembershipsJob
  • [ ] K2: php artisan queue:failed no tiene entries nuevas del último deploy

L · Sistema (3 checks)

  • [ ] L1: GET /api/v1/health devuelve {app:ok, database:ok, cache:ok, queue:ok}
  • [ ] L2: Logs no muestran stacktraces nuevos en las últimas horas
  • [ ] L3: Stripe sin alertas · mailq casi vacío · df -h del volumen de storage/ sin alerta

Matriz resumen

Sección✓ / TotalCrítico fail
A · Auth__ / 5SÍ bloquea release
B · Membresía__ / 4SÍ bloquea release
C · Perfil__ / 3Parcial — solo si C2 o C3 fallan
D · Psicométricos__ / 2No bloquea, pero documentar
E · Directorio__ / 3SÍ bloquea release
F · Pipeline__ / 4SÍ bloquea release
G · Entrevistas__ / 4SÍ bloquea release
H · Empresa__ / 3SÍ bloquea release
I · Admin__ / 3Parcial — si I1 o I2 fallan
J · Notificaciones__ / 3Parcial
K · Jobs__ / 2SÍ bloquea si K1 falla
L · Sistema__ / 3SÍ bloquea si L1 falla

Total: __ / 39 checks


Criterios de aprobación

✅ GO (release OK)

  • 39 / 39 checks pasan
  • Sin regresiones vs release anterior
  • Sin errores críticos en logs del ambiente

⚠️ GO con notas

  • ≥ 35 / 39 pasan
  • Los fallos son de severidad 🟡 media o 🟢 baja
  • Fallos documentados como "known issues" para el próximo sprint

❌ NO GO

  • Cualquier check crítico (marcado "SÍ bloquea" arriba) falla
  • Regresión comparado con release anterior
  • Webhook de Stripe no funciona
  • Auth roto (no se puede loguear)
  • /health devuelve error

Reportar el resultado

Al completar el checklist, documenta el resultado:

RELEASE: v0.1.2
AMBIENTE: staging
FECHA: 2026-04-20 14:30
EJECUTADO POR: @andresj

RESULTADO: ✅ GO

Checks: 39/39
Notas: ninguna
Tiempo real: 18 min

Próximo paso: deploy a producción.

Publicar en:

  • Slack #humae-releases
  • Google Doc del release log
  • Issue de GitHub (si aplica)

Siguiente

Volver al inicio: Plan general → · o continuar con el Deploy →

Manual de usuario HUMAE · Uso interno