\chapter{Introducci\'on} \label{ch:intro} \section{Objetivo} Definir un plan de pruebas \textbf{completo y ejecutable} para IPSExtractor que cubra: \begin{itemize} \item Correctitud funcional por servicio y por flujo de negocio. \item Integraci\'on entre Gateway, microservicios, PostgreSQL, Redis y MinIO. \item Validaci\'on end-to-end (Desktop $\rightarrow$ APIs $\rightarrow$ agent/bot). \item Capacidad y l\'imites bajo carga (estr\'es) con criterios SLO. \item Resiliencia ante fallos de dependencias (chaos controlado). \end{itemize} \section{Alcance} \subsection{Dentro de alcance} \begin{itemize} \item \texttt{api\_gateway}, \texttt{extraction} + workers ARQ, \texttt{cleaning}, \texttt{count-api}. \item \texttt{bot-descarga} (API Docker) y agent PC (\texttt{bots/bot\_descarga}). \item PostgreSQL 16, Redis 7, MinIO/S3, vol\'umenes \texttt{/data} e \texttt{ips\_queue}. \item Desktop app (Electron/React) a nivel de contratos API y checklist E2E. \end{itemize} \subsection{Fuera de alcance de esta versi\'on documental} \begin{itemize} \item Implementaci\'on inmediata de CI/CD o de nuevos tests FastAPI (se planifican, no se entregan aqu\'i). \item Estr\'es contra producci\'on o Imaging real sin entorno de staging. \item Pruebas de seguridad ofensivas (penetration testing). \end{itemize} \section{Estado actual del repositorio} \begin{table}[h] \centering \begin{tabular}{@{}llp{6.2cm}@{}} \toprule \textbf{\'Area} & \textbf{Tipo} & \textbf{Ubicaci\'on / notas} \\ \midrule Bot agent & Unit & \texttt{bots/bot\_descarga/tests/} \\ Bot API store & Unit & \texttt{services/bot\_descarga/tests/test\_store.py} \\ Desktop & Unit & Vitest en \texttt{services/desktop\_app} \\ count-api & Unit & \texttt{go test} (features ML) \\ Integraci\'on & --- & No existe \\ E2E & --- & No existe \\ CI & --- & No hay workflows \\ \bottomrule \end{tabular} \caption{Cobertura existente y gaps.} \end{table} \section{Referencias del sistema} \begin{itemize} \item \texttt{README.md} (ra\'iz): stack, puertos, arranque. \item \texttt{docker-compose.yml}: orquestaci\'on de servicios. \item \texttt{docs/MIGRACION\_MICROSERVICIOS.md}, \texttt{docs/database.dbml}. \item READMEs por servicio bajo \texttt{services/*/} y \texttt{bots/bot\_descarga/}. \end{itemize}