Etapa actual
Suite de Tests
S9D
·
QA Engineer
💰 Producto comercial
● DeepSeek
o ChatGPT
🎯
Consejo del director
Sin tests, cada cambio puede romper algo sin que lo sepas.
🎯 Objetivo
Tests que garantizan que el sistema funciona y sigue funcionando.
🤖 ¿Por qué DeepSeek?
DeepSeek o ChatGPT. Ambos generan suites de tests completas.
✅ Esta etapa debe entregar
Tests unitarios con objetivo de 90% cobertura en servicios
Tests de integración con objetivo de 70% en repositorios
Test de idempotencia para operaciones críticas
Test de optimistic locking donde aplica
Smoke tests para verificar sistema antes de deploy
1. Copia este prompt
Pega esto en DeepSeek
Eres un experto actualizando una entrega del framework FASE v10.0.
TIPO DE PROYECTO: 💰 Producto comercial
PROYECTO: Apptia
⚠️ ESTA ETAPA NECESITA ACTUALIZACIÓN — NO REGENERES DESDE CERO
Esta etapa (S9D — Suite de Tests) fue completada anteriormente pero
decisiones tomadas después la dejaron desactualizada.
CAUSA DEL CAMBIO:
- PC-4.5 (Simulación con Datos Reales) fue actualizada recientemente
- S9A (Modelos de Base de Datos) fue actualizada recientemente
- S9B (Endpoints de la API) fue actualizada recientemente
ENTREGA ANTERIOR (lo que ya existe):
Aquí está la entrega actualizada de S9D — Suite de Tests (v4) , manteniendo todo el contenido válido de la versión anterior y aplicando solo las actualizaciones necesarias por los cambios en PC-4.5, S9A y S9B.
---
S9D — Suite de Tests (v4)
QA Engineer | Apptia — Plataforma B2B SaaS de Experiencias Digitales Escasas
Framework FASE v10.0 | Producto Comercial
---
✏️ CAMBIOS REALIZADOS EN ESTA ACTUALIZACIÓN (v3 → v4)
Sección Cambio Razón
2.2 ExperienceVersioningService → ExperienceVersionService (simplificación de nombre) S9A renombró servicio para evitar -ing en nombres de dominio
2.4 AR Asset Service: Nuevo test test_create_asset_from_uploaded_file PC-4.5 ahora requiere creación desde archivo subido (no solo URL)
2.4 AR Asset Service: Nuevo test test_handle_failed_transcoding_callback PC-4.5 añadió webhook de fallo desde pipeline de procesamiento
3.3 AR Asset Repository: Nuevo test test_update_transcoding_progress PC-4.5: seguimiento de progreso parcial (0-100%) en pipeline
3.3 AR Asset Repository: Nuevo test test_cleanup_orphaned_assets PC-4.5: limpieza de assets huérfanos sin experiencia asociada
5. Contrato: Endpoint POST /ar/asset/upload-complete añadido a suite S9B expuso callback para confirmación de subida completa a S3
6. Performance: Objetivo p95 < 300ms para POST /ar/asset/upload-complete Callback de S3 puede ser más lento; ajuste realista
---
1. ESTRATEGIA DE PRUEBAS — Sin cambios, válido
Tipo Cobertura objetivo Ejecución Entorno
Unitario 90% servicios críticos CI (cada commit) Local + GitHub Actions
Integración 70% repositorios CI (cada PR) Test container PostgreSQL
Smoke 10 endpoints críticos (+2 AR) Pre-deploy Staging
Contrato 100% endpoints públicos CI (release) Staging
Performance p95 < objetivos Pre-release + mensual Staging
---
2. TESTS UNITARIOS
2.1 Servicio de Llaves (QR Keys) — Sin cambios, válido
```python
# tests/unit/services/test_key_service.py
import pytest
from unittest.mock import Mock, AsyncMock
from uuid import uuid4
from dat...
CONTEXTO DEL PROYECTO (decisiones confirmadas):
IDEA TRADUCIDA:
Una plataforma B2B SaaS (Apptia) que permite a marcas de productos físicos premium generar códigos QR únicos vinculados a experiencias digitales inmersivas de un solo uso (rituales guiados, diarios interactivos), donde el contenido se bloquea definitivamente cuando el usuario lo comparte en redes sociales o expira tras una semana de inactividad post-experiencia, convirtiendo la viralidad en el act
USUARIOS:
Tipo 1 — Administrador (Dueño de Marca): Emprendedor o pequeña empresa con producto físico premium. Genera lotes de QRs, construye el contenido de la experiencia dentro de Apptia (sube su propio material o selecciona contenido sugerido por la plataforma), accede al panel de control para resets y ana
PROBLEMA:
SÍ — Las marcas premium incluyen QR estáticos que apuntan a URLs abiertas y compartibles, destruyendo la exclusividad del producto y facilitando la piratería del contenido digital asociado.
Solución diferenciada: PARCIAL — Existen plataformas de contenido gated (Gumroad, Thinkific), pero ninguna vin
FUNCIONALIDADES V1:
(MÍNIMO VALIOSO)
1. Generador y Gestor de Llaves (QR únicos con estado)
Nivel: Esencial
Valor: Permite a la marca crear activos digitales escasos y verificables. Sin esto, no existe el producto. Resuelve directamente el problema de URLs abiertas y compartibles.
Incluye explícitamente:
Creación de lotes de QRs con ID único
Asociación a SKU
Estados: Disponible / Activo / Finalizado
Timestamps (creación y bloqueo)
Complejidad: M
2. Motor de Sesión Vinculada por Dispositivo (anti-compartición)
Nivel
MODELO DE DOMINIO:
PC-3 — MODELO DE DOMINIO
Apptia | Domain Architect
ENTIDADES DEL SISTEMA
ENTIDAD: Brand (Marca)
Atributos:
brand_id UUID PK
name VARCHAR(120) NOT NULL
slug VARCHAR(80) UNIQUE NOT NULL
plan_id FK → Plan
subscription_status ENUM('trialing','active','past_due','canceled','paused')
billing_email VARCHAR(254) NOT NULL
created_at TIMESTAMP WITH TIME ZONE NOT NULL
updated_at TIMESTAMP WITH TIME ZONE NOT NULL
deleted_at TIMESTAMP WIT
ARQUITECTURA: Layered con DTOs
REGLAS:
0: Inmutabilidad del Historial de Auditoría
Tipo: Invariante
Descripción: Los registros de la tabla audit_log son de escritura única (append-only). Ningún actor del sistema, incluido el superadmin de Apptia, puede modificar o eliminar registros existentes. Las operaciones UPDATE y DELETE sobre audit
TU TAREA:
1. Revisa la entrega anterior
2. Identifica qué partes quedaron desactualizadas con los nuevos cambios
3. Actualiza SOLO esas partes — mantén todo lo demás igual
4. Si algo del output anterior sigue siendo válido, cópialo tal cual
5. Señala claramente qué cambió con: "✏️ ACTUALIZADO: [qué y por qué]"
IMPORTANTE:
- No rehaces todo desde cero
- No cambias decisiones que siguen siendo válidas
- Si algo es ambiguo, pregunta antes de asumir
⛔ LÍMITE: Tu trabajo termina en S9D. No ejecutes la siguiente etapa.
Si el usuario responde algo, dile: "✅ Pega este output en el sistema FASE Director."
Genera la actualización de S9D:
2. Pega la respuesta de la IA
Historial reciente
S9D
Suite de Tests
S9A
Modelos de Base de Datos
S9D
Suite de Tests
S9A
Modelos de Base de Datos
S9A
Modelos de Base de Datos
S9A
Modelos de Base de Datos
S9A
Modelos de Base de Datos
S9A
Modelos de Base de Datos
S9D
Suite de Tests
S1
Resumen Ejecutivo