¿Qué Son los Criterios de Entrada y Salida?

Los criterios de entrada y salida son puntos de control esenciales en el ciclo de vida del testing de software que definen cuándo debe comenzar una fase de pruebas y cuándo puede concluirse. Estos criterios actúan como compuertas de calidad, asegurando que las actividades de testing comiencen solo cuando se cumplan los prerequisitos y concluyan solo cuando se alcancen los objetivos.

Criterios de Entrada especifican las condiciones que deben satisfacerse antes de que puedan comenzar las pruebas. Aseguran que el entorno de testing esté listo y que el producto esté en estado testeable.

Criterios de Salida definen las condiciones que deben cumplirse para concluir exitosamente una fase de testing. Aseguran que se hayan alcanzado los objetivos de testing y que el producto cumpla con los estándares de calidad.

Por Qué Importan los Criterios de Entrada y Salida

Beneficios de Criterios Bien Definidos

  • Expectativas claras: Todos los stakeholders entienden cuándo comienzan y terminan las pruebas
  • Optimización de recursos: Previene esfuerzo desperdiciado en testing prematuro o incompleto
  • Mitigación de riesgos: Identifica problemas potenciales antes de que impacten el proyecto
  • Toma de decisiones objetiva: Elimina la subjetividad de la progresión del testing
  • Confianza de stakeholders: Proporciona indicadores de calidad transparentes y medibles

Consecuencias de Criterios Faltantes

Sin criterios de entrada y salida apropiados, los proyectos frecuentemente experimentan:

  • Testing prematuro: Iniciar pruebas antes de que el sistema esté listo, provocando fallos falsos
  • Testing interminable: Falta de señales claras de finalización, causando scope creep
  • Confusión de alcance: Límites de testing poco claros resultando en defectos omitidos
  • Desperdicio de recursos: Asignación ineficiente de recursos de testing
  • Incertidumbre de calidad: Sin medida objetiva de cuándo se alcanzan objetivos de calidad

Criterios de Entrada: Prerequisitos para el Testing

Ejemplos Comunes de Criterios de Entrada

CategoríaCriterios
EntornoEntorno de pruebas configurado y accesible
Datos de prueba preparados y cargados
Herramientas requeridas instaladas y licenciadas
DocumentaciónPlan de pruebas aprobado y baselineado
Especificaciones de requisitos finalizadas
Casos de prueba revisados y aprobados
ProductoBuild desplegado exitosamente
Smoke tests aprobados
Bloqueadores conocidos resueltos
RecursosEquipo de testing asignado y disponible
Habilidades y entrenamiento requerido completado
Permisos de acceso otorgados

Criterios de Entrada por Nivel de Testing

Criterios de Entrada para Unit Testing

✓ Código compilado sin errores
✓ Code review completado
✓ Framework de unit testing configurado
✓ Herramienta de code coverage integrada
✓ Guías de testing para desarrolladores disponibles

Criterios de Entrada para Integration Testing

✓ Todos los unit tests aprobados (mínimo 80% de aprobación)
✓ Módulos/componentes desplegados en entorno de integración
✓ Documentación de API completada
✓ Escenarios de integration testing definidos
✓ Mock services/stubs listos (si son necesarios)
✓ Esquemas de base de datos sincronizados

Criterios de Entrada para System Testing

✓ Integration testing completado con 95% de aprobación
✓ Matriz de trazabilidad de requisitos disponible
✓ Build completo desplegado en entorno de pruebas
✓ Baseline de performance establecido
✓ Security scan completado
✓ Escenarios de UAT preparados

Criterios de Entrada para User Acceptance Testing (UAT)

✓ System testing completado con <5% defectos abiertos
✓ Todos los defectos críticos y de alta prioridad resueltos
✓ Entorno UAT configurado para reflejar producción
✓ Usuarios de negocio entrenados y disponibles
✓ Scripts de acceptance testing finalizados
✓ Sign-off de system testing obtenido

Ejemplo Práctico: Testing de Aplicación Web

Considera un release de aplicación web:

Criterios de Entrada para System Testing:

  1. Calidad del Build

    • Aplicación desplegada exitosamente en entorno staging
    • Suite de smoke tests ejecutada con 100% de aprobación
    • Sin defectos P1/P2 del sprint anterior sin resolver
  2. Documentación

    • Release notes publicadas con descripciones de features
    • Documentación de API actualizada para nuevos endpoints
    • Scripts de migración de BD testeados en pre-producción
  3. Preparación de Testing

    • Suite de regression testing actualizada con nuevos escenarios
    • Datos de prueba refrescados desde dump sanitizado de producción
    • Baseline de performance testing capturado
  4. Preparación del Equipo

    • Equipo QA completó walkthrough de features
    • Acceso a herramientas de logging y monitoreo verificado
    • Cronograma de soporte on-call confirmado

Criterios de Salida: Señales de Finalización

Ejemplos Comunes de Criterios de Salida

CategoríaCriterios
Cobertura100% de casos de prueba planificados ejecutados
90%+ de requisitos cubiertos por pruebas
Todos los flujos críticos de negocio testeados
Calidad95%+ tasa de aprobación de tests alcanzada
Sin defectos críticos o de alta prioridad abiertos
Densidad de defectos dentro de límites aceptables
DocumentaciónReporte de ejecución de pruebas completado
Problemas conocidos documentados
Matriz de trazabilidad actualizada
AprobaciónAprobación de stakeholders obtenida
Evaluación de riesgos aceptada
Checklist de go-live completado

Criterios de Salida por Nivel de Testing

Criterios de Salida para Unit Testing

✓ Code coverage ≥ 80% (statements)
✓ Todos los unit tests aprobados
✓ Sin violaciones críticas de calidad de código
✓ Complejidad ciclomática dentro de estándares
✓ Sin memory leaks detectados

Criterios de Salida para Integration Testing

✓ Todos los escenarios de integration testing ejecutados
✓ API contract tests aprobados
✓ Validación de flujo de datos completada
✓ Manejo de errores verificado para todas las interfaces
✓ 90%+ tasa de aprobación en integration tests
✓ Defectos de integración ≤ 10% de total de casos de prueba

Criterios de Salida para System Testing

✓ 95% de casos de prueba aprobados
✓ 100% de escenarios de alta prioridad ejecutados
✓ Sin defectos P1 abiertos
✓ Defectos P2 < 5% de total de tests ejecutados
✓ Benchmarks de performance alcanzados
✓ Vulnerabilidades de seguridad evaluadas y mitigadas
✓ Suite de regression testing 98%+ aprobada

Criterios de Salida para UAT

✓ Todos los escenarios críticos de negocio validados
✓ Aceptación del usuario obtenida de stakeholders de negocio
✓ Materiales de entrenamiento validados
✓ Checklist de production readiness completado
✓ Plan de rollback verificado
✓ Aprobación de go-live firmada

Ejemplo Práctico: Release de App Móvil

Criterios de Salida para Testing Pre-Producción:

  1. Calidad Funcional

    • 98% de casos de prueba aprobados
    • Cero defectos P1 abiertos
    • Defectos P2 ≤ 3 (con workarounds documentados)
    • Todos los user journeys testeados en iOS y Android
  2. Calidad de Performance

    • Tiempo de lanzamiento de app < 2 segundos en dispositivos objetivo
    • Tiempo de respuesta API < 500ms para percentil 95
    • Consumo de memoria dentro del threshold de 200MB
    • Drain de batería < 5% por hora de uso activo
  3. Compatibilidad

    • Testeado en top 10 modelos de dispositivos (80% market share)
    • Compatibilidad iOS 15+ y Android 11+ verificada
    • Diferentes tamaños de pantalla y orientaciones validadas
  4. Cumplimiento

    • Compliance con guías de app store verificado
    • Revisión de privacy policy completada
    • Estándares de accesibilidad (WCAG 2.1 AA) cumplidos
    • Penetration testing de seguridad aprobado

Definiendo Criterios de Entrada y Salida Efectivos

Framework de Criterios SMART

Los criterios efectivos de entrada y salida deben ser SMART:

  • Specific (Específicos): Claramente definidos, no vagos o ambiguos
  • Measurable (Medibles): Cuantificables con métricas objetivas
  • Achievable (Alcanzables): Realistas dado las restricciones del proyecto
  • Relevant (Relevantes): Alineados con objetivos del proyecto y riesgos
  • Time-bound (Limitados en tiempo): Atados a fases específicas del proyecto

Ejemplo: Transformando Criterios Vagos a SMART

Criterios VagosCriterios SMART
“La mayoría de tests aprobados”“95% de casos de prueba planificados ejecutados con estado aprobado”
“Entorno está listo”“Entorno de pruebas desplegado con build v2.3.1, BD con 10K registros de prueba, y smoke tests aprobados”
“Bugs críticos corregidos”“Cero defectos abiertos con severidad P1, defectos P2 ≤ 5 con workarounds documentados”
“Equipo está preparado”“Equipo QA (5 miembros) entrenado en nuevas features, con revisión de casos de prueba completada y aprobada”

Proceso de Alineación de Stakeholders

graph TD
    A[Identificar Fase de Testing] --> B[Redactar Criterios Iniciales]
    B --> C[Revisar con Equipo de Desarrollo]
    C --> D[Revisar con Producto/Negocio]
    D --> E[Revisar con Management]
    E --> F{¿Consenso Alcanzado?}
    F -->|No| G[Revisar Criterios]
    G --> C
    F -->|Sí| H[Documentar en Plan de Pruebas]
    H --> I[Baseline y Comunicar]

Errores Comunes y Soluciones

Error 1: Criterios Excesivamente Rígidos

Problema: Criterios tan estrictos que el testing nunca comienza o nunca termina.

Solución: Balance rigor con pragmatismo. Usa priorización basada en riesgos para enfocarte en criterios críticos y permite flexibilidad para ítems de menor riesgo. Este enfoque se alinea con los principios descritos en Plan de Pruebas vs Estrategia de Pruebas.

Ejemplo: En lugar de “100% de casos de prueba aprobados,” usa “95% de tasa de aprobación general con 100% de aprobación para flujos críticos de negocio.”

Error 2: Criterios No Medibles

Problema: Criterios que no pueden ser verificados objetivamente.

Solución: Define métricas claras y métodos de medición para cada criterio.

Mal Ejemplo: “La calidad del código es buena” Buen Ejemplo: “Quality gate de SonarQube aprobado con rating A, deuda técnica ≤ 5 días”

Error 3: Ignorar el Contexto

Problema: Usar criterios genéricos sin considerar las especificidades del proyecto.

Solución: Adapta los criterios al perfil de riesgo del proyecto, timeline y criticidad del negocio.

Ejemplo: Un hotfix release puede tener criterios de entrada relajados (actualizaciones mínimas de casos de prueba) pero criterios de salida estrictos (100% tasa de aprobación de regression testing para áreas afectadas).

Error 4: Configurar y Olvidar

Problema: Criterios definidos una vez y nunca revisitados.

Solución: Revisa y ajusta criterios en retrospectivas o cuando cambien las condiciones del proyecto.

Ejemplo: Si la densidad de defectos tiene tendencia al alza, ajusta los criterios de salida para requerir cobertura de testing adicional o tasas de defectos aceptables más bajas.

Implementando Criterios de Entrada y Salida en la Práctica

Integración con Test Management

La mayoría de herramientas de test management soportan tracking de criterios:

# Ejemplo: Integración con API de TestRail para check de criterios de entrada
def check_entry_criteria(test_run_id):
    criteria_results = {
        'environment_ready': check_environment_status(),
        'smoke_tests_passed': get_smoke_test_results(),
        'test_cases_reviewed': check_review_completion(),
        'team_availability': verify_team_capacity()
    }

    all_met = all(criteria_results.values())

    if all_met:
        update_test_run_status(test_run_id, 'ready_to_start')
        notify_team('Criterios de entrada cumplidos. El testing puede comenzar.')
    else:
        failed = [k for k, v in criteria_results.items() if not v]
        notify_stakeholders(f'Criterios de entrada no cumplidos: {failed}')

    return all_met

Dashboard de Criterios de Salida

Crea un dashboard visual para tracking de criterios de salida. El monitoreo de métricas y KPIs clave de testing ayuda a los equipos a tomar decisiones basadas en datos sobre la finalización de las fases de prueba:

Criterio de SalidaObjetivoActualEstado
Ejecución de Tests100%98%⚠️ En Progreso
Tasa de Aprobación≥95%97%✅ Cumplido
Defectos P100✅ Cumplido
Defectos P2≤57❌ No Cumplido
Code Coverage≥80%85%✅ Cumplido
Performance<500ms450ms✅ Cumplido

Reuniones de Checkpoint

Programa reuniones formales de go/no-go para evaluar criterios:

  1. Checkpoint Pre-Testing: Revisar criterios de entrada antes de iniciar fase de testing
  2. Checkpoint Mid-Testing: Evaluar progreso hacia criterios de salida
  3. Checkpoint de Salida: Revisión final de criterios de salida antes de cerrar fase

Caso de Estudio del Mundo Real

Escenario: Major Release de Plataforma E-commerce

Contexto: Release mayor agregando nuevo payment gateway y flujo de checkout rediseñado.

Criterios de Entrada para System Testing:

  1. Integración de nuevo payment gateway completada y desplegada en staging
  2. Cambios UI de flujo de checkout revisados y aprobados por equipo UX
  3. Suite de regression testing actualizada con 25 nuevos casos de prueba
  4. Baseline de performance establecido: completación de checkout < 3 segundos
  5. Datos de prueba: 500 cuentas de clientes de prueba con métodos de pago variados
  6. 100% de integration tests de API aprobados

Criterios de Salida para System Testing:

  1. 95% de 500 casos de prueba aprobados (475+ aprobados)
  2. Todos los métodos de pago testeados en 3 browsers
  3. Tasa de completación de flujo de checkout: 98%+ en escenarios de prueba
  4. Cero defectos P1 (fallos de procesamiento de pagos)
  5. Defectos P2 ≤ 10 (con workarounds documentados)
  6. Performance: tiempo de checkout percentil 95 < 3 segundos
  7. Security scan: Sin vulnerabilidades de alta severidad
  8. Cross-browser testing: Compatibilidad Chrome, Safari, Firefox verificada

Resultado: El testing reveló 12 defectos P2 (excedió el límite). El equipo decidió:

  • Corregir 3 defectos P2 críticos afectando experiencia del usuario
  • Documentar workarounds para los 9 problemas restantes
  • Re-ejecutar casos de prueba afectados (alcanzó 96% de aprobación)
  • Obtuvo aprobación de stakeholders para release condicional
  • Planificó hotfix para problemas restantes en siguiente sprint

Checklist de Mejores Prácticas

Define criterios temprano: Establece criterios durante planeación de pruebas, no a mitad del testing

Haz criterios visibles: Comparte criterios en planes de prueba, dashboards y comunicaciones con stakeholders

Cuantifica todo: Usa métricas y números, evita lenguaje subjetivo

Alinea con riesgo: Prioriza criterios basados en riesgo e impacto del negocio

Obtén buy-in de stakeholders: Asegura que todas las partes estén de acuerdo con criterios antes de que comience el testing

Documenta excepciones: Cuando no se cumplan criterios, documenta razones y planes de mitigación

Revisa y adapta: Revisita criterios regularmente y ajusta basándote en aprendizajes

Automatiza checks: Donde sea posible, automatiza verificación de criterios (ej. code coverage, tasas de aprobación). Considera implementar automatización de pruebas usando la estrategia de pirámide para validar eficientemente criterios de entrada y salida en diferentes niveles de testing

Conclusión

Los criterios de entrada y salida son fundamentales para un testing de software disciplinado y efectivo. Transforman el testing de una actividad ambigua en un proceso estructurado y medible con límites y objetivos claros.

Criterios bien definidos proporcionan:

  • Claridad sobre cuándo iniciar y detener el testing
  • Objetividad en medir la completitud del testing
  • Confianza de que se cumplen objetivos de calidad
  • Eficiencia a través de testing enfocado y con propósito

Al implementar criterios de entrada y salida SMART adaptados al contexto de tu proyecto, creas un framework para testing consistente y de alta calidad que entrega valor a stakeholders y usuarios por igual.

Recuerda: los mejores criterios son aquellos que balancean rigor con practicidad, sirviendo como guías útiles en lugar de restricciones rígidas. Revisa, refina y adapta tus criterios mientras aprendes qué funciona mejor para tu equipo y proyectos.