Pruebas
Cómo comprobamos que las funciones sirven, las herramientas son rápidas, los datos privados siguen privados y las personas completan sus tareas.
Probamos todos nuestros paquetes, especialmente las herramientas cliente de línea de comandos (CLI) que usan personas y agentes de IA. Aquí puedes ver qué comprobamos antes de que te llegue una actualización: si las funciones sirven, las tareas son rápidas y los datos privados se tratan de forma segura. Cada paquete necesita pruebas acordes con su función, sea una biblioteca compartida, una herramienta cliente o el sitio de documentación.
Qué comprobamos
| Área | Qué comprobamos |
|---|---|
| Funcionalidad | Las funciones hacen lo prometido, devuelven resultados correctos y explican los fallos con claridad. |
| Compatibilidad | Los paquetes funcionan juntos, las actualizaciones conservan los datos existentes y las herramientas cliente se instalan y ejecutan en los sistemas compatibles. |
| Calidad de búsqueda | La búsqueda encuentra fuentes útiles y coloca los mejores resultados cerca del principio. |
| Rendimiento | Las tareas habituales terminan pronto, incluso con archivos grandes, sin consumo excesivo de memoria ni descargas. |
| Seguridad | Las credenciales no aparecen en registros ni repositorios, los datos compartidos con agentes se ajustan a la petición y las acciones respetan los permisos. |
| Experiencia de usuario (UX) | Las personas encuentran una función, entienden lo ocurrido y completan su tarea. |
Combinamos comprobaciones automáticas con revisiones manuales. Superar las pruebas aporta evidencia para los casos comprobados; no garantiza que toda situación posible funcione.
Funcionalidad y paquetes publicados
Comprobamos las partes de un paquete por separado y después cómo funcionan juntas. Para las CLI cliente también instalamos y ejecutamos el paquete que recibiría un usuario. Así detectamos problemas que pueden pasar desapercibidos en el entorno del desarrollador, como un archivo ausente o una opción que nunca llega a la biblioteca compartida.
Por ejemplo, una búsqueda limitada a un chat no debe devolver mensajes de otro. Si lo que buscas está en una respuesta a otro mensaje, también debe respetar el autor y la fecha solicitados. Las coincidencias exactas y las búsquedas de fuentes relacionadas se comprueban por separado; la arquitectura de búsqueda explica su funcionamiento.
Las pruebas de cada paquete permanecen junto a su código. Las herramientas compartidas de pruebas y los experimentos están en cli-testing. Los cambios de una biblioteca compartida también necesitan comprobaciones en las herramientas cliente que la usan. Por ejemplo, la comprobación de búsqueda de paquetes publicados ejecuta las herramientas reales de Telegram y MAX con mensajes ficticios y acceso a red bloqueado.
Las comprobaciones habituales se ejecutan automáticamente durante el desarrollo. Las comparaciones largas de velocidad y las pruebas con cuentas reales se ejecutan aparte. Las pruebas cotidianas usan datos ficticios y almacenamiento temporal; las de cuentas reales usan cuentas de prueba autorizadas y sus resultados privados no se publican.
Calidad de búsqueda y clasificación
Encontrar un mensaje sobre un tema es distinto de encontrar la respuesta. Probamos preguntas con respuestas conocidas, preguntas sin respuesta en el archivo y réplicas que contienen la respuesta sin repetir las palabras de la pregunta.
También comprobamos el orden. Una respuesta útil en primera posición ahorra más trabajo que la misma respuesta en décima posición.
| Medida | Qué nos indica |
|---|---|
| Success@10 | Con qué frecuencia aparece al menos un resultado útil entre los diez primeros. |
| Recall@10 | Qué proporción del material relevante conocido aparece entre los diez primeros. |
| Precision@10 | Qué proporción de los diez primeros resultados es relevante. |
| MRR | Lo cerca que está del principio el primer resultado relevante. |
| nDCG@10 | Si los resultados más útiles aparecen primero cuando unos son mejores que otros. |
Por ejemplo, 43,8% Success@10 significa que el 43,8% de las preguntas probadas tenía al menos un resultado relevante entre los diez primeros. No significa que se encontraran todos los mensajes relevantes ni que la respuesta estuviera primero.
También comprobamos si se encontraron mensajes útiles antes de ordenarlos: cambiar el orden no recupera una respuesta ausente. Cuando una pregunta ayuda a mejorar la búsqueda, se convierte en un ejemplo de desarrollo. Hacen falta preguntas nuevas para valorar si la mejora funciona en otros casos. Cada informe indica qué medidas incluye. La guía de evaluación de búsqueda explica los cálculos y experimentos.
Rendimiento y recursos
Medimos cuánto tarda una tarea completa, cuánta memoria usa y cómo cambia al aumentar los datos. Para la búsqueda, incluye encontrar mensajes, ordenar resultados, añadir réplicas útiles y preparar la salida.
Miramos el tiempo de espera habitual y las ejecuciones más lentas. Los informes pueden llamarlos p50 (la mitad de las ejecuciones medidas termina dentro de ese tiempo) y p95 (el 95% termina dentro de él). También comparamos la primera ejecución con las posteriores y medimos la preparación del archivo por separado de la búsqueda.
Si una función usa un modelo descargable, medimos tamaño y tiempo de descarga, tiempo de carga y consumo de memoria. Una descarga pequeña no implica necesariamente poca memoria. Las comparaciones registran el equipo y la carga para que un resultado de una máquina no parezca una promesa para todos los dispositivos. Los experimentos de búsqueda contienen las mediciones detalladas.
Seguridad y privacidad
Comprobamos qué podría exponer tus datos o hacer que una herramienta hiciera algo que no pediste:
- Credenciales en registros. Las contraseñas, los tokens de acceso y los códigos de inicio de sesión no deben aparecer en registros, informes de errores ni resultados enviados a un agente de IA.
- Secretos en repositorios. Revisamos archivos e historial de cambios para detectar credenciales o datos privados guardados por accidente antes de publicar el código.
- Datos enviados a agentes. Los resultados deben contener los datos pedidos para la tarea y el contexto elegido. Preguntar por un chat no debe exponer chats ajenos, otras cuentas ni datos de inicio de sesión.
- Acciones y permisos. Leer un mensaje no debe enviar otro. Comprobamos que un agente no pueda hacer un cambio prohibido y que las instrucciones ocultas en un mensaje no concedan permisos adicionales.
- Entradas y archivos inesperados. Revisamos cómo se manejan peticiones incorrectas, archivos dañados o muy grandes y nombres que podrían guardar una descarga fuera de la carpeta elegida. Estos casos deben tratarse de forma segura y respetar los límites.
Usamos datos ficticios y credenciales de prueba, revisamos salidas y registros, analizamos repositorios y comprobamos dependencias para detectar problemas de seguridad conocidos. Algunas cuestiones necesitan que una persona siga lo que hace el código; un análisis automático por sí solo no demuestra que nada pueda filtrarse. El método de seguridad describe el procedimiento detallado.
Consulta los controles que puedes configurar en seguridad y permisos. El acceso de un agente mediante otras herramientas necesita sus propios controles.
Experiencia de usuario y documentación
Probamos tareas reales: ¿puede una persona encontrar la orden adecuada, entender un error y saber si la tarea terminó bien? En el sitio de documentación probamos abrir guías, seguir enlaces, usar la búsqueda y copiar instrucciones.
Comprobamos el teclado, las pantallas móviles, la accesibilidad y todos los idiomas compatibles. Las pruebas automáticas detectan enlaces rotos, traducciones ausentes y algunos problemas de accesibilidad. Las revisiones manuales valoran si las instrucciones son legibles, los ejemplos tienen sentido y la página ofrece un siguiente paso útil.
Durante el desarrollo buscamos errores en el código, ejecutamos pruebas de funciones y comprobamos la documentación y un grupo corto de tareas de navegador. Antes de publicar, la compilación automática hace comprobaciones más amplias del sitio completo, sus enlaces y su comportamiento en el navegador. Las órdenes exactas para colaboradores están en las guías de desarrollo de los repositorios, incluida la guía de pruebas de cli-testing.
Para explorar una comprobación concreta, sigue los enlaces a las herramientas de pruebas o a los experimentos. Sus informes deben mostrar qué se probó, qué salió bien y qué necesita atención.