Automatización de Pruebas
1. Introducción a la Programación Orientada a Objetos (POO)
- Definición de POO.
2. Fundamentos de Java
- Breve historia de Java.
- Instalación del JDK y configuración del entorno de desarrollo (IDE).
- Primer programa en Java: "Hello World".
- Estructura básica de un programa Java.
3. Clases y Objetos
- ¿Qué es una clase?
- Crear objetos en Java.
- Atributos y métodos de una clase.
- Instanciación de objetos.
4. Encapsulamiento
- Definición de encapsulamiento.
- Modificadores de acceso: private, public, protected.
- Métodos getter y setter para acceder a los atributos.
- Ventajas de usar encapsulamiento.
5. Herencia
- Concepto de herencia en POO.
- Crear una clase base y una clase derivada.
- Uso del operador extends.
- Reutilización de código mediante la herencia.
- Sobreescritura de métodos (override).
6. Polimorfismo
- Concepto de polimorfismo.
- Sobrecarga de métodos (overloading).
- Sobrescritura de métodos en clases derivadas.
7. Abstracción
- Definición de abstracción.
- Clases abstractas.
- Métodos abstractos.
- Interfaces: qué son y cómo implementarlas.
- Diferencias entre clases abstractas e interfaces.
8. Constructores
- ¿Qué es un constructor?
9. Manejo de Excepciones
- Concepto de excepciones.
- Uso de try, catch, finally para manejar excepciones.
- Tipos de excepciones en Java.
- Excepciones personalizadas.
10. Clases y Métodos Estáticos
- Diferencia entre métodos estáticos y no estáticos.
- Uso de la palabra clave static.
- Acceso a variables y métodos estáticos.
11. Paquetes y Modificadores de Acceso
- Organización del código mediante paquetes.
- Importar clases de otros paquetes.
- Control de acceso a clases y métodos.
12. Programación Orientada a Objetos en la Práctica
- Ejemplos prácticos de POO en Java.
1. Introducción a la Automatización de Pruebas
- ¿Qué es la automatización de pruebas?
- Beneficios de la automatización frente a las pruebas manuales.
- Pruebas funcionales vs. no funcionales.
- Herramientas comunes para la automatización de pruebas.
2. Fundamentos de Cucumber
- ¿Qué es Cucumber?
- Ventajas de usar Cucumber en la automatización de pruebas.
- Introducción a Behavior-Driven Development (BDD).
- Instalación y configuración de Cucumber con Java y Maven/Gradle.
- Estructura de un proyecto en Cucumber.
3. Lenguaje Gherkin
- ¿Qué es Gherkin y cómo se usa?
- Sintaxis básica: Feature, Scenario, Given, When, Then.
- Buenas prácticas al escribir escenarios de prueba.
- Ejemplos de escritura de archivos .feature claros y efectivos.
4. Selenium WebDriver
- Introducción a Selenium WebDriver.
- Instalación y configuración de Selenium en un proyecto de Java con Cucumber.
- Fundamentos de automatización web con Selenium:
- Abrir navegadores (Chrome, Firefox, etc.).
- Localización de elementos: ID, Name, Xpath, CSS Selectors.
- Interacción con elementos: Click, Input, Select.
- Tomar capturas de pantalla en caso de fallos.
- Manejo de ventanas emergentes, alertas y ventanas múltiples.
- Ejecución de pruebas en diferentes navegadores (Cross-browser testing).
5. Integración de Cucumber con Selenium
- Crear Step Definitions en Cucumber para interactuar con la web usando Selenium.
- Ejecutar pruebas automáticas desde escenarios escritos en Gherkin.
- Pruebas de ejemplo: automatización de un flujo de login, búsqueda y validación de resultados.
- Ejecución de pruebas paralelas con Selenium Grid.
6. Manejo de Datos en Cucumber
- Uso de Data Tables en Gherkin.
- Uso de Examples para pruebas parametrizadas.
- Reutilización de pasos con expresiones regulares.
- Cucumber Hooks (@Before, @After) para configurar y limpiar los entornos de prueba.
7. GitLab para Gestión de Código y CI/CD
- Introducción a Git y GitLab.
- Flujo básico de trabajo con Git: clonar, commit, push, pull, branches.
- Crear y gestionar un repositorio de pruebas automatizadas en GitLab.
- Integración de pruebas automatizadas en pipelines de CI/CD con GitLab:
- Configuración del archivo .gitlab-ci.yml.
- Ejecutar pruebas de Cucumber/Selenium automáticamente en el pipeline.
- Uso de GitLab Runner para ejecutar las pruebas en diferentes entornos.
8. Jira para Gestión de Proyectos y Defectos
- Introducción a Jira como herramienta de gestión de proyectos ágil.
- Creación de Historias de Usuario, Tareas y Epics.
- Integración de Cucumber con Jira:
- Asociar escenarios de prueba a historias de usuario en Jira.
- Automatizar el flujo de trabajo entre pruebas y tareas en Jira.
- Instalación y configuración de Cucumber con Java y Maven/Gradle.
- Estructura de un proyecto en Cucumber.
9. Reportes de Pruebas
- Generación de reportes automáticos con Cucumber Reports.
- Personalización de reportes para incluir capturas de pantalla y logs.
- Integración con JUnit Reports para visualización en GitLab y Jira.
10. Mejores Prácticas en la Automatización de Pruebas
- Diseño de pruebas mantenibles y escalables.
- Patrones de diseño en la automatización de pruebas (Page Object Model).
- Estrategias para evitar la "fragilidad" en las pruebas automatizadas.
- Técnicas para mejorar la velocidad de las pruebas (pruebas paralelas, selección de casos críticos).
11. Ejecución y Monitoreo de Pruebas
- Ejecutar pruebas localmente y en servidores remotos.
- Monitoreo de pipelines de CI/CD para asegurar la calidad continua del software.
- Analizar resultados de las pruebas y métricas de cobertura.
- Herramientas comunes para la automatización de pruebas.
12. Proyecto Final
- Desarrollar un proyecto de automatización completo:
- Definir escenarios de prueba en Gherkin.
- Implementar las pruebas con Cucumber y Selenium.
- Integrar la ejecución en GitLab CI/CD.
- Gestionar defectos en Jira.
- Presentación y retroalimentación sobre el proyecto.