Documentacion de Testing - MCP-SCAN¶
Este directorio contiene la documentacion completa del sistema de testing de mcp-scan, el analizador estatico de seguridad para servidores MCP.
Indice de Documentos¶
| Documento | Descripcion |
|---|---|
| Estructura de Tests | Organizacion de tests unitarios, integracion, benchmarks |
| Fixtures | Fixtures de prueba por clase de vulnerabilidad (A-N) |
| DVMCP | Damn Vulnerable MCP Server - servidor vulnerable de pruebas |
| Ejecutar Tests | Comandos para ejecutar tests y cobertura |
| Estado Actual | Cobertura actual y areas por mejorar |
Vision General¶
El sistema de testing de mcp-scan esta disenado para garantizar:
- Deteccion precisa: Validar que cada clase de vulnerabilidad (A-N) se detecta correctamente
- Sin falsos positivos: Verificar que codigo benigno no genera alertas
- Rendimiento: Benchmarks para asegurar tiempos de analisis aceptables
- Regresion: Tests golden para detectar cambios en el comportamiento
Tipos de Tests¶
Tests Unitarios¶
Ubicados junto al codigo fuente (*_test.go), validan componentes individuales:
- Parser AST (Python, TypeScript, JavaScript, Go)
- Motor de taint analysis
- Detectores de patrones
- Clasificadores ML
- Grafo de llamadas
Tests de Integracion¶
Validan el flujo completo del scanner: - Descubrimiento de archivos - Analisis de superficie MCP - Deteccion de vulnerabilidades - Generacion de reportes
Tests Golden¶
Comparan salidas contra snapshots esperados: - Formato JSON - Formato SARIF - Evidencias
Benchmarks¶
Miden rendimiento de componentes criticos: - Parsing AST - Extraccion de features ML - Clasificacion de prompts
Estructura de Directorios¶
mcp-scan/
├── internal/
│ ├── parser/parser_test.go # Tests del parser
│ ├── pattern/engine_test.go # Tests de detectores (1300+ lineas)
│ ├── taint/engine_test.go # Tests del motor taint
│ ├── callgraph/graph_test.go # Tests del grafo de llamadas
│ ├── ml/classifier_test.go # Tests del clasificador ML
│ └── ...
├── pkg/
│ └── scanner/
│ ├── scanner_test.go # Tests unitarios scanner
│ ├── scanner_integration_test.go # Tests de integracion
│ └── scanner_bench_test.go # Benchmarks
└── testdata/
├── fixtures/ # Codigo vulnerable/benigno
│ ├── class_a/ # RCE
│ ├── class_g/ # Tool poisoning
│ └── ...
├── golden/ # Salidas esperadas
└── damn-vulnerable-MCP-server/ # DVMCP completo
Comandos Rapidos¶
# Ejecutar todos los tests
make test
# Tests con cobertura
make test-coverage
# Tests golden (snapshots)
make test-golden
# Tests contra DVMCP
make test-detection
# Benchmarks
go test -bench=. ./...
Contribuir Tests¶
Al agregar nuevas funcionalidades o detectores:
- Crear fixtures en
testdata/fixtures/class_X/ - Agregar tests unitarios en el paquete correspondiente
- Actualizar tests de integracion si afecta el flujo completo
- Actualizar golden tests si cambia el formato de salida
- Documentar en
estado-actual.md
Referencias¶
- PRD.md - Especificacion del producto
- Clases de Vulnerabilidades
- Arquitectura