# Comprobaciones realizadas

Entorno de prueba aislado: PHP 8.3.6, MariaDB 10.11.14, navegador Chromium con Playwright. Base temporal con datos ficticios; sin datos personales del PDF.

## Ejecutadas y aprobadas
- Comprobación de sintaxis de todos los archivos PHP y del JavaScript.
- Instalación real de las 11 tablas y carga de demostración.
- 14 verificaciones de integración: lectura/escritura, DNI, duplicados, vínculos, cierre sin resultado, cierre de campaña con pendientes, autorización, incremento de versión, integridad referencial, escala de encuesta, encuesta válida, permisos de Consulta/Gestor y escape HTML. Se revirtieron los datos de esta prueba.
- Navegador: ingreso y panel; listado y formulario de los nueve módulos; alta, edición y eliminación de un programa; conflicto entre dos ventanas; ficha individual; reporte filtrado por programa y campaña; descarga CSV; creación de cuenta Consulta e ingreso con ella; bloqueo de edición por URL y POST; rechazo de POST sin CSRF; auditoría restringida; cierre de sesión visible en móvil.
- Revisión visual interna de ingreso, panel, pantalla móvil y ficha impresa. Ficha de demostración generada en dos páginas A4 horizontales, sin recortes de texto y con encabezados junto a sus datos.
- Sin errores JavaScript en esos recorridos.

## Límites de estas comprobaciones
No se ejecutó en Windows/XAMPP ni en MySQL 8 (se utilizó MariaDB). La integración no equivale a probar por navegador cada combinación de campos de cada módulo. No se ejecutaron pruebas de carga, penetración, red con HTTPS, impresora física, restauración de copia, caducidad esperando 30 minutos ni bloqueo esperando 15 minutos. Use PRUEBAS_MANUALES.md para completar la aceptación institucional.

## Repetir pruebas
1. Configure config.php contra una base EXCLUSIVA de pruebas e instale schema.sql.
2. Ejecute `php tests/integration.php --base-exclusiva-de-pruebas`.
3. El script usa una transacción y revierte los cambios; los contadores AUTO_INCREMENT pueden avanzar.
4. Complete los recorridos manuales con las tres cuentas y sus datos ficticios.

La automatización del navegador se utilizó como verificación interna; no es una dependencia de la aplicación. El sistema no requiere Node.js para instalarse o funcionar.
