
1. Pruebas de Humo (Smoke Testing)
1.1. Definición
1.1.1. Pruebas superficiales tras un despliegue o cambio
1.2. Propósito
1.2.1. Detectar errores críticos que impidan el funcionamiento básico
1.3. Ejemplo
1.3.1. Verificar carga de una web y enlaces principales
2. Pruebas Unitarias (Unit Testing)
2.1. Definición
2.1.1. Pruebas de unidades individuales de código (funciones, métodos)
2.2. Propósito
2.2.1. Asegurar el correcto funcionamiento de cada componente
2.3. Ejemplo
2.3.1. Probar una función que suma dos números
3. Pruebas E2E (End-to-End Testing)
3.1. Definición
3.1.1. Pruebas del flujo completo de la aplicación
3.2. Propósito
3.2.1. Validar que todos los componentes funcionan juntos correctamente
3.3. Ejemplo
3.3.1. Probar proceso de compra en e-commerce
4. Mocks, Stubs y Fakes
4.1. Simular llamada a API externa
4.1.1. Definición
4.1.1.1. Objetos simulados que verifican interacciones
4.1.2. Propósito
4.1.2.1. Validar llamadas con parámetros correctos
4.1.3. Ejemplo
4.1.3.1. Simular llamada a API externa
4.2. Stubs
4.2.1. Definición
4.2.1.1. Objetos con respuestas predefinidas
4.2.2. Propósito
4.2.2.1. Aislar código de dependencias externas
4.2.3. Ejemplo
4.2.3.1. Probar proceso de compra en e-commerce
4.3. Fakes
4.3.1. Definición
4.3.1.1. Implementaciones simplificadas de componentes reales
4.3.2. Propósito
4.3.2.1. Alternativa ligera para pruebas
4.3.3. Ejemplo
4.3.3.1. Base de datos en memoria
5. Frameworks de Testing
5.1. JUnit 5
5.1.1. Definición
5.1.1.1. Framework para pruebas en Java
5.1.2. Características
5.1.2.1. Pruebas parametrizadas, anotaciones mejoradas
5.1.3. Capacidades
5.1.3.1. Integración con Maven/Gradle
5.2. Jest
5.2.1. Definición
5.2.1.1. Framework para JavaScript (React, Node.js)
5.2.2. Características
5.2.2.1. Mocks integrados, pruebas de snapshots
5.2.3. Capacidades
5.2.3.1. Integración con Babel/Webpack
5.3. Mocha
5.3.1. Definición
5.3.1.1. Framework flexible para JavaScript
5.3.2. Características
5.3.2.1. Pruebas asíncronas, uso de Chai/Sinon
5.3.3. Capacidades
5.3.3.1. Ampliamente usado en Node.js y frontend
5.4. pytest
5.4.1. Definición
5.4.1.1. Framework para Python
5.4.2. Características
5.4.2.1. Sintaxis simple, soporte para fixtures
5.4.3. Capacidades
5.4.3.1. Ideal para ciencia de datos y desarrollo web