[HDP-040] TDD y BDD
- Pronoide Wiki Web
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.
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
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