← Volver al Hub

PLAN DE PRUEBAS

API de Homebanking - Estrategia Integral de Testing

1. Objetivo y Alcance

1.1 Objetivo General

Validar la funcionalidad, seguridad, rendimiento y confiabilidad de la API REST de Homebanking, asegurando que todos los endpoints cumplan con las especificaciones funcionales, manejen correctamente casos de éxito y error, y proporcionen respuestas consistentes bajo diferentes condiciones de carga.

1.2 Objetivos Específicos

1.3 Alcance de Pruebas

Módulo Endpoints Casos de Prueba Prioridad
Cliente 2 8 ALTA
Cuentas 1 5 ALTA
Transferencias 3 18 CRÍTICA
Pagos 2 12 ALTA
Plazos Fijos 3 15 MEDIA
Préstamos 2 14 MEDIA
Tarjetas Virtuales 3 10 MEDIA
Transacciones 1 6 ALTA
Sistema 1 3 BAJA
TOTAL 91 casos -

2. Estrategia de Pruebas

2.1 Niveles de Testing

Pruebas Funcionales (Prioridad 1)

Pruebas de Integración (Prioridad 2)

Pruebas de Rendimiento (Prioridad 3)

2.2 Herramientas

Tipo Herramienta Uso
Automatización Playwright Suite principal de pruebas automatizadas
Manual Swagger UI Pruebas exploratorias y validación manual
Performance Locust / K6 Pruebas de carga y stress
Reportes Playwright HTML Reporter Generación de reportes visuales

3. Ambiente de Pruebas

3.1 Configuración

Componente Detalle
Base URL https://homebanking-demo.onrender.com
Documentación /docs (Swagger UI)
Usuario de Prueba demo
Token Mock mock-token-demo
Cuentas Disponibles ACC001, ACC002, ACC003

3.2 Datos de Prueba

// Saldos Iniciales
ACC001 (Cuenta Corriente): $125,450.75
ACC002 (Caja de Ahorro):   $89,320.50
ACC003 (Tarjeta Crédito):  $45,000.00 (Límite: $150,000)

// Límites Operacionales
Transferencia Individual:  $50,000.00
Transferencia Diaria:      $100,000.00
Plazo Fijo Mínimo:         $1,000.00
Préstamo Mínimo:           $10,000.00
Préstamo Máximo:           $500,000.00

4. Casos de Prueba por Módulo

4.1 Módulo de Transferencias (CRÍTICO)

TC-TRF-001 CRÍTICA

Título: Transferencia exitosa entre cuentas propias

Precondiciones: Usuario autenticado, saldo suficiente en ACC001

Datos de Entrada:

{
  "cuenta_origen": "ACC001",
  "cuenta_destino": "ACC002",
  "monto": 5000.00,
  "motivo": "Transferencia de prueba",
  "tipo": "propia"
}

Resultado Esperado:

  • Status Code: 200
  • Response: exito: true
  • Saldo ACC001 disminuye en $5,000
  • Se genera transacción con tipo "debit"
TC-TRF-002 CRÍTICA

Título: Rechazo por monto menor al mínimo

Datos de Entrada: monto: 0.50

Resultado Esperado:

  • Status Code: 200
  • Response: exito: false
  • Error: MONTO_INVALIDO
  • Mensaje: "El monto mínimo es $1"
TC-TRF-003 CRÍTICA

Título: Rechazo por exceder límite por transferencia

Datos de Entrada: monto: 55000.00

Resultado Esperado:

  • Error: LIMITE_EXCEDIDO
  • Mensaje: "Monto máximo por transferencia superado"
TC-TRF-004 ALTA

Título: Rechazo por límite diario excedido

Precondiciones: Ya se transfirieron $60,000 en el día

Datos de Entrada: monto: 45000.00

Resultado Esperado:

  • Error: LIMITE_DIARIO_EXCEDIDO
  • Mensaje: "Límite diario excedido"
TC-TRF-005 CRÍTICA

Título: Rechazo por saldo insuficiente

Datos de Entrada: monto: 200000.00 (mayor al saldo)

Resultado Esperado:

  • Error: FONDOS_INSUFICIENTES
  • Mensaje: "Saldo insuficiente"
TC-TRF-006 ALTA

Título: Transferencia a terceros con CBU válido

Datos de Entrada:

{
  "cuenta_destino": "0170009876543210987654",
  "tipo": "terceros",
  "monto": 3000.00
}

Resultado Esperado: Transferencia exitosa

TC-TRF-007 ALTA

Título: Rechazo por CBU inválido (menos de 10 caracteres)

Datos de Entrada: cuenta_destino: "123456"

Resultado Esperado: Error DESTINO_INVALIDO

4.2 Módulo de Plazos Fijos

TC-PF-001 ALTA

Título: Creación exitosa de plazo fijo a 90 días

Datos de Entrada:

{
  "cuenta_origen": "ACC001",
  "monto": 50000.00,
  "plazo_dias": 90
}

Resultado Esperado:

  • Plazo fijo creado con TNA 42%
  • Interés estimado: (50000 × 42 × 90) / (365 × 100) = $5,178.08
  • Saldo ACC001 disminuye en $50,000
  • Se genera transacción de débito
TC-PF-002 MEDIA

Título: Rechazo por monto menor al mínimo

Datos de Entrada: monto: 500.00

Resultado Esperado: Error MONTO_MINIMO

TC-PF-003 MEDIA

Título: Rechazo por exceder máximo de plazos fijos activos

Precondiciones: Usuario ya tiene 5 plazos fijos activos

Resultado Esperado: Error MAXIMO_ALCANZADO

TC-PF-004 ALTA

Título: Cancelación de plazo fijo antes de vencimiento

Precondiciones: Existe plazo fijo activo con ID conocido

Resultado Esperado:

  • Plazo fijo marcado como "cancelled"
  • Monto devuelto a cuenta (sin intereses)
  • Se genera transacción de crédito

4.3 Módulo de Préstamos

TC-LOAN-001 ALTA

Título: Solicitud exitosa de préstamo a 12 cuotas

Datos de Entrada:

{
  "monto": 200000.00,
  "cuotas": 12,
  "cuenta_destino": "ACC001"
}

Resultado Esperado:

  • Préstamo aprobado
  • Cuota mensual: (200000 × (1 + 0.65 × 1)) / 12 = $27,500
  • Monto acreditado en ACC001
TC-LOAN-002 MEDIA

Título: Rechazo por monto menor al mínimo

Datos de Entrada: monto: 5000.00

Resultado Esperado: Error MONTO_MINIMO

TC-LOAN-003 MEDIA

Título: Rechazo por cuotas no permitidas

Datos de Entrada: cuotas: 10 (no está en lista permitida)

Resultado Esperado: Error de validación

4.4 Módulo de Tarjetas Virtuales

TC-CARD-001 ALTA

Título: Generación exitosa de tarjeta virtual

Datos de Entrada: id_cuenta_asociada: "ACC001"

Resultado Esperado:

  • Tarjeta creada con número único (16 dígitos, inicia con 4)
  • CVV de 3 dígitos
  • Fecha vencimiento: +3 años
  • Estado: "active"
TC-CARD-002 MEDIA

Título: Rechazo por cuenta ya con tarjeta virtual

Precondiciones: ACC001 ya tiene tarjeta virtual activa

Resultado Esperado: Error YA_TIENE_TARJETA

TC-CARD-003 ALTA

Título: Eliminación exitosa de tarjeta virtual

Precondiciones: Existe tarjeta con ID conocido

Resultado Esperado: Tarjeta eliminada, no aparece en listado

4.5 Módulo de Pagos

TC-PAY-001 ALTA

Título: Pago exitoso de servicio de electricidad

Datos de Entrada:

{
  "id_servicio": "SRV001",
  "monto": 8500.00,
  "id_cuenta": "ACC001"
}

Resultado Esperado:

  • Pago procesado exitosamente
  • Comprobante generado con ID único
  • Saldo debitado de ACC001

5. Criterios de Aceptación

5.1 Criterios de Éxito

Criterio Meta Medición
Tasa de Aprobación ≥ 95% Casos pasados / Total casos
Casos Críticos 100% Todos los casos críticos deben pasar
Response Time < 2s (p95) 95% de requests bajo 2 segundos
Cobertura de Código ≥ 80% Líneas ejecutadas / Total líneas
Defectos Bloqueantes 0 Sin bugs críticos sin resolver

5.2 Criterios de Salida

6. Plan de Ejecución

6.1 Fases de Ejecución

Fase Duración Actividades Responsable
Fase 1: Preparación 2 días Setup ambiente, diseño casos, preparación datos QA Lead
Fase 2: Smoke Testing 1 día Validación básica de endpoints críticos QA Automation
Fase 3: Funcional 3 días Ejecución de suite completa automatizada QA Automation
Fase 4: Exploratoria 2 días Pruebas manuales, edge cases QA Manual
Fase 5: Performance 1 día Carga, stress, response time QA Performance
Fase 6: Regresión 1 día Re-ejecución de suite completa QA Automation
Fase 7: Reporte 1 día Consolidación de resultados, métricas QA Lead

6.2 Comandos de Ejecución

# Ejecutar suite completa
npx playwright test

# Ejecutar solo casos críticos
npx playwright test --grep @critical

# Ejecutar módulo específico
npx playwright test tests/transferencias.spec.js

# Modo debug
npx playwright test --debug

# Generar reporte HTML
npx playwright test --reporter=html

# Ejecutar con headed browser (ver ejecución)
npx playwright test --headed

7. Riesgos y Mitigación

Riesgo Probabilidad Impacto Mitigación
API en Render se duerme (free tier) Alta Medio Implementar warm-up request antes de suite
Datos en memoria se pierden Media Alto Usar endpoint /sistema/reset antes de cada suite
Timeouts por delays simulados Baja Bajo Configurar timeouts apropiados (5s)
Cambios en especificación Media Alto Mantener casos sincronizados con spec funcional

8. Entregables

8.1 Documentación

8.2 Métricas a Reportar

✅ Próximos Pasos:
  1. Revisar y aprobar este plan de pruebas
  2. Configurar ambiente de automatización
  3. Implementar casos de prueba en Playwright
  4. Ejecutar Fase 1: Smoke Testing
  5. Iterar según resultados
📌 Referencias: