Construcción de Software Robusto con TDD


Test driven development

Introducción
¿Estás cansado de tener que estar emparchando tu código todo el tiempo?
¿Querés tirar el sistema en el que trabajás a la basura porque es inmantenible e inmanejable?
¿Te gustaría estar seguro de que los cambios que hiciste no generarán errores?
¿Te gustaría poder mejorar el diseño de tu sistema sin tener que rezar para no introducir bugs?
¡Entonces este curso es para vos!
Descripción
El objetivo de este curso es transmitirte la técnica de desarrollo ágil denominada Test Driven Development (TDD), utilizando para ello ejemplos prácticos y cotidianos. El curso parte de una breve introducción teórica para luego concentrarse en ejercicios prácticos especialmente preparados para que aprendas la técnica, puesto que creemos que 'la mejor manera de aprender es haciendo'.

Además de aprender la técnica de TDD, debido a la índole práctica del curso, se realizarán discusiones enriquecedoras de diseño y arquitectura que te permitirán complementar, validar y aumentar tus conocimientos sobre el desarrollo de software utilizando objetos.

Una vez terminado el curso, dominarás la técnica de Test Driven Development, podrás analizar el impacto de implementarla en tu ambiente de trabajo y tendrás nuevas herramientas de diseño a tu disposición.

Temario

  • Metodología

  • Clasificación de los tests (Unitario/Funcional/Aceptación, Programación/Integración/Regresión, etc)

  • Herramientas de automatización de testing (xUnit, WebTest, etc)

  • Casos prácticos de testing

  • Especificación de Comportamiento

  • Casos negativos

  • Triangulación

  • Cobertura

  • Reglas y heurísticas de buen diseño con Objetos

  • Refactoring

  • Mock Objects

  • Ventajas y beneficios que ofrece a un ciclo de vida iterativo/incremental

  • Relación e implementación en distintas tecnologías

  • Conclusiones sobre el significado y beneficios de TDD

  • Conclusiones sobre cómo diseñar e implementar software robusto


Objetivos
Resultado esperado

  • Los asistentes estarán capacitados para generar código robusto y correcto

  • Los asistentes agregarán a su conocimiento un conjunto de reglas y heurísticas de buen diseño con Objetos

  • Los asistentes podrán generar casos de prueba que les permitan administrar la evolución de sus diseños/código de una manera segura

  • Los asistentes conocerán distintas técnicas de testing que podrán utilizar mientras realizan TDD


Que no cubre

  • Conceptos particulares sobre los distintos tipos de testing

  • Temas avanzados de TDD

  • Uso de algún lenguaje de programación particular


Pre-requisitos
Haber realizado el curso Diseño Avanzado de Software con Objetos I o conocimientos acorde a lo presentado en dicho curso

Audiencia
Programadores, Diseñadores, Arquitectos

Cursos relacionados

Duración
20 horas
Lenguajes de programación
Smalltalk - Java - .Net - Ruby - Python - ObjectiveC - Php - Swift - JavaScript