Back to QA Automation
Estrategia de Automatización
¿Qué pruebas son mejores para automatizar?
Pruebas repetitivas (Regresión), rutas críticas de negocio, pruebas difíciles de realizar manualmente (por ejemplo, verificación precisa de datos) y características estables.
¿Cómo lidias con las pruebas inestables (Flaky)?
Identifica la causa (entorno, condiciones de carrera, localizadores). Aísla la prueba. Usa esperas explícitas. Verifica el modo de ejecución (sin cabeza vs con cabeza).
¿Qué es la Prueba Guiada por Datos (DDT)?
Una estrategia donde los scripts de prueba leen datos de fuentes externas (CSV, Excel, Base de datos) en lugar de usar valores codificados, permitiendo que la misma prueba se ejecute con múltiples conjuntos de datos.
¿Cuál es la diferencia entre CI, Continuous Delivery y Continuous Deployment?
CI (Integración Continua) integra los cambios de código con frecuencia en una rama compartida con build y tests automáticos en cada integración. Continuous Delivery significa que el código puede desplegarse automáticamente pero una persona aprueba la release. Continuous Deployment significa que se despliega automáticamente cuando pasan todos los checks, sin aprobación manual.
¿Cuáles son las etapas típicas de un pipeline CI/CD?
Commit, build/transpilación, tests unitarios, tests de integración, calidad de código (lint, coverage), escaneo de seguridad, tests E2E, deploy a staging, smoke tests, luego una aprobación manual, deploy a producción y monitorización. Cada etapa es un quality gate; los checks más rápidos y baratos van primero para que los fallos aparezcan pronto.
¿Qué es la pirámide de tests?
Un modelo para equilibrar tipos de test: muchos tests unitarios rápidos y baratos en la base; menos tests de integración en el medio (que prueban la comunicación entre capas como API y BD); y pocos tests E2E lentos y caros en la cima. Invertirla (sobre todo E2E) da suites lentas e inestables. Va de la mano del
shift-left: detectar bugs lo antes y más barato posible.¿Qué son los quality gates en un pipeline?
Condiciones que el código debe cumplir para avanzar: un umbral mínimo de coverage (p. ej. 80%), cero vulnerabilidades críticas, cero tests fallidos y linting limpio. Imponen un nivel de calidad consistente de forma automática y detienen un cambio malo antes de que llegue a producción.
¿Qué es un test flaky y cómo se reduce la flakiness?
Un test flaky pasa o falla de forma intermitente sin un cambio real de código. Causas comunes: race conditions/timing, dependencias entre tests, datos compartidos, animaciones e inestabilidad de red. Soluciones: sustituir sleeps fijos por esperas basadas en condiciones (
waitForSelector, waitForResponse), hacer cada test independiente y mockear las APIs externas inestables.¿Qué estrategias de despliegue debe conocer un SDET?
Canary (lanzar a un pequeño porcentaje de usuarios primero, vigilar métricas y luego ampliar),
blue/green (dos entornos idénticos, cambiar el tráfico al instante y hacer rollback volviendo al anterior), feature flags (activar/desactivar funcionalidades sin redesplegar) y rollback (volver a la versión anterior). Los smoke tests se ejecutan justo tras el deploy para confirmar que la app arranca.¿Cuáles son los bloques básicos de un workflow de GitHub Actions?
Un workflow (un archivo YAML en
.github/workflows) se ejecuta según triggers (on: push, pull_request, schedule, workflow_dispatch). Contiene jobs que corren en un runner (ubuntu-latest), cada uno con steps que usan una action (actions/checkout@v4, actions/setup-node@v4) o ejecutan un comando de shell. Los jobs pueden depender de otros con needs:, ejecutar configuraciones en paralelo con matrix:, cachear dependencias y leer secrets con ${{ secrets.NOMBRE }}.¿Cómo se deben gestionar las credenciales en CI?
Nunca pongas credenciales en el código ni en archivos de configuración. Guárdalas como secrets enmascarados en la plataforma de CI (GitHub: Settings -> Secrets) y referéncialas en tiempo de ejecución (${{ secrets.NOMBRE }}). Acótalas por entorno, marca como protegidos los secrets de despliegue y mantenlos fuera de los logs de los jobs.
¿Cómo se mantiene rápida en CI una suite E2E lenta?
Ejecuta tipos de test independientes como jobs en paralelo, cachea dependencias (
node_modules, binarios de navegador) y reparte (shard) los E2E entre máquinas (p. ej. Playwright --shard=1/4 con una matrix). Ejecuta primero los unitarios como gate rápido, y corre la etapa E2E cara solo tras pasar las etapas más baratas.