glosario de terminos de testing principal
🧠 Glosario de Términos de Testing
Compilación de definiciones, conceptos clave, metodologías y herramientas relacionadas con el testing de software, QA y CI/CD.
Referencia cruzada con la nota principal[Testing](/testing/testing/).
⚙️ Ecosistema y Entornos
DevOps
Cultura y conjunto de prácticas que integran desarrollo (Dev) y operaciones (Ops) para automatizar y mejorar los procesos de entrega continua (CI/CD). Promueve la colaboración, la automatización y la observabilidad.
CI/CD (Continuous Integration / Continuous Deployment)
Pipeline automatizado que compila, ejecuta tests y despliega el código de forma continua.
- CI (Integración continua): verifica que cada commit sea válido.
- CD (Entrega/Despliegue continuo): automatiza la entrega a entornos de staging o producción.
Staging Environment
Entorno intermedio entre desarrollo y producción usado para validar cambios en condiciones casi reales antes del despliegue final.
Arquitectura y System Design
Diseño de alto nivel del sistema (módulos, servicios, dependencias) que influye en la estrategia de testing y aislamiento de componentes.
Mocks (MSW)
Técnica para simular dependencias externas (APIs, servicios, DB).
- MSW (Mock Service Worker): intercepta peticiones HTTP en tests para devolver respuestas simuladas.
Profiler
Herramienta que mide el rendimiento del código (uso de CPU, memoria, tiempos de ejecución) para detectar cuellos de botella.
Debugger
Utilidad que permite inspeccionar el estado del programa durante la ejecución paso a paso, detectar errores y comprender el flujo.
Linter
Herramienta que analiza el código fuente para identificar errores de estilo, sintaxis o prácticas inseguras.
Ejemplo: ESLint, Prettier.
Monitoring Feedback Loop
Ciclo continuo de mejora entre testing, despliegue y observación en producción. Permite ajustar el código en base a métricas reales.
🤖 Test Automation, CI/CD y DevOps
Test Automation
Uso de herramientas y scripts para ejecutar pruebas sin intervención manual.
Permite repetir validaciones y acelerar los ciclos de desarrollo.
Scaffolding Tests
Generación automática de plantillas de pruebas (tests base) al crear módulos o componentes. Común en frameworks CLI (Angular, Nest, etc.).
Plugins de Testing
Extensiones o librerías que facilitan la integración de pruebas en pipelines o IDEs. Ejemplo: Jest Plugin, Cypress Dashboard.
Build Automation
Proceso automatizado de compilación, ejecución de pruebas y empaquetado del código. Se usa en pipelines CI/CD.
Feature Flags
Mecanismo que habilita o deshabilita funcionalidades en tiempo real sin necesidad de redeploy. Facilita pruebas A/B y despliegues controlados.
Canary Releases
Despliegues graduales a un subconjunto de usuarios o servidores antes de la publicación completa, para detectar errores en entornos reales.
💡 Metodologías, Estrategias y Prácticas
TDD (Test Driven Development)
Metodología en la que los tests se escriben antes del código funcional.
Ciclo: Red → Green → Refactor.
BDD (Behavior Driven Development)
Extensión de TDD enfocada en el comportamiento observable del sistema, usando lenguaje natural (ej. Given-When-Then).
E2E (End-to-End Testing)
Pruebas que validan todo el flujo de usuario desde la interfaz hasta la base de datos.
Testing Pyramid
Modelo que sugiere más tests unitarios que integraciones o E2E, priorizando eficiencia y mantenimiento.
Testing Trophy
Enfoque moderno (Kent C. Dodds) que equilibra la pirámide con más peso en pruebas de integración y menos en E2E.
Regression Testing
Garantiza que nuevas versiones no rompan funcionalidades existentes.
Exploratory Testing
Pruebas manuales sin casos predefinidos. Se basa en la experiencia del tester para encontrar fallos inesperados.
Acceptance Testing (UAT)
Validación realizada por el cliente o negocio para asegurar que el sistema cumple los requisitos funcionales.
Snapshot Testing
Compara salidas actuales con versiones guardadas previamente (snapshots) para detectar cambios involuntarios.
Smoke Testing
Pruebas rápidas que verifican si el sistema arranca y las funciones básicas operan correctamente.
Sanity Testing
Validación superficial después de cambios menores, para confirmar que no se introdujeron errores evidentes.
Agile Testing
Práctica de testing continua dentro de ciclos ágiles. Se enfoca en la colaboración y el feedback inmediato.
🧩 Tipos de Pruebas y Frameworks
Unit Test
Validan funciones o métodos individuales en aislamiento.
Ejemplo: probar sum(a,b) retorna el valor esperado.
Integration Test
Verifican la interacción entre módulos (ej. backend + DB).
Aseguran que los componentes colaboren correctamente.
Contract Testing
Comprueba que los microservicios cumplen los contratos de comunicación esperados.
Ejemplo: herramienta Pact.
Service Virtualization
Simula servicios externos o dependencias complejas (bases de datos, APIs). Ej: WireMock, Hoverfly.
Testcontainers
Crea entornos efímeros con Docker para pruebas realistas (DB, Redis, Kafka).
Docker Compose
Permite ejecutar múltiples servicios en conjunto para pruebas de integración locales.
E2E Testing Tools
- Cypress: framework rápido para tests E2E de frontend.
- Playwright: alternativa moderna, multibrowser.
- Selenium: automatización tradicional de navegadores.
API Testing
Validan endpoints y respuestas de APIs REST.
Herramientas: Postman, Newman, REST Assured (Java).
💻 Frontend y Visual Testing
Screenshot Testing
Captura imágenes del resultado visual del componente y las compara para detectar cambios.
Visual Regression Testing
Detecta diferencias visuales entre versiones. Ej: Percy, Applitools.
Accessibility Testing
Evalúa el cumplimiento de estándares de accesibilidad (WCAG).
Herramientas: axe-core, Lighthouse CI.
Storybook
Entorno aislado para desarrollar y testear componentes UI.
Vitest
Framework ultrarrápido de testing para proyectos con Vite.
Testing Library
Ecosistema moderno de testing enfocado en la experiencia del usuario (React, Angular, Vue).
Supertest
Framework para testear endpoints HTTP en Node.js.
Nock
Permite hacer mocking de peticiones HTTP en tests de Node.
🧰 QA, Monitoreo y Cobertura
QA (Quality Assurance)
Proceso que asegura la calidad del software mediante planificación, ejecución de pruebas, análisis y reporting.
Legacy Code Testing
Introducir pruebas gradualmente en código antiguo sin tests.
Production Validation
Pruebas o monitoreo en producción para validar comportamiento real post-deploy.
Logging y Métricas
Recolección de datos de ejecución, errores y tiempos para análisis posterior.
Benchmark Testing
Evalúa la duración o eficiencia de funciones específicas.
Performance Testing
Mide el rendimiento general bajo carga. Ej: JMeter, k6.
Load Testing
Evalúa la respuesta del sistema ante usuarios concurrentes.
Stress Testing
Mide la estabilidad del sistema ante condiciones extremas.
Chaos Testing
Simula fallos deliberados para evaluar la resiliencia (ej. Gremlin).
Security Testing
Identifica vulnerabilidades (OWASP ZAP, Burp Suite).
Allure Report
Herramienta de informes visuales de resultados de pruebas.
TestRail / Xray
Plataformas de gestión de casos de prueba, trazabilidad y reporting.
SonarQube
Analiza la calidad, mantenibilidad y seguridad del código fuente (análisis estático).
Coveralls / Codecov
Miden la cobertura de código (porcentaje de líneas probadas por tests).
Mutation Testing
Evalúa la calidad de los tests alterando el código (mutaciones) para comprobar si los tests detectan errores.
Ej: StrykerJS, PIT.
🔄 Patrones de Dependencias y Dobles de Test
Test Doubles
Objetos o componentes simulados usados para aislar partes del sistema bajo prueba.
Stub
Componente simple que devuelve valores predefinidos sin lógica interna.
Ejemplo: devolver un usuario simulado.
Mock
Objeto que valida interacciones: cuántas veces se llamó un método, con qué parámetros, etc.
Ejemplo: mock de envío de correo.
Fake
Implementación funcional simplificada usada en lugar de una dependencia real (DB en memoria, servicio local, etc.).
Ejemplo: fake de inventario.
📊 Herramientas Complementarias
- JMeter: herramienta clásica de carga y rendimiento.
- k6: alternativa moderna (JavaScript).
- Lighthouse: mide performance, SEO y accesibilidad.
- OWASP ZAP / Burp Suite: seguridad y pentesting automatizado.
- ESLint / Prettier: linting y formateo.
- Allure / Jest Docs: generación de documentación automática de tests.
📘 Conceptos Clave
- Border Cases: entradas límite o valores extremos que prueban la robustez.
- Use Cases: escenarios funcionales que reflejan casos de uso reales.
- Feature Flag: control de visibilidad de funciones en entornos específicos.
- Build: proceso de compilación y empaquetado de código.
- Pipeline: secuencia automatizada de pasos de integración, test y despliegue.
- Refactoring: reestructuración del código sin alterar su comportamiento observable.
- Repository Pattern: patrón para desacoplar acceso a datos de la lógica del negocio.
- Time-based Test: prueba que depende del tiempo (ej. expiración de tokens).
Referencia cruzada: Testing, CICD, QA, devops, Automation, BDD, TDD - Test Driven Development, E2E - End to End Testing, SonarQube, Coveralls Docs-, JMeter, Cypress, Playwright, Testing Library, MSW Mocks service worker, Testcontainers.
¿Te gusta este contenido? Suscríbete vía RSS