[HDP-040] TDD y BDD

[HDP-040] TDD y BDD

Este curso aborda metodologías ágiles, principios de diseño y pruebas, refactorización y herramientas clave como JUnit, Mockito y Cucumber. El alumno aprenderá a crear software de calidad mediante pruebas automatizadas, diseño simple, gestión de casos de uso y técnicas avanzadas de refactorización para mejorar el código.

Duración:                     20 horas

Perfil:                            Experto

Dirigido a

Esta acción formativa va dirigida a programadores, analistas, ingenieros de QA y jefes de proyecto que deseen mejorar sus habilidades en la creación de software de calidad utilizando metodologías ágiles, TDD (Test Driven Development) y BDD (Behavior Driven Development),  implementando prácticas de pruebas automáticas y refactorización en su flujo de trabajo.

Requisitos previos 

Los alumnos necesitarán tener experiencia con el lenguaje de programación Java o C# previos para poder comprender la materia del curso con éxito. 

Objetivos

  • Comprender y aplicar las metodologías ágiles, con enfoque en TDD y BDD.

  • Implementar prácticas de pruebas automatizadas, utilizando JUnit, Mockito, Cucumber y otras herramientas.

  • Mejorar la calidad del código mediante refactorización y principios de diseño como SOLID.

  • Desarrollar un enfoque de pruebas eficiente y efectivo para asegurar el correcto funcionamiento y las cualidades del software.

  • Aplicar técnicas de análisis de pruebas y cobertura de código para mejorar la fiabilidad del software.

  • Uso de la IA como herramienta de soporte para la refactorización del código.

 

Contenido

  1. Fundamentos y Metodologías Ágiles

    • Introducción a las metodologías ágiles

    • Prácticas clave en XP (Extreme Programming)

  2. Pruebas de Software

    • Tipos de pruebas: caja negra y caja blanca

    • Pruebas de funcionamiento y cualidades del software

    • Imposibilidad de probar todo el software

    • Impacto de los requerimientos y casos de uso en las pruebas

  3. Principios de Diseño de Software

    • Diseño simple y principio SOLID

    • Principios de diseño: "Dile, no preguntes" y "Divide y vencerás"

    • Calidad del software: ¿Por qué no se puede codificar sin errores?

  4. Gestión y Ejecución de Pruebas

    • Roles y responsabilidades en pruebas

    • Métodos y métricas clave: MITs (Most Important Test), MIMs (Most Important Metrics)

    • Análisis de datos y valores frontera en pruebas

    • Técnicas de reducción de datos y análisis de rutas

  5. Metodología TDD (Test Driven Development)

    • Ciclo de desarrollo basado en pruebas

    • Ventajas de TDD y herramientas: JUnit, Hamcrest, Mockito

    • Técnicas avanzadas: pruebas paramétricas, mocks, fakes y stubs

    • Cobertura de pruebas (Code Coverage) y herramientas como EclEmma

  6. Refactorización de Código

    • Principios y técnicas de refactorización

    • Identificación y resolución de "malos olores" en el código

    • Reutilización y simplificación de expresiones condicionales

    • Herramientas de refactorización: Eclipse

    • Refactorización de Código con IA IA

  7. Pruebas de Aceptación (ATDD/BDD)

    • Definición de requisitos mediante historias de usuario

    • Desarrollo de escenarios de prueba con un lenguaje accesible

    • Herramientas BDD: Cucumber

 

 

Documentación Recomendada

Mastering Software Testing with JUnit 5
Boni García

Octubre 2017| 350 páginas

ISBN: 9781787285736