# TEST PLANS - ERP GENÉRICO

**Fecha:** 2025-11-24
**Versión:** 1.0
**Estado:** ✅ Completado
**Total Test Plans:** 15 archivos

---

## Resumen Ejecutivo

Este directorio contiene la **estrategia completa de testing** para el ERP Genérico, un sistema modular de 14 módulos que servirá como base para 3 ERPs especializados.

La estrategia incluye:
- **1 Master Test Plan:** Estrategia global, herramientas, ambientes, roles, métricas
- **14 Test Plans Modulares:** Uno por cada módulo (MGN-001 a MGN-014)
- **Total estimado:** ~1,461 tests (876 unit, 438 integration, 147 E2E)

---

## Índice de Test Plans

### Master Test Plan

| Archivo | Descripción | Tamaño |
|---------|-------------|--------|
| [MASTER-TEST-PLAN.md](./MASTER-TEST-PLAN.md) | Estrategia global de testing para el proyecto completo | 29 KB |

**Contenido del Master Test Plan:**
1. Introducción (propósito, alcance, objetivos de calidad)
2. Estrategia de Testing (testing pyramid, tipos de testing, niveles)
3. Ambientes de Testing (Development, CI/CD, QA, Staging, Production)
4. Test Cases por Módulo (resumen de 1,461 tests)
5. Schedule de Testing (34 sprints, 68 semanas)
6. Criterios de Entrada/Salida (Entry/Exit criteria, DoR/DoD)
7. Herramientas (Jest, Vitest, Playwright, k6, OWASP ZAP, Snyk, etc.)
8. Riesgos y Mitigaciones
9. Métricas y Reportes (KPIs, dashboards, reportes)
10. Roles y Responsabilidades

---

## Test Plans por Módulo

### Core Modules (P0 - MVP)

| Módulo | Archivo | US | Tests | SP | Prioridad | Sprints |
|--------|---------|-----|-------|-----|-----------|---------|
| MGN-001: Fundamentos | [TEST-PLAN-MGN-001-fundamentos.md](./TEST-PLAN-MGN-001-fundamentos.md) | 16 | 160 | 68 | P0 | 1-5 |
| MGN-002: Empresas | [TEST-PLAN-MGN-002-empresas.md](./TEST-PLAN-MGN-002-empresas.md) | 7 | 70 | 34 | P0 | 3-7 |
| MGN-003: Catálogos | [TEST-PLAN-MGN-003-catalogos.md](./TEST-PLAN-MGN-003-catalogos.md) | 8 | 80 | 29 | P0 | 5-6 |
| MGN-004: Financiero | [TEST-PLAN-MGN-004-financiero.md](./TEST-PLAN-MGN-004-financiero.md) | 18 | 180 | 81 | P0 | 7-11 |
| MGN-005: Inventario | [TEST-PLAN-MGN-005-inventario.md](./TEST-PLAN-MGN-005-inventario.md) | 14 | 140 | 66 | P0 | 12-15 |
| MGN-006: Compras | [TEST-PLAN-MGN-006-compras.md](./TEST-PLAN-MGN-006-compras.md) | 12 | 120 | 42 | P0/P1 | 16-18 |
| MGN-007: Ventas | [TEST-PLAN-MGN-007-ventas.md](./TEST-PLAN-MGN-007-ventas.md) | 12 | 120 | 45 | P0 | 19-21 |
| MGN-008: Analítica | [TEST-PLAN-MGN-008-analitica.md](./TEST-PLAN-MGN-008-analitica.md) | 10 | 100 | 35 | P0 | 22-23 |
| MGN-014: Mensajería | [TEST-PLAN-MGN-014-mensajeria.md](./TEST-PLAN-MGN-014-mensajeria.md) | 12 | 120 | 47 | P0 | 33-34 |

**Subtotal Core:** 109 US, 1,090 tests, 447 SP

---

### Complementary Modules (P1 - Post-MVP)

| Módulo | Archivo | US | Tests | SP | Prioridad | Sprints |
|--------|---------|-----|-------|-----|-----------|---------|
| MGN-009: CRM | [TEST-PLAN-MGN-009-crm.md](./TEST-PLAN-MGN-009-crm.md) | 8 | 80 | 31 | P1 | 24-25 |
| MGN-010: RRHH | [TEST-PLAN-MGN-010-rrhh.md](./TEST-PLAN-MGN-010-rrhh.md) | 7 | 70 | 29 | P1 | 26-27 |
| MGN-011: Proyectos | [TEST-PLAN-MGN-011-proyectos.md](./TEST-PLAN-MGN-011-proyectos.md) | 10 | 100 | 40 | P1 | 28-29 |
| MGN-012: Reportes | [TEST-PLAN-MGN-012-reportes.md](./TEST-PLAN-MGN-012-reportes.md) | 6 | 60 | 39 | P1 | 30-31 |
| MGN-013: Portal | [TEST-PLAN-MGN-013-portal.md](./TEST-PLAN-MGN-013-portal.md) | 6 | 60 | 29 | P1 | 32 |

**Subtotal Complementary:** 37 US, 370 tests, 168 SP

---

## Resumen de Testing

### Métricas Globales

| Métrica | Valor | Objetivo |
|---------|-------|----------|
| **Total Módulos** | 14 | - |
| **Total User Stories** | 147 | - |
| **Total Story Points** | 673 SP | - |
| **Total Tests Estimados** | 1,461 | - |
| **Unit Tests** | 876 (60%) | >80% coverage |
| **Integration Tests** | 438 (30%) | 100% endpoints |
| **E2E Tests** | 147 (10%) | Flujos críticos |

### Distribución de Tests por Tipo

**Unit Tests (876):**
- Backend services: 350 tests (40%)
- Backend controllers: 175 tests (20%)
- Backend helpers/utils: 131 tests (15%)
- Frontend components: 131 tests (15%)
- Frontend hooks: 89 tests (10%)

**Integration Tests (438):**
- API endpoints: 263 tests (60%)
- Database transactions: 88 tests (20%)
- Component + API: 66 tests (15%)
- State management: 21 tests (5%)

**E2E Tests (147):**
- Happy paths: 88 tests (60%)
- Error paths: 37 tests (25%)
- Edge cases: 22 tests (15%)

### Timeline

- **Duración total:** 34 sprints (68 semanas)
- **MVP Release:** Sprint 23 (Semana 46) - 970 tests
- **Full Release:** Sprint 34 (Semana 68) - 1,461 tests

---

## Estructura de un Test Plan Modular

Cada Test Plan de módulo sigue esta estructura estandarizada:

```markdown
1. RESUMEN DEL MÓDULO
   - Descripción
   - Funcionalidades principales
   - Dependencias

2. ALCANCE DEL TESTING
   - En alcance
   - Fuera de alcance
   - Assumptions

3. ESTRATEGIA DE TESTING
   - Unit tests (backend + frontend)
   - Integration tests (API + DB)
   - E2E tests (user journeys)

4. TEST CASES
   - Funcionales (críticos priorizados)
   - No funcionales (performance, security)

5. DATOS DE PRUEBA
   - Test data requirements
   - Seed scripts

6. AMBIENTE DE TESTING
   - Configuración (DB, backend, frontend)
   - URLs
   - Environment variables

7. SCHEDULE
   - Timeline por sprint
   - Actividades y responsables

8. ENTRY/EXIT CRITERIA
   - Entry criteria
   - Exit criteria
   - DoR / DoD

9. DEFECT MANAGEMENT
   - Severidad de bugs (P0-P3)
   - Bug report template
   - SLAs

10. RIESGOS ESPECÍFICOS
    - Riesgos identificados
    - Probabilidad e impacto
    - Mitigaciones

11. MÉTRICAS
    - Test execution metrics
    - Defect metrics
    - Coverage metrics

12. SIGN-OFF
    - Approvals (QA, Tech Lead, PO)

13. REFERENCIAS
    - Links a US, RFs, ETs, Traceability
```

---

## Herramientas de Testing

### Testing Frameworks

**Backend:**
- Jest: Unit tests
- Supertest: API integration tests
- TestContainers: Database integration tests

**Frontend:**
- Vitest: Unit tests
- React Testing Library: Component tests
- Playwright: E2E tests

**API:**
- Postman/Newman: Contract testing

**Performance:**
- k6: Load testing

**Security:**
- OWASP ZAP: DAST
- Snyk: SAST + dependency scanning

### CI/CD

**Pipeline:** GitHub Actions

**Stages:**
1. Build (compile TypeScript)
2. Lint (ESLint + Prettier)
3. Unit Tests (<2 min)
4. Integration Tests (<10 min)
5. Security Scan (Snyk + npm audit)
6. Code Coverage (Codecov)
7. Quality Gate (SonarQube >80% coverage)
8. E2E Tests (nightly builds)
9. Deploy to QA (auto if all pass)

---

## Ambientes de Testing

| Ambiente | Propósito | Deploy | Data | 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 |

---

## Criterios de Calidad

### Coverage Objectives

- **Code coverage:** >80% (backend y frontend)
- **API endpoint coverage:** 100%
- **E2E coverage:** 100% flujos críticos
- **Automated tests:** >70%

### 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

### Performance Targets

- **Response time:** <300ms (p95) para APIs
- **Page load time:** <2s (p95) para frontend
- **Throughput:** >1000 req/s en peak load
- **Error rate:** <1% en peak load

---

## Roles y Responsabilidades

| Rol | Responsabilidades |
|-----|-------------------|
| **QA Lead** | Estrategia de testing, coordinación, reportes, quality gates |
| **QA Engineer** | Crear test cases, ejecutar testing manual, escribir E2E tests |
| **Developer** | Escribir unit e integration tests, resolver bugs |
| **Tech Lead** | Code review, architecture decisions, quality gates |
| **Product Owner** | Definir criterios de aceptación, UAT, Go/No-Go decisions |
| **DevOps** | CI/CD pipeline, ambientes, monitoring |

---

## Próximos Pasos

### Inmediato (Sprint 1)

1. **Aprobar Master Test Plan:** Revisión y sign-off por QA Lead, Tech Lead, PO
2. **Setup de Ambientes:** Configurar QA, CI/CD, test data
3. **Setup de Herramientas:** Jest, Vitest, Playwright, k6, OWASP ZAP
4. **Kickoff Sprint 1:** Iniciar implementación de MGN-001 (Fundamentos)

### Corto Plazo (Sprint 1-5)

5. **Implementar MGN-001:** Auth, users, roles, multi-tenancy con testing completo
6. **Establecer Baselines:** Performance baselines, coverage baselines
7. **CI/CD Pipeline:** Configurar GitHub Actions con quality gates
8. **Documentar Lecciones:** Retrospectives, ajustes a test plans

### Mediano Plazo (Sprint 6-23)

9. **MVP Release:** Completar módulos P0 (MGN-001 a MGN-008 + MGN-014)
10. **Performance Testing:** Load testing con k6 en staging
11. **Security Audit:** Penetration testing externo
12. **UAT:** User Acceptance Testing con stakeholders

### Largo Plazo (Sprint 24-34)

13. **Post-MVP:** Completar módulos P1 (MGN-009 a MGN-013)
14. **Full Release:** Release completo con 1,461 tests pasando
15. **Production Monitoring:** Setup de APM, alertas, dashboards
16. **Continuous Improvement:** Refactor tests, optimizar suite, mantener coverage

---

## Referencias

**Documentación del Proyecto:**
- [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/)

**ADRs (Architecture Decision Records):**
- [ADR-010: Testing Strategy](../adr/ADR-010-testing-strategy.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)

---

## Equipo

**QA Architect / Test Strategy Lead:** TBD
**Fecha de Creación:** 2025-11-24
**Estado:** ✅ Completado (15/15 Test Plans)
**Próxima Revisión:** Sprint 1 Kickoff

---

**Documento:** README.md
**Versión:** 1.0
**Fecha:** 2025-11-24
**Estado:** ✅ Completado
