erp-core/docs/06-test-plans/MASTER-TEST-PLAN.md

795 lines
29 KiB
Markdown

# MASTER TEST PLAN - ERP GENÉRICO
**Proyecto:** ERP Genérico
**Versión:** 1.0
**Fecha:** 2025-11-24
**QA Lead:** TBD
**Estado:** Draft
---
## 1. INTRODUCCIÓN
### 1.1 Propósito
Este documento define la estrategia completa de testing para el ERP Genérico, un sistema modular que servirá como base para 3 ERPs especializados (Construcción, Inmobiliaria y Genérico).
El propósito de este Master Test Plan es:
- Establecer la estrategia global de calidad del proyecto
- Definir tipos de testing, niveles y responsabilidades
- Coordinar testing entre los 14 módulos del sistema
- Asegurar cobertura completa: funcional, no funcional y especializada
- Minimizar defectos en producción y maximizar ROI de QA
### 1.2 Alcance
**Módulos en Alcance:**
- 14 módulos (MGN-001 a MGN-014)
- 80 Requerimientos Funcionales
- 147 User Stories
- 93 tablas de base de datos
- Arquitectura: NestJS + React + PostgreSQL + Multi-tenancy
**Alcance del Testing:**
- Testing funcional (unit, integration, E2E)
- Testing no funcional (performance, security, accessibility)
- Testing especializado (multi-tenancy, RLS, data migration)
- Regression testing automatizado
- UAT (User Acceptance Testing)
**Story Points y Duración:**
- **Total Story Points:** 673 SP
- **User Stories:** 147 US
- **Velocidad estimada:** 20 SP/sprint
- **Duración total:** 34 sprints (68 semanas)
### 1.3 Objetivos de Calidad
**Métricas de Cobertura:**
- **Code coverage:** >80% (backend y frontend)
- **API endpoint coverage:** 100% (todos los endpoints testeados)
- **E2E coverage:** 100% flujos críticos de negocio
- **Automated tests:** >70% de tests automatizados
**Métricas de Defectos:**
- **Bug density:** <1 bug/100 LOC (líneas de código)
- **Defect escape rate:** <5% (bugs encontrados en producción)
- **MTTD (Mean Time to Detect):** <1 día
- **MTTR (Mean Time to Resolve):** <3 días para P0/P1
**Métricas de Performance:**
- **Response time:** <300ms (p95) para endpoints API
- **Page load time:** <2s (p95) para frontend
- **Throughput:** >1000 req/s en peak load
- **Error rate:** <1% en peak load
---
## 2. ESTRATEGIA DE TESTING
### 2.1 Testing Pyramid
El proyecto seguirá la estrategia de Testing Pyramid para optimizar velocidad, cobertura y costos:
```
E2E Tests (10%)
/ \
Integration Tests (30%)
/ \
Unit Tests (60%)
```
**Distribución estimada de tests:**
- **Unit tests:** ~960 tests (60%) - Fast, isolated, developer-owned
- **Integration tests:** ~480 tests (30%) - API + Component integration
- **E2E tests:** ~160 tests (10%) - Critical user journeys
- **Total estimado:** ~1,600 tests
**Justificación:**
- Base amplia de unit tests garantiza lógica de negocio correcta
- Integration tests validan contratos entre capas (API, DB, UI)
- E2E tests validan flujos críticos desde perspectiva de usuario
- Pirámide invertida sería lenta y costosa de mantener
### 2.2 Tipos de Testing
#### 2.2.1 Testing Funcional
**Unit Testing**
- **Backend:** Jest + NestJS testing utilities
- **Frontend:** Vitest + React Testing Library
- **Objetivo:** Testear lógica de negocio aislada (services, helpers, hooks)
- **Coverage:** >80% statement coverage
- **Ejecución:** Pre-commit hook (< 2 min)
**Integration Testing**
- **Backend:** Supertest (API endpoints), TestContainers (DB real)
- **Frontend:** React Testing Library (component + API integration)
- **Objetivo:** Validar contratos entre capas
- **Coverage:** 100% endpoints API, componentes principales
- **Ejecución:** CI pipeline en PRs (< 10 min)
**E2E Testing**
- **Herramienta:** Playwright (cross-browser)
- **Objetivo:** Validar flujos de usuario end-to-end
- **Coverage:** Flujos críticos de negocio (happy paths + error paths)
- **Ejecución:** Nightly builds (< 30 min)
**API Testing**
- **Herramienta:** Postman/Newman (contract testing)
- **Objetivo:** Validar contratos OpenAPI, request/response schemas
- **Coverage:** 100% endpoints documentados
- **Ejecución:** CI pipeline en PRs
#### 2.2.2 Testing No Funcional
**Performance Testing**
- **Herramienta:** k6 (load testing)
- **Tipos:** Load, Stress, Spike, Soak testing
- **Objetivo:** Validar performance bajo carga
- **Criterios:**
- p50: <100ms
- p95: <300ms
- p99: <500ms
- Throughput: >1000 req/s
- **Ejecución:** Pre-release (staging), monitoring continuo
**Security Testing**
- **Herramientas:** OWASP ZAP (DAST), Snyk (SAST, dependency scanning)
- **Tipos:** OWASP Top 10, SQL injection, XSS, CSRF, JWT validation
- **Objetivo:** Cero vulnerabilidades críticas en producción
- **Ejecución:** CI pipeline + pre-release audit
**Accessibility Testing**
- **Herramienta:** axe-core + manual testing
- **Estándar:** WCAG 2.1 Level AA
- **Objetivo:** Producto accesible para usuarios con discapacidades
- **Ejecución:** CI pipeline + manual audit pre-release
**Compatibility Testing**
- **Browsers:** Chrome, Firefox, Safari, Edge (últimas 2 versiones)
- **Devices:** Desktop, Tablet, Mobile (responsive)
- **Herramienta:** BrowserStack (cloud testing)
- **Ejecución:** Pre-release (QA environment)
#### 2.2.3 Testing Especializado
**Multi-tenancy Testing**
- **Objetivo:** Validar aislamiento entre tenants (schema isolation + RLS)
- **Test cases:**
- Tenant A no puede ver datos de Tenant B
- Usuario sin acceso a tenant recibe 403
- Queries con filtro tenant_id son aplicados automáticamente
- **Ejecución:** Integration tests + E2E tests
**RLS (Row Level Security) Testing**
- **Objetivo:** Validar políticas de seguridad a nivel de fila en PostgreSQL
- **Test cases:**
- RLS policies aplicadas correctamente según rol
- Bypass de RLS solo para service role
- Políticas de SELECT, INSERT, UPDATE, DELETE independientes
- **Ejecución:** Integration tests con DB real
**Data Migration Testing**
- **Objetivo:** Validar migraciones de BD sin pérdida de datos
- **Test cases:**
- Migraciones up/down ejecutan correctamente
- Datos existentes no se corrompen
- Performance de migraciones en DB grande
- **Ejecución:** Manual + automated (staging con prod clone)
**Backup/Recovery Testing**
- **Objetivo:** Validar recuperación ante desastres
- **Test cases:**
- Backup completo restaura 100% de datos
- RTO (Recovery Time Objective) < 4 horas
- RPO (Recovery Point Objective) < 1 hora
- **Ejecución:** Mensual (disaster recovery drill)
### 2.3 Niveles de Testing
#### L0: Unit Testing (Developers)
- **Responsable:** Developer que implementa la funcionalidad
- **Herramientas:** Jest, Vitest
- **Coverage objetivo:** >80% per module
- **Ejecución:** Pre-commit hook (Husky)
- **Duración:** <2 min
- **Criterio de éxito:** Todos los tests pasando, coverage >80%
#### L1: Integration Testing (Developers + QA)
- **Responsable:** Developer que completa US
- **Herramientas:** Supertest, React Testing Library, TestContainers
- **Coverage objetivo:** Todos los endpoints API, componentes principales
- **Ejecución:** CI pipeline (GitHub Actions en PR)
- **Duración:** <10 min
- **Criterio de éxito:** Todos los tests pasando, contratos validados
#### L2: E2E Testing (QA)
- **Responsable:** QA Engineer
- **Herramientas:** Playwright (headless + headed)
- **Coverage objetivo:** Flujos críticos de negocio
- **Ejecución:** Nightly builds + on-demand
- **Duración:** <30 min
- **Criterio de éxito:** 100% flujos críticos pasando
#### L3: Acceptance Testing (Product Owner + QA)
- **Responsable:** PO + QA Lead
- **Herramientas:** Manual testing + exploratory testing
- **Coverage objetivo:** Criterios de aceptación de US
- **Ejecución:** Sprint review
- **Duración:** Variable (depende de US)
- **Criterio de éxito:** PO valida que US cumple criterios de aceptación
---
## 3. AMBIENTE DE TESTING
### 3.1 Ambientes
| Ambiente | Propósito | Deploy | Data | Base URL |
|----------|-----------|--------|------|----------|
| **Development** | Dev local | Manual | Fixtures | http://localhost:3000 |
| **CI/CD** | Tests automáticos | Auto (PR) | Seeded | - |
| **QA** | Testing manual | Auto (develop) | Anonymized prod | https://qa.erp.local |
| **Staging** | Pre-producción | Manual | Prod clone | https://staging.erp.com |
| **Production** | Producción | Manual | Real | https://erp.com |
### 3.2 Datos de Prueba
#### Fixtures (Development)
**Propósito:** Desarrollo local, unit tests, integration tests
**Tenants:**
- `tenant-a` (activo, plan Pro)
- `tenant-b` (activo, plan Enterprise)
- `tenant-c` (inactivo, plan Trial)
**Usuarios:**
- admin@tenant-a.com (admin role)
- contador@tenant-a.com (accountant role)
- vendedor@tenant-a.com (sales role)
- viewer@tenant-a.com (viewer role)
- user@tenant-b.com (user role)
**Datos maestros:**
- 100 productos (10 por categoría)
- 50 partners (25 clientes, 20 proveedores, 5 ambos)
- 10 almacenes (5 en tenant-a, 5 en tenant-b)
- Catálogos: países, monedas, UoM, payment terms
**Transacciones:**
- 50 órdenes de venta (estados variados)
- 30 órdenes de compra (estados variados)
- 100 movimientos de stock
- 50 facturas (cliente + proveedor)
#### Seeded Data (CI/CD)
**Propósito:** Tests automáticos en CI pipeline
**Características:**
- 2 tenants mínimos (tenant-test-a, tenant-test-b)
- Usuarios básicos (admin, user, guest) por tenant
- Catálogos mínimos (10 productos, 10 partners, 2 almacenes)
- Reset automático antes de cada test suite
- Performance optimizada (datos mínimos necesarios)
#### Anonymized Data (QA)
**Propósito:** Testing manual en ambiente QA
**Características:**
- Copia de producción anonymizada (GDPR compliant)
- Datos de producción reales pero scrambled:
- Nombres: "Juan Pérez" -> "User 12345"
- Emails: "juan@acme.com" -> "user12345@example.com"
- Teléfonos: aleatorios
- Direcciones: aleatorias
- Estructura y volumen idénticos a producción
- Refresh semanal (viernes noche)
- Auditoría de acceso (quien, cuando, que consultó)
#### Prod Clone (Staging)
**Propósito:** Pre-release testing, performance testing
**Características:**
- Snapshot de producción (full clone)
- Datos reales pero acceso restringido
- Refresh mensual
- Usado para:
- Performance testing (k6 load tests)
- Data migration testing
- Pre-release validation
---
## 4. TEST CASES POR MÓDULO
### Resumen de Coverage
| Módulo | Nombre | US | Unit | Integration | E2E | Total Tests | Prioridad |
|--------|--------|-----|------|-------------|-----|-------------|-----------|
| MGN-001 | Fundamentos | 16 | 96 | 48 | 16 | 160 | P0 |
| MGN-002 | Empresas | 7 | 42 | 21 | 7 | 70 | P0 |
| MGN-003 | Catálogos | 8 | 48 | 24 | 8 | 80 | P0 |
| MGN-004 | Financiero | 18 | 108 | 54 | 18 | 180 | P0 |
| MGN-005 | Inventario | 14 | 84 | 42 | 14 | 140 | P0 |
| MGN-006 | Compras | 12 | 72 | 36 | 12 | 120 | P0/P1 |
| MGN-007 | Ventas | 12 | 72 | 36 | 12 | 120 | P0 |
| MGN-008 | Analítica | 10 | 60 | 30 | 10 | 100 | P0 |
| MGN-009 | CRM | 8 | 48 | 24 | 8 | 80 | P1 |
| MGN-010 | RRHH | 7 | 42 | 21 | 7 | 70 | P1 |
| MGN-011 | Proyectos | 10 | 60 | 30 | 10 | 100 | P1 |
| MGN-012 | Reportes | 6 | 36 | 18 | 6 | 60 | P1 |
| MGN-013 | Portal | 6 | 36 | 18 | 6 | 60 | P1 |
| MGN-014 | Mensajería | 12 | 72 | 36 | 12 | 120 | P0 |
| **TOTAL** | **14 módulos** | **147** | **876** | **438** | **147** | **1,461** | - |
### Distribución por Tipo
**Unit Tests (876 tests - 60%):**
- Services: 40% (350 tests)
- Controllers: 20% (175 tests)
- Helpers/Utils: 15% (131 tests)
- Components: 15% (131 tests)
- Hooks: 10% (89 tests)
**Integration Tests (438 tests - 30%):**
- API endpoints: 60% (263 tests)
- Database transactions: 20% (88 tests)
- Component + API: 15% (66 tests)
- State management: 5% (21 tests)
**E2E Tests (147 tests - 10%):**
- Happy paths: 60% (88 tests)
- Error paths: 25% (37 tests)
- Edge cases: 15% (22 tests)
---
## 5. SCHEDULE DE TESTING
### Por Sprint (2 semanas)
**Semana 1: Development Week**
- **Día 1-3:** Development + Unit tests (developers escriben código + tests)
- **Día 4:** Code review + Integration tests (peer review)
- **Día 5:** Bug fixing inicial
**Semana 2: Testing Week**
- **Día 6-7:** QA testing + E2E tests (QA ejecuta test plan)
- **Día 8:** Bug fixing (developers resuelven bugs P0/P1)
- **Día 9:** Regression testing (QA re-testea fixes + smoke tests)
- **Día 10:** Sprint review + retrospective (demo + lecciones aprendidas)
### Hitos de Testing
| Sprint | Módulo | Milestone | Tests Acumulados | Fecha Estimada |
|--------|--------|-----------|------------------|----------------|
| 1-4 | MGN-001 | Auth & Users completo | 160 tests | Semana 8 |
| 5-6 | MGN-002-003 | Catálogos completos | 310 tests | Semana 12 |
| 7-11 | MGN-004 | Financiero completo | 490 tests | Semana 22 |
| 12-15 | MGN-005 | Inventario completo | 630 tests | Semana 30 |
| 16-18 | MGN-006 | Compras completo | 750 tests | Semana 36 |
| 19-21 | MGN-007 | Ventas completo | 870 tests | Semana 42 |
| 22-23 | MGN-008 | Analítica completo | 970 tests | Semana 46 |
| 24-25 | MGN-009 | CRM completo | 1,050 tests | Semana 50 |
| 26-27 | MGN-010 | RRHH completo | 1,120 tests | Semana 54 |
| 28-29 | MGN-011 | Proyectos completo | 1,220 tests | Semana 58 |
| 30-31 | MGN-012 | Reportes completo | 1,280 tests | Semana 62 |
| 32 | MGN-013 | Portal completo | 1,340 tests | Semana 64 |
| 33-34 | MGN-014 | Mensajería completo | 1,461 tests | Semana 68 |
### Releases
**MVP Release (Sprint 23 - Semana 46):**
- Módulos P0 completos: MGN-001 a MGN-008 + MGN-014
- 970 tests pasando
- Performance testing aprobado
- Security audit aprobado
- UAT completado
**Post-MVP Release (Sprint 34 - Semana 68):**
- Todos los módulos completos
- 1,461 tests pasando
- Coverage >80%
- Zero P0/P1 bugs abiertos
---
## 6. CRITERIOS DE ENTRADA/SALIDA
### Entry Criteria (Sprint)
Criterios que deben cumplirse antes de iniciar testing en un sprint:
- [ ] User Stories definidas y estimadas (DoR cumplido)
- [ ] Criterios de aceptación escritos en formato Gherkin
- [ ] Test cases escritos en Test Plan del módulo
- [ ] Ambiente de QA disponible y funcional
- [ ] Test data preparado (fixtures + seeded data)
- [ ] Código implementado y mergeado a develop
- [ ] Unit tests escritos y pasando (>80% coverage)
- [ ] Integration tests escritos y pasando
- [ ] Code review completado
### Exit Criteria (Sprint)
Criterios que deben cumplirse para considerar sprint completado:
- [ ] Todas las US del sprint completas (DoD cumplido)
- [ ] Unit tests >80% coverage por módulo
- [ ] Integration tests 100% pasando
- [ ] E2E tests críticos 100% pasando
- [ ] Bugs P0/P1 resueltos (100%)
- [ ] Bugs P2 documentados en backlog
- [ ] Code review aprobado por Tech Lead
- [ ] Documentación actualizada (Swagger, README)
- [ ] Performance tests pasando (si aplica)
- [ ] Security scan pasando (sin vulnerabilidades críticas)
- [ ] Sprint review completado (PO acepta US)
- [ ] Retrospective completada (lecciones aprendidas documentadas)
### Definition of Ready (US)
Criterios para considerar una US "Ready for Development":
- [ ] User story escrita en formato "Como [rol], Quiero [acción], Para [beneficio]"
- [ ] Criterios de aceptación escritos en formato Gherkin
- [ ] Reglas de negocio documentadas
- [ ] Tareas técnicas desglosadas (backend, frontend, database)
- [ ] Story points estimados (poker planning)
- [ ] Sprint asignado según dependencias
- [ ] Mockups/wireframes disponibles (si aplica)
- [ ] Dependencias identificadas y resueltas
- [ ] Test data requirements documentados
- [ ] PO ha revisado y aprobado la US
### Definition of Done (US)
Criterios para considerar una US "Completada":
- [ ] Código implementado según Especificación Técnica
- [ ] Unit tests escritos y pasando (>80% coverage)
- [ ] Integration tests escritos y pasando
- [ ] E2E test escrito (si aplica a flujo crítico)
- [ ] Code review completado y aprobado
- [ ] QA manual ejecutado según Test Plan
- [ ] Bugs encontrados en QA resueltos
- [ ] Criterios de aceptación validados por PO
- [ ] Documentación actualizada (Swagger, README, CHANGELOG)
- [ ] Merge a develop completado
- [ ] CI pipeline pasando (sin errores)
- [ ] Security scan pasando (sin vulnerabilidades)
- [ ] Demo realizada en Sprint Review
---
## 7. HERRAMIENTAS
### 7.1 Testing Frameworks
**Backend Testing:**
- **Jest:** Unit tests, integration tests
- **Supertest:** API endpoint testing
- **TestContainers:** Database integration tests con PostgreSQL real
- **ts-mockito:** Mocking de dependencias
- **faker:** Generación de test data
**Frontend Testing:**
- **Vitest:** Unit tests (más rápido que Jest)
- **React Testing Library:** Component testing
- **Playwright:** E2E testing (cross-browser)
- **MSW (Mock Service Worker):** API mocking
- **@testing-library/user-event:** Simulación de interacciones de usuario
**API Testing:**
- **Postman:** Manual API testing, colecciones de tests
- **Newman:** Automated Postman tests en CI
- **OpenAPI Validator:** Contract testing contra spec OpenAPI
**Performance Testing:**
- **k6:** Load testing, stress testing
- **Lighthouse CI:** Frontend performance monitoring
- **PostgreSQL EXPLAIN ANALYZE:** Query performance profiling
**Security Testing:**
- **OWASP ZAP:** DAST (Dynamic Application Security Testing)
- **Snyk:** SAST + dependency vulnerability scanning
- **npm audit:** Dependency security check
- **PostgreSQL pg_audit:** Database audit logging
### 7.2 CI/CD
**Pipeline:** GitHub Actions
**Stages:**
1. **Build:** Compile TypeScript (backend + frontend)
2. **Lint:** ESLint + Prettier
3. **Unit Tests:** Jest + Vitest (<2 min)
4. **Integration Tests:** Supertest + RTL (<10 min)
5. **Security Scan:** Snyk + npm audit
6. **Code Coverage:** Codecov upload
7. **Quality Gate:** SonarQube (coverage >80%, no critical bugs)
8. **E2E Tests:** Playwright nightly builds
9. **Deploy:** Auto deploy a QA (si todos los checks pasan)
**Quality Gates (SonarQube):**
- Coverage: >80% (bloqueante)
- Duplicated code: <3%
- Code smells: <10 per 1000 LOC
- Bugs: 0 critical, 0 major
- Vulnerabilities: 0 critical, 0 major
- Security hotspots: Review required
**Code Coverage (Codecov):**
- Reporte en cada PR con diff coverage
- Badge en README con coverage %
- Bloqueo de PR si coverage disminuye >2%
### 7.3 Test Management
**Test Cases:** TestRail (opcional) o GitHub Issues con labels
- Label: `test-case`
- Label: `priority:P0`, `priority:P1`, `priority:P2`
- Label: `module:MGN-001`, etc.
**Bug Tracking:** Jira
- Proyecto: ERP-GEN
- Issue Types: Bug, Test, Sub-task
- Workflow: New -> In Progress -> Review -> Resolved -> Closed
- Custom fields: Severity, Found in Sprint, Module
**Test Data Management:**
- **Faker.js:** Generación de datos fake realistas
- **Factory pattern:** Builders para crear objetos de test
- **Fixtures:** JSON files en `test/fixtures/`
- **Seeding scripts:** `npm run seed:test`
---
## 8. RIESGOS Y MITIGACIONES
| Riesgo | Probabilidad | Impacto | Severidad | Mitigación |
|--------|--------------|---------|-----------|------------|
| **RLS no aísla tenants** | Media | Crítico | ALTA | Tests dedicados de tenant isolation en cada módulo. Audit manual de RLS policies. |
| **Performance degradation con escala** | Alta | Alto | ALTA | Load testing desde Sprint 1. Profiling de queries lentas con EXPLAIN ANALYZE. Índices optimizados. |
| **Data migration issues en producción** | Media | Alto | ALTA | Migration tests con prod clone. Rollback plan documentado. Blue-green deployment. |
| **Security vulnerabilities (OWASP Top 10)** | Media | Crítico | ALTA | OWASP ZAP en CI pipeline. Security audit pre-release. Penetration testing externo. |
| **Multi-browser compatibility issues** | Baja | Medio | MEDIA | BrowserStack testing pre-release. Progressive enhancement approach. Polyfills para features nuevos. |
| **Test suite demasiado lenta** | Alta | Medio | MEDIA | Parallelización de tests. Test categorization (smoke, regression). Optimización de fixtures. |
| **Flaky E2E tests** | Alta | Medio | MEDIA | Playwright auto-wait. Retry logic (max 2 retries). Debugging traces en failures. Evitar sleeps hardcoded. |
| **Insuficiente test data en QA** | Media | Medio | MEDIA | Anonymization automática de prod data. Refresh semanal. Monitoring de data freshness. |
| **Coverage artificialmente alto** | Media | Alto | ALTA | Code review de tests. Mutation testing (Stryker.js). Coverage de branches, no solo statements. |
| **Technical debt en tests** | Alta | Medio | MEDIA | Refactor continuo. Test code review igual que prod code. DRY principle en test utilities. |
### Mitigaciones Proactivas
**Tenant Isolation:**
- Test suite dedicada: `tenant-isolation.spec.ts`
- Test cases: Crear registro en tenant A, intentar acceder desde tenant B, verificar 403
- Ejecutar en cada módulo que toque datos multi-tenant
- Manual audit de RLS policies por DBA antes de producción
**Performance:**
- Load testing con k6 desde Sprint 1 (baseline)
- Métricas de performance en dashboard (Grafana + Prometheus)
- Alertas si p95 >300ms o throughput <1000 req/s
- Profiling mensual de queries top 10 más lentas
**Security:**
- OWASP ZAP scan en CI pipeline (bloqueante si crítico)
- Snyk scan de dependencias (bloqueante si crítico)
- Penetration testing externo pre-MVP release
- Security champion en equipo (training OWASP Top 10)
---
## 9. MÉTRICAS Y REPORTES
### 9.1 Métricas de Calidad (KPIs)
**Code Coverage:**
- **Objetivo:** >80% (backend y frontend)
- **Actual:** Track en Codecov
- **Reporte:** Badge en README + dashboard semanal
- **Alert:** Si coverage disminuye >2% en PR
**Test Pass Rate:**
- **Objetivo:** >95%
- **Actual:** Track en CI pipeline (GitHub Actions)
- **Reporte:** Dashboard en Grafana
- **Alert:** Si pass rate <90% en 2 sprints consecutivos
**Bug Density:**
- **Objetivo:** <1 bug/100 LOC
- **Actual:** Total bugs / Total LOC * 100
- **Reporte:** Informe mensual de QA
- **Alert:** Si bug density >2 bugs/100 LOC
**Defect Escape Rate:**
- **Objetivo:** <5%
- **Actual:** Bugs en prod / Total bugs * 100
- **Reporte:** Informe trimestral
- **Alert:** Si defect escape rate >10%
**MTTD (Mean Time to Detect):**
- **Objetivo:** <1 día
- **Actual:** Promedio de tiempo entre introducción de bug y detección
- **Reporte:** Informe mensual
- **Alert:** Si MTTD >3 días
**MTTR (Mean Time to Resolve):**
- **Objetivo:** <3 días para P0/P1
- **Actual:** Promedio de tiempo entre detección y resolución
- **Reporte:** Informe mensual
- **Alert:** Si MTTR >5 días para P0
**Automated Test Coverage:**
- **Objetivo:** >70% de tests automatizados
- **Actual:** Automated tests / Total tests * 100
- **Reporte:** Informe trimestral
- **Alert:** Si coverage automatizado <60%
### 9.2 Métricas de Performance
**Response Time (API):**
- **Objetivo:** p95 <300ms
- **Actual:** Track con k6 load tests
- **Reporte:** Dashboard en Grafana (real-time)
- **Alert:** Si p95 >500ms
**Page Load Time (Frontend):**
- **Objetivo:** p95 <2s
- **Actual:** Track con Lighthouse CI
- **Reporte:** Dashboard en Grafana
- **Alert:** Si p95 >3s
**Throughput:**
- **Objetivo:** >1000 req/s en peak load
- **Actual:** Track con k6 load tests
- **Reporte:** Informe mensual
- **Alert:** Si throughput <500 req/s
**Error Rate:**
- **Objetivo:** <1% en peak load
- **Actual:** Track con APM (Application Performance Monitoring)
- **Reporte:** Dashboard en Grafana (real-time)
- **Alert:** Si error rate >5%
### 9.3 Reportes
**Daily Test Execution Report (Automated):**
- Enviado por email a QA team + Tech Lead
- Contenido:
- Total tests ejecutados
- Pass rate
- Failed tests (con links a logs)
- Flaky tests (tests que fallan intermitentemente)
- Duración de test suite
**Weekly Quality Dashboard:**
- Dashboard en Grafana (visible 24/7)
- Contenido:
- Code coverage trend (línea de tiempo)
- Bug count por severidad (P0, P1, P2, P3)
- Bug count por módulo
- Velocity (SP completados por sprint)
- Defect density trend
- MTTD / MTTR trend
**Sprint Test Summary Report:**
- Presentado en Sprint Review
- Contenido:
- US completadas vs planificadas
- Total tests escritos en el sprint
- Bugs encontrados y resueltos
- Coverage alcanzado
- Bloqueadores y riesgos
- Lecciones aprendidas
**Release Go/No-Go Decision Report:**
- Documento formal pre-release
- Contenido:
- Checklist de exit criteria (100% completado)
- Resumen de testing ejecutado
- Bugs abiertos por severidad
- Performance test results
- Security audit results
- Recomendación: GO / NO-GO
- Firmado por: QA Lead, Tech Lead, Product Owner
---
## 10. ROLES Y RESPONSABILIDADES
| Rol | Responsabilidades |
|-----|-------------------|
| **QA Lead** | - Definir estrategia de testing global<br>- Crear Master Test Plan<br>- Coordinar testing entre módulos<br>- Aprobar exit criteria de releases<br>- Reportar métricas de calidad<br>- Gestionar equipo de QA |
| **QA Engineer** | - Crear test cases por módulo<br>- Ejecutar testing manual<br>- Escribir E2E tests (Playwright)<br>- Reportar bugs en Jira<br>- Ejecutar regression testing<br>- Participar en UAT con PO |
| **Developer (Backend)** | - Escribir unit tests (Jest)<br>- Escribir integration tests (Supertest)<br>- Code review de tests de pares<br>- Resolver bugs P0/P1<br>- Documentar APIs en Swagger<br>- Optimizar queries lentas |
| **Developer (Frontend)** | - Escribir unit tests (Vitest)<br>- Escribir component tests (RTL)<br>- Code review de tests de pares<br>- Resolver bugs P0/P1<br>- Optimizar performance frontend<br>- Implementar accessibility |
| **Tech Lead** | - Code review de PRs<br>- Aprobar architecture decisions<br>- Configurar quality gates<br>- Monitorear code coverage<br>- Resolver bloqueadores técnicos<br>- Mentorear equipo en best practices |
| **Product Owner** | - Definir criterios de aceptación<br>- Participar en UAT (Sprint Review)<br>- Aprobar US como "Done"<br>- Priorizar bugs en backlog<br>- Decidir Go/No-Go en releases<br>- Representar stakeholders |
| **DevOps Engineer** | - Configurar CI/CD pipeline<br>- Mantener ambientes (QA, Staging, Prod)<br>- Configurar monitoring (Grafana, Prometheus)<br>- Automatizar deployment<br>- Gestionar secrets y credentials<br>- Backup/recovery procedures |
| **DBA** | - Revisar schemas y migraciones<br>- Optimizar queries lentas<br>- Configurar índices<br>- Auditar RLS policies<br>- Backup/recovery testing<br>- Performance tuning de PostgreSQL |
| **Security Specialist** | - Ejecutar security audits<br>- Configurar OWASP ZAP scans<br>- Revisar vulnerabilidades (Snyk)<br>- Penetration testing pre-release<br>- Security training para equipo<br>- Incident response plan |
---
## 11. REFERENCIAS
**Documentación del Proyecto:**
- [ADR-010: Testing Strategy](../adr/ADR-010-testing-strategy.md)
- [User Stories](../03-user-stories/)
- [Requerimientos Funcionales](../02-modelado/requerimientos-funcionales/)
- [Especificaciones Técnicas Backend](../02-modelado/especificaciones-tecnicas/backend/)
- [Especificaciones Técnicas Frontend](../02-modelado/especificaciones-tecnicas/frontend/)
- [Matrices de Trazabilidad](../02-modelado/trazabilidad/)
**Test Plans por Módulo:**
- [TEST-PLAN-MGN-001: Fundamentos](./TEST-PLAN-MGN-001-fundamentos.md)
- [TEST-PLAN-MGN-002: Empresas](./TEST-PLAN-MGN-002-empresas.md)
- [TEST-PLAN-MGN-003: Catálogos](./TEST-PLAN-MGN-003-catalogos.md)
- [TEST-PLAN-MGN-004: Financiero](./TEST-PLAN-MGN-004-financiero.md)
- [TEST-PLAN-MGN-005: Inventario](./TEST-PLAN-MGN-005-inventario.md)
- [TEST-PLAN-MGN-006: Compras](./TEST-PLAN-MGN-006-compras.md)
- [TEST-PLAN-MGN-007: Ventas](./TEST-PLAN-MGN-007-ventas.md)
- [TEST-PLAN-MGN-008: Analítica](./TEST-PLAN-MGN-008-analitica.md)
- [TEST-PLAN-MGN-009: CRM](./TEST-PLAN-MGN-009-crm.md)
- [TEST-PLAN-MGN-010: RRHH](./TEST-PLAN-MGN-010-rrhh.md)
- [TEST-PLAN-MGN-011: Proyectos](./TEST-PLAN-MGN-011-proyectos.md)
- [TEST-PLAN-MGN-012: Reportes](./TEST-PLAN-MGN-012-reportes.md)
- [TEST-PLAN-MGN-013: Portal](./TEST-PLAN-MGN-013-portal.md)
- [TEST-PLAN-MGN-014: Mensajería](./TEST-PLAN-MGN-014-mensajeria.md)
**Referencias Externas:**
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [WCAG 2.1 Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
- [Testing Library Best Practices](https://kentcdodds.com/blog/common-mistakes-with-react-testing-library)
- [Playwright Best Practices](https://playwright.dev/docs/best-practices)
- [Jest Best Practices](https://github.com/goldbergyoni/javascript-testing-best-practices)
---
## 12. APROBACIONES
### 12.1 Documento Revisado y Aprobado por:
**QA Lead:**
Nombre: _______________
Firma: _______________
Fecha: _______________
**Tech Lead:**
Nombre: _______________
Firma: _______________
Fecha: _______________
**Product Owner:**
Nombre: _______________
Firma: _______________
Fecha: _______________
**DevOps Lead:**
Nombre: _______________
Firma: _______________
Fecha: _______________
### 12.2 Control de Cambios
| Versión | Fecha | Autor | Cambios |
|---------|-------|-------|---------|
| 1.0 | 2025-11-24 | QA Architect | Versión inicial |
| | | | |
| | | | |
---
**Fin del Master Test Plan**
**Documento:** MASTER-TEST-PLAN.md
**Versión:** 1.0
**Fecha de Creación:** 2025-11-24
**Última Actualización:** 2025-11-24
**Estado:** Draft - Pendiente de aprobación
**Próxima Revisión:** Sprint 1 Retrospective