Saltar a contenido

Elegir una estrategia de pruebas

Biblioteca creada y mantenida con agentes de IA. Las personas son responsables de la revisión y publicación.

Propuesta · requiere revisión humana · r1

Describir la prueba en tres ejes independientes

El agente debe indicar qué conoce del sistema, qué límite ejercita y qué fallo busca. Son elecciones distintas. Una prueba de caja negra puede comprobar funcionalidad ordinaria, rendimiento o seguridad; el término no significa prueba de penetración.

Eje Opciones Qué informa la elección a quien revise
Conocimiento disponible Caja negra: interfaces observables; caja gris: componentes internos o instrumentación seleccionados; caja blanca: código y rutas internas Qué información orientó el diseño de la prueba y qué puntos ciegos permanecen
Límite ejercitado Unidad, integración, contrato entre consumidor y proveedor, extremo a extremo Cuánto del sistema real participa y dónde pueden localizarse los fallos
Objetivo Corrección funcional, seguridad, rendimiento, recuperación, accesibilidad, compatibilidad Sobre qué riesgo aporta evidencia el resultado; el éxito en un objetivo no demuestra otro

Por ejemplo, una prueba de API de caja negra puede verificar que dos solicitudes de compra idénticas devuelven un único resultado de negocio. Una prueba unitaria de caja blanca puede explorar todas las ramas de reintento. Una prueba de integración de caja gris puede inspeccionar además la transacción y el outbox. Aportan evidencia complementaria. Documenta la terminología local si la definición del equipo de «integración» o «contrato» difiere.

Elegir según el cambio y sus consecuencias

La matriz siguiente es la política inicial recomendada por esta biblioteca, no una batería universal obligatoria. Añade o elimina comprobaciones con una justificación explícita del riesgo.

Cambio o riesgo Primeras comprobaciones útiles Ampliación y evidencia de aceptación
Documentación o traducción Significado, terminología, enlaces y equivalencia entre idiomas Renderizar la presentación modificada si cambia el diseño o la navegación; no crear una batería de ejecución nueva para una corrección inocua de redacción
Cálculo de negocio o transición de estado Ejemplos unitarios, valores límite y entradas inválidas; casos basados en propiedades para invariantes reales Demostrar que una entrada que viola el invariante falla; añadir integración si la persistencia o el estado externo forman parte de la corrección
Esquema o transacción de base de datos Integración con una base de datos real, restricciones, concurrencia y compatibilidad de migración Volumen de datos representativo, bloqueos, reinicio, reanudación y recuperación; los consumidores antiguos admitidos siguen siendo compatibles
Esquema de API o evento Ejemplos de contrato entre productor y consumidor y comprobaciones de compatibilidad Ruta real de serialización y transporte; rechazar entradas inválidas sin efectos no deseados
Recorrido de usuario o estado del frontend Comprobaciones de componentes y un pequeño recorrido de navegador basado en semántica pública Estados de carga, vacío, error y cancelación, teclado y ventana estrecha; verificar eventos reales del navegador
Autenticación, permisos o ámbito del inquilino Pruebas de política y acceso no autorizado a API y objetos con identidades distintas Revisar puntos de entrada no probados y ejecutar pruebas de seguridad específicas; las solicitudes denegadas no devuelven datos protegidos ni producen efectos
Proceso en segundo plano, pago o flujo duradero Casos de integración con duplicados, reordenación, tiempos agotados y fallos en puntos críticos Conciliar los efectos previstos después de reintentar o reiniciar; comprobar compatibilidad con el entorno de pruebas del proveedor cuando sea necesario
Concurrencia, caché, planificación o capacidad Comprobaciones funcionales con concurrencia y una referencia medida Elegir pruebas de carga, estrés, picos o duración prolongada según la guía de rendimiento; conservar la corrección y una recuperación acotada
Modelo, prompt, recuperación de información, herramienta o política de agente Evaluaciones versionadas de tareas, casos adversariales y pruebas deterministas de política Comparar con casos reservados para evaluación, inspeccionar efectos reales de herramientas, repetir casos estocásticos e informar de la variabilidad

Planificar antes de elegir una herramienta

Escribe un breve plan de prueba: requisito afectado; hipótesis de fallo; modelo de conocimiento, límite y objetivo; datos preparados y entorno; resultados esperados; límites de ejecución segura; y evidencia que se conservará. La herramienta se elige después de ese plan. Un controlador de navegador, un cliente HTTP, un generador de propiedades, un generador de carga, un escáner o una revisión humana observan cosas distintas.

Usa el límite más pequeño que pueda revelar el defecto y añade después una comprobación realista del límite cuando los sustitutos puedan ocultarlo. Una base de datos simulada no demuestra una restricción de unicidad de una base de datos real, y un evento simulado del navegador no demuestra compatibilidad nativa. Mantén los proveedores externos controlados en las pruebas deterministas; distingue una comprobación de compatibilidad en su entorno de pruebas de una respuesta simulada.

Haz que los datos preparados sean independientes y reproducibles. Controla los relojes y la aleatoriedad relevantes, registra las semillas y aísla cuentas, inquilinos, estado y limpieza. No compartas un usuario de prueba mutable entre ejecuciones paralelas, salvo que esa concurrencia sea el objeto de la prueba. Protege los datos preparados y las trazas como información; nunca copies registros de producción solo para hacer una prueba realista.

Crear aserciones que puedan refutarse

Comprueba las salidas, el estado persistido y los efectos prohibidos relevantes para el requisito. Un código HTTP de éxito por sí solo no demuestra que se haya devuelto el objeto correcto. Una prueba de autorización debe ejercitar tanto una acción permitida como una denegada y verificar después que la denegación no modificó el estado protegido.

Para una corrección con consecuencias importantes, demuestra que la prueba puede revelar el error original o una variante local deliberadamente incorrecta. Usa valores límite y clases de equivalencia cuando corresponda. Las pruebas basadas en propiedades exploran un invariante definido; siguen dependiendo de que el invariante y el modelo de entradas sean correctos. La cobertura puede revelar código no visitado, pero una cobertura alta no demuestra que los requisitos sean correctos ni que los límites de seguridad estén completos.

Decidir cuándo hay evidencia suficiente

Detén la publicación afectada si fallan comprobaciones obligatorias, el objetivo está fuera del ámbito aprobado, los datos de prueba salen de su límite o una afirmación de consecuencias importantes carece de evidencia. Informa de las omisiones y de la incertidumbre. Una persona puede aceptar un riesgo residual documentado y limitado en el tiempo; un agente no puede dar por superada una comprobación no ejecutada.

Terminar significa que el comportamiento acordado está respaldado por resultados interpretables, limitaciones conocidas y un plan de recuperación. Conserva la revisión probada, la configuración, la versión de los datos preparados, los comandos, los resultados y las trazas relevantes sin valores sensibles. Amplía las pruebas cuando una nueva hipótesis de fallo lo justifique, en lugar de repetir indefinidamente la misma batería que ya pasa.

Evidencia y decisiones relacionadas

El modelo de tres ejes y la matriz de selección son una síntesis local original. OWASP respalda las pruebas de autorización en varios límites; Playwright respalda las comprobaciones de navegador aisladas y basadas en el comportamiento visible; PostgreSQL documenta las propiedades de concurrencia que deben ejercitar las pruebas con una base de datos real. Estas fuentes no certifican todas las celdas de la matriz.

Controles de calidad · Pruebas de rendimiento y estrés · Pruebas de seguridad · Datos y migraciones · Durabilidad

Evidencia primaria

owasp-authorization · owasp-ai-agent · playwright-testing · postgres-isolation · owasp-multi-tenant