Apariencia
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_atse 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_atcorrecta
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 apropuesta - [ ] 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/usuarioslista usuarios con filtros - [ ] I2:
/admin/reportescarga 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:listmuestraExpireMembershipsJob - [ ] K2:
php artisan queue:failedno tiene entries nuevas del último deploy
L · Sistema (3 checks)
- [ ] L1:
GET /api/v1/healthdevuelve{app:ok, database:ok, cache:ok, queue:ok} - [ ] L2: Logs no muestran stacktraces nuevos en las últimas horas
- [ ] L3: Stripe sin alertas ·
mailqcasi vacío ·df -hdel volumen destorage/sin alerta
Matriz resumen
| Sección | ✓ / Total | Crítico fail |
|---|---|---|
| A · Auth | __ / 5 | SÍ bloquea release |
| B · Membresía | __ / 4 | SÍ bloquea release |
| C · Perfil | __ / 3 | Parcial — solo si C2 o C3 fallan |
| D · Psicométricos | __ / 2 | No bloquea, pero documentar |
| E · Directorio | __ / 3 | SÍ bloquea release |
| F · Pipeline | __ / 4 | SÍ bloquea release |
| G · Entrevistas | __ / 4 | SÍ bloquea release |
| H · Empresa | __ / 3 | SÍ bloquea release |
| I · Admin | __ / 3 | Parcial — si I1 o I2 fallan |
| J · Notificaciones | __ / 3 | Parcial |
| K · Jobs | __ / 2 | SÍ bloquea si K1 falla |
| L · Sistema | __ / 3 | SÍ 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)
/healthdevuelve 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 →

