erp-core/docs/06-test-plans/TEST-PLAN-MGN-004-financiero.md

9.6 KiB

TEST PLAN - MGN-004: Financiero Básico

Módulo: MGN-004 - Financiero Básico Sprint: Sprint 7-11 (Semanas 13-22) Story Points: 81 SP User Stories: 18 US Fecha: 2025-11-24 QA Owner: TBD Estado: Draft


1. RESUMEN DEL MÓDULO

1.1 Descripción

El módulo MGN-004 Financiero Básico es el núcleo contable del ERP. Gestiona plan de cuentas, journals contables, asientos contables, impuestos, facturas de clientes y proveedores, pagos, conciliación bancaria y reportes financieros (Balance y P&L).

Este es un módulo crítico (P0) y complejo, con 81 SP y 18 User Stories.

1.2 Funcionalidades Principales

  1. Plan de Cuentas: Árbol de cuentas contables (activo, pasivo, patrimonio, ingresos, egresos)
  2. Journals Contables: Diarios de ventas, compras, banco, caja, misceláneos
  3. Asientos Contables: Registro de movimientos contables con balance débito-crédito
  4. Impuestos: Configuración de impuestos (IVA, retenciones, percepciones)
  5. Facturas de Cliente: Creación, validación, cancelación de facturas AR
  6. Facturas de Proveedor: Registro de facturas AP
  7. Pagos: Gestión de pagos y cobranzas, conciliación bancaria
  8. Reportes Financieros: Balance General, Estado de Resultados (P&L)

1.3 Dependencias

Módulos requeridos:

  • MGN-001: Fundamentos
  • MGN-002: Empresas
  • MGN-003: Catálogos (partners, monedas)

2. ALCANCE DEL TESTING

2.1 En Alcance

  • CRUD de plan de cuentas (chart of accounts)
  • Validación de balance débito-crédito en asientos
  • Journals contables (ventas, compras, banco, etc.)
  • Configuración de impuestos con múltiples tasas
  • Ciclo completo de factura de cliente (draft -> posted -> paid -> reconciled)
  • Ciclo completo de factura de proveedor
  • Registro de pagos y cobranzas
  • Conciliación bancaria
  • Reportes: Balance General, P&L
  • Multi-moneda (facturas en USD, EUR, etc.)
  • Cálculo automático de impuestos
  • Anulación y cancelación de facturas

2.2 Fuera de Alcance

  • Contabilidad analítica (MGN-008)
  • Presupuestos (Fase 2)
  • Cash flow forecasting (Fase 2)
  • Activos fijos (Fase 2)

3. ESTRATEGIA DE TESTING

3.1 Tipos de Tests

Unit Tests: 108 tests

Backend (72 tests):

  • AccountService: 15 tests (CRUD plan de cuentas, árbol)
  • JournalService: 10 tests (CRUD journals)
  • JournalEntryService: 20 tests (asientos, balance débito-crédito, validaciones)
  • TaxService: 12 tests (cálculo de impuestos, múltiples tasas)
  • InvoiceService: 15 tests (ciclo de vida de facturas)

Frontend (36 tests):

  • AccountTree component: 8 tests
  • JournalEntryForm component: 10 tests
  • InvoiceForm component: 10 tests
  • BalanceReport component: 8 tests

Integration Tests: 54 tests

  1. Accounts API: 10 tests
  2. Journals API: 8 tests
  3. Journal Entries API: 15 tests (crítico: balance validation)
  4. Taxes API: 6 tests
  5. Customer Invoices API: 10 tests
  6. Vendor Bills API: 5 tests

E2E Tests: 18 tests

  1. Crear plan de cuentas argentino (activo, pasivo, etc.)
  2. Crear journal de ventas con secuencia
  3. Crear asiento contable, validar balance
  4. Configurar impuesto IVA 21%
  5. Crear factura de cliente con IVA, validar total
  6. Validar que factura genera asiento contable automático
  7. Registrar pago de factura, conciliar
  8. Registrar factura de proveedor
  9. Generar reporte Balance General
  10. Generar reporte P&L

4. TEST CASES (CRÍTICOS)

4.1 Casos de Prueba Funcionales

TC-MGN-004-001: Balance Débito-Crédito en Asientos

Prioridad: P0 Tipo: Functional Nivel: Integration

Precondiciones:

  • Cuentas contables creadas

Pasos:

  1. POST /api/v1/journal-entries con líneas:
    • Cuenta Caja (debe): 1000
    • Cuenta Ventas (haber): 900
    • Cuenta IVA (haber): 100

Resultado Esperado:

  • Asiento se crea (débito 1000 = crédito 1000)
  • Si débito != crédito, retorna 400 "Asiento desbalanceado"

Criterios de Aceptación Validados:

  • AC-001: Sistema valida balance débito-crédito
  • AC-002: No permite guardar asientos desbalanceados

TC-MGN-004-002: Factura de Cliente Genera Asiento Contable

Prioridad: P0 Tipo: Functional Nivel: E2E

Precondiciones:

  • Cliente "ABC Corp" existe
  • Producto "Laptop" con precio 1000 existe
  • Impuesto IVA 21% configurado

Pasos:

  1. Crear factura de cliente:
    • Cliente: ABC Corp
    • Línea: Laptop x 1 = 1000
    • IVA: 21% = 210
    • Total: 1210
  2. Validar factura (cambiar estado a "posted")
  3. GET /api/v1/journal-entries?invoice_id=:id

Resultado Esperado:

  • Factura cambia a estado "posted"
  • Asiento contable se genera automáticamente:
    • Cuenta Clientes (debe): 1210
    • Cuenta Ventas (haber): 1000
    • Cuenta IVA Débito Fiscal (haber): 210
  • Asiento está balanceado (1210 = 1210)

Criterios de Aceptación Validados:

  • AC-003: Factura validada genera asiento contable
  • AC-004: Asiento incluye impuestos calculados correctamente

TC-MGN-004-003: Pago de Factura y Conciliación

Prioridad: P0 Tipo: Functional Nivel: E2E

Precondiciones:

  • Factura de cliente "INV-001" con total 1210, estado "posted"

Pasos:

  1. Registrar pago:
    • Factura: INV-001
    • Monto: 1210
    • Método: Transferencia bancaria
    • Cuenta destino: Banco Santander
  2. Conciliar pago con factura

Resultado Esperado:

  • Pago se registra en payments table
  • Asiento contable de pago se genera:
    • Banco Santander (debe): 1210
    • Cuenta Clientes (haber): 1210
  • Factura cambia a estado "paid"
  • Payment.reconciled = true

Criterios de Aceptación Validados:

  • AC-005: Pago se registra correctamente
  • AC-006: Factura se marca como pagada
  • AC-007: Asiento de pago se genera

TC-MGN-004-004: Reporte Balance General

Prioridad: P0 Tipo: Functional Nivel: E2E

Precondiciones:

  • Múltiples asientos contables registrados
  • Cuentas de activo, pasivo, patrimonio con saldos

Pasos:

  1. GET /api/v1/reports/balance-sheet?date=2025-11-24

Resultado Esperado:

  • Reporte agrupa cuentas por tipo:
    • ACTIVO: suma de saldos deudores
    • PASIVO: suma de saldos acreedores
    • PATRIMONIO: suma de saldos acreedores
  • Balance: ACTIVO = PASIVO + PATRIMONIO
  • Formato JSON para frontend + PDF export

Criterios de Aceptación Validados:

  • AC-008: Balance General muestra activo, pasivo, patrimonio
  • AC-009: ACTIVO = PASIVO + PATRIMONIO (ecuación fundamental)

TC-MGN-004-005: Cálculo de Impuestos Múltiples

Prioridad: P0 Tipo: Functional Nivel: Integration

Precondiciones:

  • Impuesto IVA 21% configurado
  • Impuesto Percepción IIBB 3% configurado
  • Producto "Laptop" con ambos impuestos

Pasos:

  1. POST /api/v1/invoices con línea:
    • Producto: Laptop
    • Precio: 1000
    • Cantidad: 1

Resultado Esperado:

  • Subtotal: 1000
  • IVA 21%: 210 (sobre 1000)
  • Percepción IIBB 3%: 30 (sobre 1000)
  • Total: 1240
  • Detalle de impuestos en invoice_taxes table

Criterios de Aceptación Validados:

  • AC-010: Sistema calcula múltiples impuestos
  • AC-011: Base imponible correcta para cada impuesto

4.2 Casos de Prueba No Funcionales

TC-MGN-004-PERF-001: Performance de Balance General

Tipo: Performance Herramienta: k6

Escenario:

  • 100,000 asientos contables
  • 1,000 cuentas contables
  • Período: 12 meses

Criterios de Éxito:

  • p95: <2s
  • Query optimizado con índices
  • Agregación en BD (no en app layer)

5. DATOS DE PRUEBA

5.1 Test Data Requirements

Plan de Cuentas (50 cuentas):

  • 1.1 ACTIVO
    • 1.1.1 Activo Corriente
      • 1.1.1.1 Caja
      • 1.1.1.2 Bancos
      • 1.1.1.3 Clientes
  • 2.1 PASIVO
    • 2.1.1 Pasivo Corriente
      • 2.1.1.1 Proveedores
      • 2.1.1.2 IVA Débito Fiscal
  • 3.1 PATRIMONIO
  • 4.1 INGRESOS
    • 4.1.1 Ventas
  • 5.1 EGRESOS
    • 5.1.1 Costo de Ventas

Journals:

  • Ventas (SALES)
  • Compras (PURCHASES)
  • Banco (BANK)
  • Caja (CASH)
  • Misceláneos (MISC)

Impuestos:

  • IVA 21%
  • IVA 10.5%
  • Percepción IIBB 3%
  • Retención IVA 10%

Facturas de Prueba (20):

  • 10 facturas de cliente (estados: draft, posted, paid)
  • 10 facturas de proveedor (estados: draft, posted, paid)

6. SCHEDULE

Sprint RF Actividad Duración
Sprint 7-8 RF-001, RF-002, RF-003 Plan cuentas, Journals, Asientos 4 sem
Sprint 9 RF-004 Impuestos 2 sem
Sprint 10 RF-005, RF-006 Facturas Cliente/Proveedor 2 sem
Sprint 11 RF-007, RF-008 Pagos, Reportes 2 sem

7. RIESGOS ESPECÍFICOS DEL MÓDULO

Riesgo Probabilidad Impacto Mitigación
Asientos desbalanceados Alta Crítico Validación estricta. Constraint en BD. Tests exhaustivos.
Cálculo de impuestos incorrecto Media Alto Unit tests con casos reales. Revisión por contador.
Performance de reportes Alta Medio Índices optimizados. Materializar saldos. Cache.
Conciliación bancaria compleja Media Alto Tests con casos reales. Importación de extractos.

8. MÉTRICAS

Total test cases: 180

  • Unit: 108
  • Integration: 54
  • E2E: 18

Executed: 0/180 (0%) Pass rate: 0% (objetivo: >95%)


9. SIGN-OFF

QA Engineer: _______________ Date: _______ Tech Lead: _______________ Date: _______ Product Owner: _______________ Date: _______


10. REFERENCIAS


Versión: 1.0 Última actualización: 2025-11-24 Estado: Draft