Este documento establece el Plan de Pruebas del sistema RutaCC, definiendo la estrategia, alcance, recursos y cronograma para asegurar la calidad del software antes de su lanzamiento a producción.
| Módulo | Alcance | Prioridad |
|---|---|---|
| Autenticación y Seguridad | Login, logout, sesiones, roles, permisos | Crítica |
| Gestión de Tenants | CRUD tenants, aislamiento de datos | Crítica |
| Gestión de Usuarios | CRUD usuarios, asignación de roles | Alta |
| Vehículos | CRUD vehículos, documentos, estados | Alta |
| Conductores | CRUD conductores, licencias, estados | Alta |
| Bodegas | CRUD bodegas, geolocalización | Media |
| Pedidos | CRUD pedidos, asignación a despachos | Alta |
| Despachos | Flujo completo: crear, planificar, iniciar, finalizar | Crítica |
| Combustible | Registro de cargas, asociación a despachos | Media |
| Mantenciones | Registro, seguimiento, costos | Media |
| Fallos | Registro, estados, impacto en vehículos | Media |
| Cobros | Registro, pagos, alertas | Media |
| Reportes | Dashboard, costos, alertas | Media |
| Tipo | Descripción | Herramienta |
|---|---|---|
| Funcionales | Validar que cada función cumple su requerimiento | Manual + Scripts |
| Seguridad | Verificar protección contra vulnerabilidades | OWASP ZAP, SQLMap |
| Rendimiento | Medir tiempos de respuesta y carga | JMeter, GTmetrix |
| Usabilidad | Evaluar experiencia de usuario | Pruebas con usuarios |
| Compatibilidad | Verificar en múltiples navegadores | BrowserStack |
| Regresión | Asegurar que cambios no rompen funcionalidad | Scripts automatizados |
| Aceptación | Validación final con el cliente | Manual |
| Ambiente | Propósito | Datos | Acceso |
|---|---|---|---|
| Local | Desarrollo y pruebas unitarias | Datos de prueba | Desarrolladores |
| Staging | Pruebas de integración y sistema | Copia anonimizada de producción | QA + Desarrolladores |
| Pre-Producción | Pruebas finales antes de deploy | Datos reales (solo lectura) | QA + Cliente |
| Producción | Sistema en vivo | Datos reales | Usuarios finales |
| ID | Caso de Prueba | Pasos | Resultado Esperado | Prioridad |
|---|---|---|---|---|
| TC-001 | Crear despacho exitosamente | 1. Login como despachador 2. Ir a Despachos 3. Crear nuevo despacho 4. Seleccionar bodega, vehículo, conductor 5. Guardar |
Despacho creado con estado "creada" y número de orden único | Crítica |
| TC-002 | Asignar pedidos a despacho | 1. Abrir despacho creado 2. Asignar pedidos pendientes 3. Guardar |
Pedidos asociados al despacho con estado "asignado" | Crítica |
| TC-003 | Planificar ruta de entrega | 1. Abrir planificador de ruta 2. Ordenar pedidos (drag & drop) 3. Guardar orden |
Pedidos actualizados con campo "orden" correcto | Alta |
| TC-004 | Iniciar despacho | 1. Ir a Despachos Inicio 2. Seleccionar despacho 3. Ingresar km de salida 4. Confirmar inicio |
Estado cambia a "en_ruta", vehículo y conductor también | Crítica |
| TC-005 | Marcar pedido como entregado | 1. En despacho en ruta 2. Seleccionar pedido 3. Marcar como entregado |
Pedido con estado "entregada" y hora real de llegada | Alta |
| TC-006 | Finalizar despacho | 1. Ir a Despachos Cierre 2. Seleccionar despacho 3. Ingresar km de llegada 4. Confirmar finalización |
Despacho "finalizada", vehículo y conductor "disponible" | Crítica |
| TC-007 | Cancelar despacho | 1. Seleccionar despacho 2. Cancelar |
Despacho "cancelada", recursos liberados | Media |
| ID | Caso de Prueba | Resultado Esperado |
|---|---|---|
| TC-010 | Crear vehículo con datos válidos | Vehículo creado exitosamente |
| TC-011 | Crear vehículo con patente duplicada | Error: patente ya existe |
| TC-012 | Editar vehículo | Datos actualizados correctamente |
| TC-013 | Desactivar vehículo | Estado cambia a "inactivo" |
| TC-014 | Registrar documentos del vehículo | Documentos asociados correctamente |
| TC-015 | Ver alertas de documentos próximos a vencer | Alertas mostradas en dashboard |
| ID | Caso de Prueba | Resultado Esperado |
|---|---|---|
| TC-020 | Crear conductor con RUT válido | Conductor creado exitosamente |
| TC-021 | Crear conductor con RUT duplicado | Error: RUT ya existe |
| TC-022 | Registrar licencia de conductor | Licencia asociada con vencimiento |
| TC-023 | Cambiar estado del conductor | Estado actualizado correctamente |
| ID | Caso de Prueba | Resultado Esperado |
|---|---|---|
| TC-030 | Ver dashboard con estadísticas del mes | Estadísticas mostradas correctamente |
| TC-031 | Generar reporte de costos mensual | Reporte con datos correctos por vehículo |
| TC-032 | Ver alertas de vencimiento | Documentos próximos a vencer listados |
| TC-033 | Ver cobros pendientes | Cobros no pagados mostrados |
| ID | Vulnerabilidad | Prueba | Criterio de Aceptación |
|---|---|---|---|
| SEC-001 | A01: Broken Access Control | Intentar acceder a endpoints sin autenticación | Sistema redirige a login o retorna 401 |
| SEC-002 | A01: Broken Access Control | Intentar acceder a datos de otro tenant | Sistema no muestra datos de otros tenants |
| SEC-003 | A03: Injection (SQL) | Inyectar SQL en campos de formulario | Sistema sanitiza y no ejecuta SQL inyectado |
| SEC-004 | A03: Injection (XSS) | Inyectar scripts en campos de texto | Sistema escapa caracteres y no ejecuta scripts |
| SEC-005 | A05: Security Misconfiguration | Verificar headers de seguridad | Headers presentes: CSP, X-Frame-Options, etc. |
| SEC-006 | A07: Authentication Failures | Intentar login con credenciales inválidas | Sistema no revela si usuario o password es incorrecto |
| SEC-007 | A07: Authentication Failures | Verificar cifrado de contraseñas | Contraseñas almacenadas con bcrypt (cost 12) |
| SEC-008 | A08: Software and Data Integrity | Verificar protección de archivos sensibles | No se puede acceder a config/database.php directamente |
| ID | Prueba | Resultado Esperado |
|---|---|---|
| MT-001 | Crear tenant A y tenant B con datos propios | Ambos tenants tienen datos independientes |
| MT-002 | Usuario de tenant A intenta acceder a datos de tenant B | Acceso denegado, no ve datos del otro tenant |
| MT-003 | Modificar tenant_id en request HTTP | Sistema ignora el cambio y usa el de la sesión |
| MT-004 | Eliminar tenant A | Solo se eliminan datos del tenant A, B permanece intacto |
| Métrica | Objetivo | Método de Medición |
|---|---|---|
| Tiempo de carga de página | < 2 segundos | Chrome DevTools, GTmetrix |
| Tiempo de respuesta API | < 500 ms | Postman, JMeter |
| Usuarios concurrentes | 100+ sin degradación | JMeter |
| Consultas SQL lentas | Ninguna > 1 segundo | Slow Query Log |
| Uso de memoria | < 256 MB por request | PHP memory_get_usage() |
| Escenario | Usuarios | Duración | Resultado Esperado |
|---|---|---|---|
| Carga normal | 50 | 15 min | Todos los requests exitosos |
| Carga pico | 100 | 15 min | Tiempo respuesta < 1s |
| Estrés | 200 | 15 min | Degradación controlada |
| Spike | 0 → 150 en 1 min | 10 min | Recuperación sin errores |
| ID | Integración | Prueba |
|---|---|---|
| INT-001 | Frontend ↔ Backend | Todas las páginas cargan datos correctamente |
| INT-002 | Backend ↔ Base de Datos | Todas las operaciones CRUD funcionan |
| INT-003 | Sistema ↔ OpenStreetMap | Mapas cargan y geocoding funciona |
| INT-004 | Sistema ↔ OSRM | Cálculo de rutas funciona |
| INT-005 | Módulo Despachos ↔ Pedidos | Asignación de pedidos a despachos |
| INT-006 | Módulo Vehículos ↔ Documentos | Documentos asociados a vehículos |
Después de cada cambio significativo, se ejecuta la suite de regresión que incluye:
Se recomienda automatizar las siguientes pruebas:
| Categoría | Criterio | Meta |
|---|---|---|
| Funcional | Casos de prueba críticos aprobados | 100% |
| Funcional | Casos de prueba de alta prioridad aprobados | ≥ 95% |
| Funcional | Casos de prueba de media prioridad aprobados | ≥ 90% |
| Seguridad | Vulnerabilidades críticas resueltas | 100% |
| Seguridad | Vulnerabilidades altas resueltas | 100% |
| Rendimiento | Tiempo de respuesta promedio | < 500 ms |
| Rendimiento | Disponibilidad | ≥ 99.5% |
| Usabilidad | Tareas completadas sin ayuda | ≥ 90% |
| Compatibilidad | Navegadores soportados | Chrome, Firefox, Edge, Safari |
| Métrica | Descripción |
|---|---|
| Cobertura de Pruebas | % de requerimientos cubiertos |
| Tasa de Defectos | Bugs encontrados por módulo |
| Severidad de Defectos | Distribución por severidad |
| Tiempo de Resolución | Promedio para corregir bugs |
| Tasa de Aprobación | % de casos de prueba aprobados |
| Rendimiento | Tiempos de respuesta medidos |
| Fase | Duración | Actividades |
|---|---|---|
| Planificación | 2 días | Diseño de casos de prueba |
| Pruebas Funcionales | 5 días | Ejecución de casos de prueba |
| Pruebas de Seguridad | 3 días | OWASP Top 10, pentesting básico |
| Pruebas de Rendimiento | 2 días | Pruebas de carga |
| Pruebas de Integración | 2 días | Validación de integraciones |
| Pruebas de Regresión | 2 días | Verificación post-correcciones |
| Pruebas de Aceptación | 2 días | Validación con cliente |
| Reporte Final | 1 día | Documentación de resultados |
| Total | 19 días |