SlideShare une entreprise Scribd logo
1  sur  7
11
Introducción a TDD (Test DrivenIntroducción a TDD (Test Driven
Development)Development)
Samuel Sánchez MuñozSamuel Sánchez Muñoz
Jose Luis Seijo ReigJose Luis Seijo Reig
22
¿Qué es?¿Qué es?
Proceso de desarrollo de softwareProceso de desarrollo de software
orientado a pruebas.orientado a pruebas.
Se basa en la idea de desarrollar pruebas,Se basa en la idea de desarrollar pruebas,
codificar y refactorizar el códigocodificar y refactorizar el código
construido.construido.
33
Test Driven DevelopmentTest Driven Development
TDD se basa en la idea de realizarTDD se basa en la idea de realizar
pruebas unitarias para el código quepruebas unitarias para el código que
debemos desarrollar. A diferencia deldebemos desarrollar. A diferencia del
procedimiento que usamos habitualmente,procedimiento que usamos habitualmente,
desarrollar el código y después realizardesarrollar el código y después realizar
las pruebas unitarias.las pruebas unitarias.
TDD además añade el code refactoring,TDD además añade el code refactoring,
reestructuración del código implementado.reestructuración del código implementado.
44
Ciclo de desarrollo de TDD.Ciclo de desarrollo de TDD.
1ª) Elegir un requisito a desarrollar.1ª) Elegir un requisito a desarrollar.
2ª) Crear la prueba o test.2ª) Crear la prueba o test.
3ª) Ejecutar los tests: falla3ª) Ejecutar los tests: falla ((ROJOROJO).).
4ª) Crear código especifico para resolver el test.4ª) Crear código especifico para resolver el test.
5ª) Ejecutar de nuevo los tests: pasa5ª) Ejecutar de nuevo los tests: pasa ((VERDEVERDE).).
6ª) Refactorizar el código.6ª) Refactorizar el código.
7ª) Ejecutar los tests: pasa7ª) Ejecutar los tests: pasa ((VERDEVERDE).).
55
Ventajas.Ventajas.
-- Los casos de prueba sirven comoLos casos de prueba sirven como
documentación del sistema.documentación del sistema.
- Al escribir una prueba unitaria, se piensa- Al escribir una prueba unitaria, se piensa
en la forma correcta de utilizar un móduloen la forma correcta de utilizar un módulo
que aún no existe.que aún no existe.
- Las pruebas permiten perder el miedo a- Las pruebas permiten perder el miedo a
realizar modificaciones en el código.realizar modificaciones en el código.
66
Inconvenientes.Inconvenientes.
- TDD es difícil de usar en situaciones donde- TDD es difícil de usar en situaciones donde
hacen falta todas las pruebas funcionales parahacen falta todas las pruebas funcionales para
determinar éxito o fracaso.determinar éxito o fracaso.
- El soporte de la gestión es esencial. Sin la- El soporte de la gestión es esencial. Sin la
creencia de toda la organización de que TDD vacreencia de toda la organización de que TDD va
a mejorar el producto, la gestión sentirá que sea mejorar el producto, la gestión sentirá que se
pierde tiempo escribiendo pruebas.pierde tiempo escribiendo pruebas.
- Las pruebas se han visto históricamente como- Las pruebas se han visto históricamente como
una posición más baja que los desarrolladores ouna posición más baja que los desarrolladores o
arquitectos.arquitectos.
77
ConclusiónConclusión
Los modelos ágiles dan mayor autonomíaLos modelos ágiles dan mayor autonomía
al desarrollador, y comunicación conal desarrollador, y comunicación con
cliente, plantea equipos autogestionados,cliente, plantea equipos autogestionados,
evita micromanagering y reduceevita micromanagering y reduce
documentación.documentación.

Contenu connexe

En vedette

Breve introducción a TDD con Phpunit
Breve introducción a TDD con PhpunitBreve introducción a TDD con Phpunit
Breve introducción a TDD con Phpunit
moisesgallego
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
La Red DBAccess
 

En vedette (19)

Introducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotIntroducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric Mignot
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
TDD
TDDTDD
TDD
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Bon news
Bon newsBon news
Bon news
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
XP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la prácticaXP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la práctica
 
Breve introducción a TDD con Phpunit
Breve introducción a TDD con PhpunitBreve introducción a TDD con Phpunit
Breve introducción a TDD con Phpunit
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
Automatizacion De Pruebas De Software
Automatizacion De Pruebas De SoftwareAutomatizacion De Pruebas De Software
Automatizacion De Pruebas De Software
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Pruebas de unidad
Pruebas de unidadPruebas de unidad
Pruebas de unidad
 

Similaire à Joseluisseijoreig samuelsánchezmuñoz

Behavior1
Behavior1Behavior1
Behavior1
arajar
 
Desarrollo ágil
Desarrollo ágilDesarrollo ágil
Desarrollo ágil
fponceh
 

Similaire à Joseluisseijoreig samuelsánchezmuñoz (20)

Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
desarrollo agil-2022.pdf
desarrollo agil-2022.pdfdesarrollo agil-2022.pdf
desarrollo agil-2022.pdf
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Comparación de dos Metodologias
Comparación de dos MetodologiasComparación de dos Metodologias
Comparación de dos Metodologias
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Como hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoComo hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intento
 
Behavior1
Behavior1Behavior1
Behavior1
 
TDD
TDDTDD
TDD
 
Desarrollo y diseño de software
Desarrollo y diseño de softwareDesarrollo y diseño de software
Desarrollo y diseño de software
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
Desarrollo ágil
Desarrollo ágilDesarrollo ágil
Desarrollo ágil
 
Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2Material trainer-depc-v1-parte2
Material trainer-depc-v1-parte2
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 

Dernier

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Joseluisseijoreig samuelsánchezmuñoz

  • 1. 11 Introducción a TDD (Test DrivenIntroducción a TDD (Test Driven Development)Development) Samuel Sánchez MuñozSamuel Sánchez Muñoz Jose Luis Seijo ReigJose Luis Seijo Reig
  • 2. 22 ¿Qué es?¿Qué es? Proceso de desarrollo de softwareProceso de desarrollo de software orientado a pruebas.orientado a pruebas. Se basa en la idea de desarrollar pruebas,Se basa en la idea de desarrollar pruebas, codificar y refactorizar el códigocodificar y refactorizar el código construido.construido.
  • 3. 33 Test Driven DevelopmentTest Driven Development TDD se basa en la idea de realizarTDD se basa en la idea de realizar pruebas unitarias para el código quepruebas unitarias para el código que debemos desarrollar. A diferencia deldebemos desarrollar. A diferencia del procedimiento que usamos habitualmente,procedimiento que usamos habitualmente, desarrollar el código y después realizardesarrollar el código y después realizar las pruebas unitarias.las pruebas unitarias. TDD además añade el code refactoring,TDD además añade el code refactoring, reestructuración del código implementado.reestructuración del código implementado.
  • 4. 44 Ciclo de desarrollo de TDD.Ciclo de desarrollo de TDD. 1ª) Elegir un requisito a desarrollar.1ª) Elegir un requisito a desarrollar. 2ª) Crear la prueba o test.2ª) Crear la prueba o test. 3ª) Ejecutar los tests: falla3ª) Ejecutar los tests: falla ((ROJOROJO).). 4ª) Crear código especifico para resolver el test.4ª) Crear código especifico para resolver el test. 5ª) Ejecutar de nuevo los tests: pasa5ª) Ejecutar de nuevo los tests: pasa ((VERDEVERDE).). 6ª) Refactorizar el código.6ª) Refactorizar el código. 7ª) Ejecutar los tests: pasa7ª) Ejecutar los tests: pasa ((VERDEVERDE).).
  • 5. 55 Ventajas.Ventajas. -- Los casos de prueba sirven comoLos casos de prueba sirven como documentación del sistema.documentación del sistema. - Al escribir una prueba unitaria, se piensa- Al escribir una prueba unitaria, se piensa en la forma correcta de utilizar un móduloen la forma correcta de utilizar un módulo que aún no existe.que aún no existe. - Las pruebas permiten perder el miedo a- Las pruebas permiten perder el miedo a realizar modificaciones en el código.realizar modificaciones en el código.
  • 6. 66 Inconvenientes.Inconvenientes. - TDD es difícil de usar en situaciones donde- TDD es difícil de usar en situaciones donde hacen falta todas las pruebas funcionales parahacen falta todas las pruebas funcionales para determinar éxito o fracaso.determinar éxito o fracaso. - El soporte de la gestión es esencial. Sin la- El soporte de la gestión es esencial. Sin la creencia de toda la organización de que TDD vacreencia de toda la organización de que TDD va a mejorar el producto, la gestión sentirá que sea mejorar el producto, la gestión sentirá que se pierde tiempo escribiendo pruebas.pierde tiempo escribiendo pruebas. - Las pruebas se han visto históricamente como- Las pruebas se han visto históricamente como una posición más baja que los desarrolladores ouna posición más baja que los desarrolladores o arquitectos.arquitectos.
  • 7. 77 ConclusiónConclusión Los modelos ágiles dan mayor autonomíaLos modelos ágiles dan mayor autonomía al desarrollador, y comunicación conal desarrollador, y comunicación con cliente, plantea equipos autogestionados,cliente, plantea equipos autogestionados, evita micromanagering y reduceevita micromanagering y reduce documentación.documentación.