← Volver al plan de trabajo

Cash Backend · Optimización de base de datos

Resultados de pruebas — Ambiente QA

Suite de pruebas de calidad ejecutada el 15-16 de julio de 2026 sobre el ambiente de QA. Cubre casos borde de la API, integridad de la base de datos, el flujo de usuario nuevo, la sincronización con Zoho CRM y pruebas reales con el frontend del juego. Todas las pruebas se superaron; las dos incidencias detectadas fueron corregidas y validadas.

Casos borde de API 16 / 16 Todas aprobadas
Integridad de DB 6 / 6 Sobre toda la base QA
Flujo usuario nuevo 8 / 8 Primer guardado + limpieza
Correcciones validadas 7 / 7 Dos incidencias resueltas
Dato clave

Verificación criptográfica (SHA-256): se confirmó que ningún dato de partida se pierde ni se altera al separar el estado vigente del historial. Cada marcador liviano coincide exactamente, en hash y tamaño, con su payload completo almacenado.

Impacto de la optimización: cada guardado en el historial pasó de ~402,742 bytes a un marcador de 230 bytes — una reducción de ~1,750x, conservando el estado jugable completo en la tabla de estado vigente.

ARuta de escritura · POST /save

La API valida y rechaza toda entrada inválida antes de escribir en la base de datos, y procesa correctamente cargas grandes, caracteres especiales y guardados rápidos o simultáneos.

PruebaEsperadoResultadoEstado
Cuerpo JSON malformadoRechazo (400)400 · "must be valid JSON"Aprobado
game_save no es objeto (array / texto / nulo)Rechazo (400)400 · los 3 casosAprobado
Reenvío de un marcador como si fuera guardadoRechazo (400)400 · "legacy save marker"Aprobado
Payload sin señal de partida jugableRechazo (400)400Aprobado
Payload grande válido (~5 MB)Aceptado (201)201 creadoAprobado
Payload sobre el límite (~8.3 MB)Rechazo413 (límite de plataforma)Aprobado
Caracteres especiales / unicode (tildes, emoji, comillas)Ida y vuelta idéntica201 + lectura idénticaAprobado
10 guardados rápidos secuenciales1 estado vigente = el último10× 201 · último correctoAprobado
5 guardados concurrentes (en paralelo)Sin duplicados ni errores5× 201 · 1 sola fila vigenteAprobado

BRuta de lectura · GET /save

PruebaEsperadoResultadoEstado
Lectura del payload completo desde el estado vigente200 con payload y metadatos200 · ~402 KBAprobado
Restauración del guardado original tras las pruebasEstado original recuperado201 + lectura originalAprobado

CAutenticación

PruebaEsperadoResultadoEstado
GET /save sin credencialesDenegado (401)401Aprobado
POST /save sin credencialesDenegado (401)401Aprobado
Credencial inválida / corruptaDenegado (403)403Aprobado

DFlujo de usuario nuevo (primer guardado)

Se validó el primer guardado de una cuenta nueva —la creación del estado vigente desde cero— con una cuenta desechable que se eliminó por completo al finalizar.

PruebaEsperadoResultadoEstado
Registro de usuario nuevo201 + usuario201Aprobado
Usuario sin guardados: lectura200 sin error200 · vacíoAprobado
Primer guardado (creación del estado vigente)201 + estado creado201 · 1 marcador + 1 fila nuevaAprobado
Lectura del primer guardadoPayload completo200 correctoAprobado
Eliminación y limpieza total (DB + autenticación)0 rastrosCuenta eliminada por completoAprobado

FIntegridad de la base de datos

Verificaciones de solo lectura sobre toda la base de QA.

VerificaciónResultadoEstado
Un solo estado vigente por usuario, sin duplicados221 filas / 221 usuarios / 0 duplicadosAprobado
Ningún marcador dentro de la tabla de estado vigente0Aprobado
Todas las referencias internas resuelven0 rotasAprobado
Forma y tamaño de los marcadores del historialmáx. 231 bytes · 0 malformadosAprobado
Verificación criptográfica (hash + tamaño)Coincidencia exacta · 0 discrepanciasAprobado
Backfill intacto (usuarios sin escrituras nuevas)Idéntico a su origen (100%)Aprobado

ESincronización con Zoho CRM

PruebaResultadoEstado
Ciclo automático programado (sin intervención manual)18 registros · procesados: 18 · pendientes: 0Aprobado
El marcador liviano no afecta a ZohoNo se envía game_saveAprobado
Solo se sincronizan registros recientes (histórico excluido)1,063 filas antiguas excluidas por diseñoAprobado

Correcciones de calidad detectadas en QA

Las pruebas exhaustivas detectaron dos incidencias preexistentes (no introducidas por la optimización). Ambas fueron corregidas, desplegadas y validadas en QA.

IncidenciaCorrecciónValidaciónEstado
El borrado de un usuario con guardados fallabaSe incluyen las tablas de guardado en el borradoBorrado con guardados → 200 · limpieza totalCorregido
El registro podía dejar una cuenta de autenticación huérfanaValidación previa y limpieza ante falloSin huérfanos · validación 400 claraCorregido

Pruebas reales con el frontend

Dos cuentas reales continuaron sus partidas contra QA -con historiales de 3,517 y 27 guardados- iy ambas produjeron la separación correcta entre marcador liviano y estado vigente completo. La lectura se sirvió desde la tabla de estado vigente, sin cambios visibles para el jugador y sin alterar el contrato de la API.

Metodología y evidencia

Las pruebas se ejecutaron contra el ambiente de QA a través de la API pública, con datos de prueba reales y verificación directa en la base de datos. Los resultados crudos (salidas del sistema) se conservan como respaldo técnico junto a este resumen. Los guardados de prueba se limpiaron al finalizar y el guardado original de la cuenta de pruebas fue restaurado.