Encuentra lo que falla. Conserva lo que funciona.
QAgent escribe pruebas pytest para tu código Python con un equipo de agentes de IA,
las ejecuta en un entorno aislado y te dice qué falla y por qué, sin debilitar una sola prueba.
Por qué QAgent · Cómo funciona · Qué incluye · Instalación · Primeros pasos
Por qué QAgent
🛡️ Tu máquina, protegidaTu código y las pruebas generadas solo se ejecutan dentro de un contenedor Docker, sin internet ni acceso a tus archivos. El análisis de tu proyecto es estático: QAgent lo lee, no lo ejecuta. |
⚖️ La evidencia no se negociaSi una prueba solo pasa porque la IA quitó o relajó una aserción, QAgent la rechaza. El valor esperado sale de la firma, los tipos y el docstring, nunca de lo que el código devuelve hoy. Un posible bug no se esconde. |
♻️ Sin repetir trabajoLo que no cambió desde la última corrida se reutiliza. Las pruebas aprobadas se guardan en tu proyecto y puedes volver a correrlas sin IA para detectar regresiones. |
Cómo funciona
Abres un proyecto, eliges qué probar y QAgent hace el resto en cuatro pasos.
|
1 · Explorar QAgent analiza el proyecto y lista sus funciones y endpoints FastAPI, con su complejidad y lo que cambió desde la última vez. Tú eliges qué probar. |
2 · Preparar Decides qué hacer: generar pruebas nuevas, volver a correr las guardadas o analizar a fondo las funciones críticas. Antes de empezar ves el uso de IA y la duración estimados. |
|
3 · En curso Sigues en vivo cómo los agentes analizan, escriben y verifican cada prueba. Si la IA intenta debilitar una prueba, lo verás bloqueado aquí. |
4 · Resultados Primero lo que requiere atención: cada posible bug llega con su explicación y el valor esperado según el contrato. Puedes exportar el informe. |
Detrás de cada corrida trabajan tres agentes coordinados, que solo se comunican por contratos JSON:
| Agente | Qué hace |
|---|---|
| Planner | Lee tu código (funciones, firmas, tipos, docstrings y rutas FastAPI) y decide qué casos hay que probar. |
| Generator | Escribe la prueba pytest de cada caso. |
| Reviewer | La ejecuta en el entorno aislado, revisa que las aserciones sean legítimas y pide hasta 3 intentos de corrección. |
Qué incluye
- Pruebas unitarias de funciones Python y pruebas de endpoints FastAPI con
TestClient, sin red y simulandoDepends. - Casos clasificados como normales, límite o de error.
- Perfiles de prueba: Humo, con un caso normal por objetivo para una revisión rápida; y análisis a fondo, que además mide la fortaleza de las pruebas en las funciones críticas.
- Mutation testing acotado a las funciones que marques como críticas, nunca al repositorio completo.
- Pruebas de regresión: vuelve a correr las pruebas guardadas sin gastar IA y ve qué empeoró y por qué.
- Métricas por prueba: si pasó, cobertura de líneas y ramas, intentos, tokens por agente y Mutation Score.
- Historial de corridas, con la comparación frente a la anterior.
- Informes exportables en HTML interactivo, PDF, Markdown o JSON.
- Tu IA, por etapa: cada agente puede usar su propio proveedor y modelo (Anthropic, OpenAI, Google Gemini, Groq, DeepSeek, OpenRouter o Xiaomi MiMo).
- Tema oscuro y claro.
| Historial: el trabajo anterior, a mano | Configuración: un proveedor y modelo por etapa |
Instalación
Windows: instalador (recomendado)
- Descarga
QAgent-<versión>-instalador.exedesde la última versión publicada. - Ejecútalo. No necesita permisos de administrador ni tener Python instalado.
- Si Windows muestra «Windows protegió tu PC», elige Más información → Ejecutar de todas formas (el instalador aún no está firmado digitalmente).
Con pip (si ya usas Python 3.10 o superior)
pip install qagent-pytest
qagent
En PyPI se llama qagent-pytest porque el nombre qagent ya lo usaba otro proyecto; el programa, el comando y la marca siguen siendo QAgent.
Antes de la primera corrida
- Docker Desktop, abierto: las pruebas se ejecutan solo dentro de un contenedor aislado. La primera corrida prepara ese entorno sola (necesita internet y tarda unos minutos, una sola vez). Descargar Docker Desktop.
- Claves de API de los modelos de IA: se agregan en la pantalla Configuración del programa.
- Git, si vas a clonar repositorios por su URL.
¿Quieres probarlo sin claves ni costo? Agrega la línea QAGENT_FAKE_LLM=1 al archivo .env de la carpeta .qagent de tu usuario (C:\Users\<tú>\.qagent\.env): QAgent usará una IA simulada con respuestas grabadas.
Tus claves, tu configuración y la lista de proyectos recientes se guardan en esa carpeta .qagent de tu usuario, nunca junto al programa. Desinstalar QAgent no las borra.
Primeros pasos
- Abre QAgent desde el menú Inicio (o con el comando
qagent). - En Configuración, agrega la API de cada etapa: Analizando, Escribiendo pruebas y Verificando.
- En Inicio, elige Abrir carpeta (un proyecto Python en tu equipo) o Clonar URL Git.
- En Explorar, elige las funciones y endpoints a probar y pulsa Preparar.
- En Preparar, elige qué hacer y los tipos de prueba, y pulsa Iniciar prueba.
- Sigue el avance en En curso y revisa Resultados; desde ahí puedes Exportar informe.
Alcance
QAgent genera pruebas unitarias para código Python 3.10+ y pruebas de endpoints FastAPI. Integración contra servicios reales, extremo a extremo, carga y estrés quedan fuera de esta versión.
Para el equipo de desarrollo
Cómo preparar el entorno, ejecutar las pruebas, construir el instalador y publicar una versión: docs/desarrollo.md. Las reglas del proyecto están en AGENTS.md, las decisiones técnicas en docs/decisiones/ y las notas de cada versión en docs/releases/.
Equipo
Proyecto del curso Taller Integrador I, Ingeniería de Sistemas e Inteligencia Artificial, Universidad Privada Antenor Orrego (UPAO).
Castillo Pezo, Mateo · Oncoy Patricio, Angel · Rodríguez Malca, Rodrigo · Sanchez Vargas, Adrián
Licencia
MIT.
Metadata
Release files for qagent-pytest 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| qagent_pytest-0.2.0.tar.gz | 507.3 kB | With provenance | Details for qagent_pytest-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| qagent_pytest-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for qagent_pytest-0.2.0-py3-none-any.whl |
Total release size: 1.1 MB
Release files / qagent_pytest-0.2.0.tar.gz
| Download URL | qagent_pytest-0.2.0.tar.gz |
|---|---|
| Size | 507.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce661a6a048f36bf8c2b188f1e710232ac14c6c6e8969d7606aebac9b3952a29
|
|
BLAKE2b-256 checksum How to use checksums |
99b238d73e307cfa9014ae05001f6f734cc74a06e2405582297aeb84b28bc3d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / qagent_pytest-0.2.0-py3-none-any.whl
| Download URL | qagent_pytest-0.2.0-py3-none-any.whl |
|---|---|
| Size | 561.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f36f23ec79cb197547b5e0418fbf8eb92db00ed5668bb31dd6490cd8922d5e37
|
|
BLAKE2b-256 checksum How to use checksums |
6ee5061b5b5d5bdd4da9bd335884aa7f4f180001bf016e76fb8b99bfb46e3c49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for qagent-pytest 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for qagent_pytest-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.