Calidad y auditoría

  1. Calidad y auditoría
    1. Verificación formal y métodos formales

      1. Especificación formal
        1. Lógicas temporales (LTL, CTL)
        2. Propiedades de seguridad vs vivacidad
        3. Modelado de sistemas concurrentes
        4. TLA+ y lenguajes de especificación de sistemas distribuidos
      2. Model checking
        1. Búsqueda exhaustiva de estados
        2. Verificación de protocolos concurrentes y distribuidos
        3. Abstracción para reducir el espacio de estados
        4. Detección automática de violaciones de invariantes
      3. Pruebas asistidas por SMT/SAT
        1. SMT solvers (Z3, CVC4)
        2. Satisfacibilidad con teoría de enteros, arreglos, memoria
        3. Chequeo automático de pre/post-condiciones
        4. Bounded model checking
      4. Demostración asistida (proof assistants)
        1. Coq / Isabelle / Lean
        2. Pruebas de corrección funcional de algoritmos críticos
        3. Extracción de código certificado
        4. Verificación de propiedades criptográficas
      5. Aplicaciones prácticas de métodos formales
        1. Verificación de hardware (circuitos, buses)
        2. Protocolos criptográficos y de consenso
        3. Sistemas de control industrial y automoción
        4. Software de infraestructura crítica (aviación, salud, nuclear)
    2. Testing y aseguramiento de calidad

      1. Pruebas unitarias
        1. Pruebas de funciones puras y lógica de negocio local
        2. Aislamiento de dependencias mediante mocks y stubs
        3. Estructura AAA (Arrange / Act / Assert)
        4. Casos borde y entradas inválidas
        5. Diseño orientado a test (TDD)
      2. Pruebas de integración
        1. Integración entre módulos internos
        2. Integración con servicios externos reales o simulados
        3. Pruebas con base de datos en entorno controlado
        4. Migraciones de esquema y compatibilidad de datos
        5. Configuración, semillas y limpieza de datos entre pruebas
      3. Pruebas de extremo a extremo
        1. Flujos completos de usuario
        2. Validación de requisitos funcionales
        3. Escenarios críticos de negocio
        4. Ambientes lo más cercanos a producción
        5. Automatización de journeys repetibles
      4. Pruebas de contrato entre servicios
        1. Productor vs consumidor
        2. Versionamiento de contratos y compatibilidad retroactiva
        3. Validación de esquemas y payloads
        4. Fallos ante cambios no autorizados en la API
        5. Publicación y validación automática en CI
      5. Pruebas basadas en instantáneas y estados esperados
        1. Captura de salidas esperadas complejas
        2. Control de regresiones visuales / estructurales
        3. Revisión y actualización intencional de snapshots
        4. Limitaciones y falsos positivos
      6. Simulación de dependencias externas y uso de dobles de prueba
        1. Stubs, mocks, spies y fakes
        2. Simulación de errores remotos, timeouts y latencia
        3. Emulación de colas, storage, servicios externos
        4. Test harnesses para componentes desacoplados
      7. Pruebas basadas en propiedades
        1. Generación aleatoria de entradas
        2. Invariantes y leyes que siempre deben cumplirse
        3. Minimización de casos que fallan (shrinking)
        4. Detección de clases de comportamiento inesperadas
      8. Métricas de cobertura y criterios de calidad
        1. Cobertura de líneas, ramas, paths lógicos y mutación
        2. Umbrales mínimos aceptables
        3. Cobertura útil vs cobertura artificial
        4. Detección de código muerto o no ejercitado
      9. Análisis estático y linters
        1. Análisis sintáctico y estilo
        2. Análisis semántico y tipos
        3. Detección temprana de errores comunes
        4. Reglas personalizadas alineadas a la guía interna
        5. Integración con el flujo de desarrollo
      10. Análisis de seguridad automatizado
        1. Escaneo de dependencias vulnerables
        2. Detección de secretos en repositorios
        3. Validación de políticas de autenticación y autorización
        4. Pruebas dinámicas de seguridad (DAST)
        5. Endurecimiento de superficie de ataque en CI/CD
      11. Ejecución automática de pruebas en pipelines de entrega
        1. Gates de calidad antes de desplegar
        2. Matrices de entornos / versiones / configuraciones
        3. Paralelización y reducción de tiempos de feedback
        4. Reportes automáticos y bloqueo en caso de fallos
        5. Reejecución selectiva de suites relevantes
    3. Procesos de calidad y auditoría

      1. Integración continua y despliegue continuo
        1. Validación automática por commit / merge request
        2. Políticas de ramas, versionado y tagging
        3. Despliegues progresivos, canary y blue/green
        4. Rollbacks controlados y reversibilidad segura
      2. Control de versiones de dependencias externas
        1. Fijación de versiones (pinning)
        2. Auditoría de cambios en librerías y SDKs
        3. Renovación y caducidad de dependencias
        4. Gestión de SBOM (Software Bill of Materials)
      3. Revisión de código estructurada y guías internas
        1. Estándares de revisión técnica y funcional
        2. Reglas de aprobación mínima y roles responsables
        3. Comentarios accionables y trazables
        4. Prevención de deuda técnica introducida
      4. Auditorías de seguridad y cumplimiento normativo
        1. Revisión de superficie de ataque
        2. Gestión de accesos, llaves y secretos
        3. Modelado de amenazas y evaluación de riesgo
        4. Verificación de procesos frente a regulaciones aplicables
      5. Aseguramiento de calidad (QA) y control de calidad (QC)
        1. QA como prevención de defectos
        2. QC como detección de defectos
        3. Estrategias de validación manual y exploratoria
        4. Priorización de defectos según impacto
      6. Métricas de calidad operacional
        1. Densidad de defectos
        2. Tasa de fallos por despliegue
        3. MTTR (tiempo medio de recuperación)
        4. Disponibilidad y SLO/SLA cumplidos
      7. Pruebas de aceptación y regresión
        1. Validación contra criterios de negocio acordados
        2. Suites de regresión automatizadas
        3. Prevención de reaparición de bugs antiguos
        4. Validación previa a hitos de lanzamiento
      8. Estándares de codificación y criterios de aprobación
        1. Convenciones de estilo y formato
        2. Reglas de documentación mínima por cambio
        3. Política de logging y manejo de errores
        4. Restricciones de complejidad ciclomática y acoplamiento
      9. Pruebas no funcionales
        1. Pruebas de rendimiento y latencia
        2. Pruebas de carga, estrés y escalabilidad
        3. Pruebas de resiliencia y tolerancia a fallos
        4. Pruebas de consumo de recursos y costos
      10. Documentación de calidad y trazabilidad
        1. Registro de decisiones técnicas (ADR)
        2. Historial de cambios funcionales y de infraestructura
        3. Evidencia de validación y certificación
        4. Mapeo requisito → prueba → resultado
      11. Cumplimiento de marcos y certificaciones de la industria
        1. Controles y requisitos regulatorios aplicables
        2. Estándares de seguridad y privacidad de datos
        3. Ciclos de reevaluación y recertificación
        4. Responsabilidades legales y de auditoría externa
      12. Evaluaciones posteriores al lanzamiento y mantenimiento preventivo
        1. Post-mortems y análisis de incidentes
        2. Gestión de deuda técnica acumulada
        3. Planificación de parches y actualizaciones rutinarias
        4. Observabilidad continua y alertas tempranas
Última modificación October 27, 2025: changes (85a7032)