PROGRAMA

Automatización de Pruebas

El Curso de Automatización de Pruebas está diseñado para llevarte desde los conceptos básicos hasta un dominio avanzado de las herramientas de automatización más demandadas en el mercado. En este programa intensivo de 4 meses, aprenderás a automatizar pruebas de software de manera eficiente y a aplicar las mejores prácticas que buscan las empresas líderes. A lo largo del curso, recibirás formación práctica, guiada paso a paso por expertos en la industria, y contarás con el apoyo constante de una comunidad de estudiantes y profesores comprometidos con tu éxito.
En esta ocación incluimos como bonus un Curso Introductorio de Nivelación en Programación Orientada a Objetos en Java. Este curso te brindará una base sólida en programación, diseñada especialmente para principiantes, y te permitirá abordar con confianza los temas más avanzados en automatización. Al finalizar, estarás completamente preparado para aprovechar al máximo el curso principal.
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
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.
Creado con