[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
Fundamentos y Metodologías Ágiles
Introducción a las metodologías ágiles
Prácticas clave en XP (Extreme Programming)
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
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?
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
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
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
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