223 lines
5.9 KiB
Markdown
223 lines
5.9 KiB
Markdown
# TEST PLAN - MGN-005: Inventario Básico
|
|
|
|
**Módulo:** MGN-005 - Inventario Básico
|
|
**Sprint:** Sprint 12-15 (Semanas 23-30)
|
|
**Story Points:** 66 SP
|
|
**User Stories:** 14 US
|
|
**Fecha:** 2025-11-24
|
|
**QA Owner:** TBD
|
|
**Estado:** Draft
|
|
|
|
---
|
|
|
|
## 1. RESUMEN DEL MÓDULO
|
|
|
|
### 1.1 Descripción
|
|
|
|
El módulo MGN-005 Inventario Básico gestiona productos, almacenes, ubicaciones, movimientos de stock, pickings (albaranes), trazabilidad con lotes/series, valoración de inventario (FIFO/Promedio) e inventarios físicos.
|
|
|
|
### 1.2 Funcionalidades Principales
|
|
|
|
1. **Productos:** CRUD de productos con variantes, BoM, proveedores
|
|
2. **Almacenes y Ubicaciones:** Gestión de warehouses con ubicaciones físicas
|
|
3. **Movimientos de Stock:** Registro de entradas, salidas, transferencias
|
|
4. **Pickings:** Albaranes de entrada y salida con confirmación
|
|
5. **Trazabilidad:** Lotes y números de serie para seguimiento
|
|
6. **Valoración de Inventario:** FIFO, promedio ponderado, costo estándar
|
|
7. **Inventario Físico:** Conteos y ajustes de stock
|
|
|
|
### 1.3 Dependencias
|
|
|
|
- MGN-001: Fundamentos
|
|
- MGN-002: Empresas
|
|
- MGN-003: Catálogos (UoM, categorías)
|
|
|
|
---
|
|
|
|
## 2. ALCANCE DEL TESTING
|
|
|
|
### 2.1 En Alcance
|
|
|
|
- ✅ CRUD de productos con variantes
|
|
- ✅ Gestión de almacenes y ubicaciones
|
|
- ✅ Movimientos de stock (entrada, salida, ajuste, transferencia)
|
|
- ✅ Pickings con workflow (draft -> confirmed -> done)
|
|
- ✅ Trazabilidad por lotes y números de serie
|
|
- ✅ Valoración FIFO y promedio ponderado
|
|
- ✅ Inventario físico y ajustes
|
|
- ✅ Niveles de stock (disponible, reservado, en tránsito)
|
|
- ✅ Reglas de reordenamiento (min/max stock)
|
|
|
|
### 2.2 Fuera de Alcance
|
|
|
|
- ❌ Dropshipping (Fase 2)
|
|
- ❌ Kitting/Desarmado (Fase 2)
|
|
- ❌ Cross-docking (Fase 2)
|
|
|
|
---
|
|
|
|
## 3. ESTRATEGIA DE TESTING
|
|
|
|
### 3.1 Tipos de Tests
|
|
|
|
#### Unit Tests: 84 tests
|
|
- ProductService: 20 tests
|
|
- StockMoveService: 25 tests
|
|
- PickingService: 15 tests
|
|
- ValuationService: 15 tests (FIFO, promedio)
|
|
- Frontend components: 9 tests
|
|
|
|
#### Integration Tests: 42 tests
|
|
- Products API: 12 tests
|
|
- Stock Moves API: 15 tests
|
|
- Pickings API: 10 tests
|
|
- Inventory Adjustments API: 5 tests
|
|
|
|
#### E2E Tests: 14 tests
|
|
1. Crear producto con variantes (color, talla)
|
|
2. Registrar entrada de stock (compra), validar stock disponible
|
|
3. Registrar salida de stock (venta), validar stock
|
|
4. Transferir stock entre ubicaciones
|
|
5. Crear picking de entrada, confirmar, validar movimientos
|
|
6. Valorar inventario con FIFO
|
|
7. Realizar inventario físico, ajustar diferencias
|
|
8. Trazabilidad: crear lote, rastrear movimientos
|
|
9. Stock negativo (debe ser prevenido)
|
|
10. Reserva de stock para orden de venta
|
|
|
|
---
|
|
|
|
## 4. TEST CASES (CRÍTICOS)
|
|
|
|
#### TC-MGN-005-001: Movimiento de Stock Actualiza Cantidad Disponible
|
|
**Prioridad:** P0
|
|
|
|
**Precondiciones:**
|
|
- Producto "Laptop" con stock inicial 0
|
|
- Ubicación "WH-01-A-001" existe
|
|
|
|
**Pasos:**
|
|
1. POST /api/v1/stock-moves (entrada de 10 unidades)
|
|
2. GET /api/v1/products/:id/stock
|
|
|
|
**Resultado Esperado:**
|
|
- Stock disponible: 10
|
|
- Movimiento registrado en stock_moves table
|
|
- Quant creado en stock_quants table
|
|
|
|
---
|
|
|
|
#### TC-MGN-005-002: Valoración FIFO Calcula Costo Correctamente
|
|
**Prioridad:** P0
|
|
|
|
**Precondiciones:**
|
|
- Producto "Laptop" con valoración FIFO
|
|
|
|
**Pasos:**
|
|
1. Entrada 10 unidades a $1000 c/u (costo total $10,000)
|
|
2. Entrada 5 unidades a $1200 c/u (costo total $6,000)
|
|
3. Salida 12 unidades
|
|
4. GET /api/v1/products/:id/valuation
|
|
|
|
**Resultado Esperado:**
|
|
- Costo de salida: (10 * $1000) + (2 * $1200) = $12,400
|
|
- Stock restante: 3 unidades a $1200
|
|
- Valor de inventario: 3 * $1200 = $3,600
|
|
|
|
---
|
|
|
|
#### TC-MGN-005-003: Stock Negativo es Prevenido
|
|
**Prioridad:** P0
|
|
|
|
**Precondiciones:**
|
|
- Producto "Laptop" con stock 5
|
|
|
|
**Pasos:**
|
|
1. POST /api/v1/stock-moves (salida de 10 unidades)
|
|
|
|
**Resultado Esperado:**
|
|
- Status code: 400 Bad Request
|
|
- Error: "Stock insuficiente. Disponible: 5, Requerido: 10"
|
|
- Movimiento no se crea
|
|
|
|
---
|
|
|
|
#### TC-MGN-005-004: Inventario Físico Ajusta Diferencias
|
|
**Prioridad:** P0
|
|
|
|
**Precondiciones:**
|
|
- Producto "Laptop" con stock teórico 100
|
|
|
|
**Pasos:**
|
|
1. Realizar conteo físico: 95 unidades
|
|
2. POST /api/v1/inventory-adjustments (diferencia: -5)
|
|
|
|
**Resultado Esperado:**
|
|
- Stock actualizado: 95
|
|
- Movimiento de ajuste registrado con motivo "Inventario físico"
|
|
- Valoración ajustada según diferencia
|
|
|
|
---
|
|
|
|
## 5. DATOS DE PRUEBA
|
|
|
|
**Productos (50):**
|
|
- 10 productos con variantes (laptop con variantes RAM/SSD)
|
|
- 20 productos simples
|
|
- 10 productos con trazabilidad (lote o serie)
|
|
- 10 productos con múltiples proveedores
|
|
|
|
**Almacenes (3):**
|
|
- WH-01 Buenos Aires (20 ubicaciones)
|
|
- WH-02 Córdoba (15 ubicaciones)
|
|
- WH-03 Rosario (10 ubicaciones)
|
|
|
|
**Movimientos de Stock (100):**
|
|
- 50 entradas (compras, ajustes)
|
|
- 40 salidas (ventas, ajustes)
|
|
- 10 transferencias entre ubicaciones
|
|
|
|
---
|
|
|
|
## 6. SCHEDULE
|
|
|
|
| Sprint | RF | Actividad | Duración |
|
|
|--------|-----|-----------|----------|
|
|
| Sprint 12-13 | RF-001, RF-002 | Productos, Almacenes | 4 sem |
|
|
| Sprint 14 | RF-003, RF-004 | Movimientos, Pickings | 2 sem |
|
|
| Sprint 15 | RF-005, RF-006, RF-007 | Trazabilidad, Valoración, Inventario | 2 sem |
|
|
|
|
---
|
|
|
|
## 7. RIESGOS ESPECÍFICOS
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
|--------|--------------|---------|------------|
|
|
| **Stock negativo** | Alta | Crítico | Validación estricta. Constraint en BD. |
|
|
| **Valoración FIFO incorrecta** | Media | Alto | Unit tests exhaustivos. Casos de prueba con contadores. |
|
|
| **Concurrencia en movimientos** | Alta | Alto | Row locking. Transacciones. Retry logic. |
|
|
|
|
---
|
|
|
|
## 8. MÉTRICAS
|
|
|
|
**Total test cases:** 140
|
|
- Unit: 84
|
|
- Integration: 42
|
|
- E2E: 14
|
|
|
|
---
|
|
|
|
## 9. REFERENCIAS
|
|
|
|
- [User Stories MGN-005](../../03-user-stories/mgn-005/)
|
|
- [RF MGN-005](../../02-modelado/requerimientos-funcionales/mgn-005/)
|
|
- [Traceability MGN-005](../../02-modelado/trazabilidad/TRACEABILITY-MGN-005.yaml)
|
|
- [Master Test Plan](./MASTER-TEST-PLAN.md)
|
|
|
|
---
|
|
|
|
**Versión:** 1.0
|
|
**Última actualización:** 2025-11-24
|
|
**Estado:** Draft
|