RELE · 13-qa-test-plan.md · 15 de 22

En esta página 1. Alcance 0%

13 — Plan de QA — RELE

1. Alcance

Smoke y regresión del vertical slice L2: auth multi-rol, CRUD lecturas, stats, estados UI, tokens visuales.

Entornos: local API :3009 · web :4200 · Neon sparkling-snow-59844541.

2. Cuentas de prueba

RolEmailPassword
RESIDENTcasa@rele.energypassword123
ADVISORasesor@rele.energypassword123

3. Smoke API (obligatorio D-P1-06)

#PasoExpectativa
S1POST /api/auth/login casa@…200 + accessToken + role RESIDENT
S2GET /api/readings con Bearer200 array ≥ 1
S3GET /api/readings/stats/summarytotal, open, byStatus, kwhTotal
S4POST /api/readings period+kwh201/200 · status SUBMITTED · code RE-…
S5Login asesorrole ADVISOR
S6GET /api/readings asesorve lecturas de Elena
S7PATCH /api/readings/:id/status REVIEWED200 · advisorId set
S8Sin token GET readings401
S9RESIDENT PATCH status403
S10ADVISOR POST reading403

Ejemplo curl (orientativo)

# Login residente
TOKEN=$(curl -s -X POST http://localhost:3009/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"casa@rele.energy","password":"password123"}' | jq -r .accessToken)

curl -s http://localhost:3009/api/readings -H "Authorization: Bearer $TOKEN" | jq length
curl -s http://localhost:3009/api/readings/stats/summary -H "Authorization: Bearer $TOKEN" | jq .

4. Smoke web

#PasoExpectativa
W1Abrir /Hero, eslogan, CTAs, imagen
W2Ir a loginSplit navy/form
W3Login residenteRedirect /lecturas · nombre Elena · badge RESIDENT
W4Stats visiblesTOTAL / ABIERTAS / kWh Σ
W5Nueva lecturaForm → submit → vuelve lista con item
W6DetallekWh, estado, notas
W7Logout + login asesorCola con nombres residentes
W8Detalle → REVIEWEDBadge actualiza
W9FLAGGED + notaNota visible sea soft
W10Empty (DB limpia opcional)Empty state sin crash
W11API apagadaError + Reintentar

5. Regresión de dominio

CasoResultado
Código único tras varios createsNo colisión (retry manual si 500 raro)
costEur nullMuestra “—” en detalle
notes vacíasNo bloque de notas
Orden listaMás reciente primero

6. Regresión visual / craft

CheckPass
Colores fog/navy/sea/coralNo palette default indigo Tailwind
Fonts Sora + Nunito SansTítulos display
Badges por statusColores distintos
Mobile 390px listaSin overflow horizontal crítico

7. Seguridad básica

CheckPass
password no en responses
401 sin token
403 cross-role
XSS en notesAngular escape; no innerHTML raw

8. Accesibilidad smoke

Ver doc 10 §12 (A1–A6).

9. Build

CheckComando / criterio
API compilenest start / tsc sin error
Web buildng build OK o serve estable
Seedconsola RELE seed OK

10. Matriz de riesgos QA

RiesgoSeveridadDetección
API URL mal puertoAltalista error
Token key mismatch accessTokenAltalogin no guarda
Guard no aplicadoCríticaGET sin token 200
Role check missingCríticaresident patch

11. Criterio de salida QA día

  • S1–S10 o subset documentado en implementation
  • W1–W9 en demo
  • Seed + 2 roles
  • Sin bloqueantes de authz

12. Fuera de alcance QA v1

  • e2e Playwright suite CI
  • Load test Neon
  • Penetration test formal
  • Compatibilidad IE