SlideShare ist ein Scribd-Unternehmen logo
1 von 32
TOI  Test-Driven Development (TDD) ,[object Object],[object Object],[object Object],[object Object]
Resumen del TOI “ SÓLO ESCRIBIR CÓDIGO PARA ARREGLAR UN TEST QUE FALLA”
GRACIAS
Es un proceso 3 : REFACTOR 2 : ESCRIBIR CÓDIGO 1 : ESCRIBIR UN TEST
Pros y cons de usar TDD ,[object Object],[object Object],[object Object],[object Object]
¿Realmente es más esfuerzo? http://blog.objectmentor.com/articles/2007/09/30/why-you-have-time-for-tdd-but-may-not-know-it-yet   Evolución ideal del proyecto Evolución REAL del proyecto Evolución del proyecto haciendo TDD + IC
Buena práctica “ TDD incluye pruebas unitarias y funcionales automatizadas. Ambas se escriben ANTES que el código que especifican. Las pruebas unitarias se escriben segundos antes, y las pruebas de acpetación horas o incluso días antes. Es posible ganar lo mismo haciendo las pruebas DESPUÉS. Sin embargo, es mucho más difícil. Las pruebas que se escriben ANTES no están tan influidas por la implementación. Las pruebas de aceptación ANTES de implementar son especificaciones de lo que debería ser.  Las pruebas de aceptación DESPUÉS de implementar son frecuentemente especificaciones de lo que es.” http://blog.objectmentor.com/articles/2007/09/30/why-you-have-time-for-tdd-but-may-not-know-it-yet
Buena práctica http://homepage.mac.com/keithray/blog/2006/11/19#JanesRuleDishWasher
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],CALIDAD
Calidad LA CALIDAD ES  GRATIS PERO TIENE UN COSTE
Acceptance TDD Acceptance Test-Driven User Story DEFINITION OF DONE
¿Qué tiene que ver con IC? ,[object Object],[object Object]
LAB-1 : TestFirstChallenge ,[object Object],[object Object]
LAB-1 : TestFirstChallenge ,[object Object],[object Object],[object Object],[object Object]
LAB-2 : MoneyExample ,[object Object],[object Object]
LAB-2 : MoneyExample ,[object Object],[object Object],[object Object]
LAB-2 (testMultiplication) @Test public   void  testMultiplication() { Dollar  five =  new  Dollar(5); assertEquals ( new  Dollar(10), five.times(2)); } ,[object Object],[object Object],[object Object],[object Object],[object Object]
LAB-2 (testEquality) @Test public   void  testMultiplication() { Dollar  five =  new  Dollar(5); assertEquals ( new  Dollar(10), five.times(2)); } @Test public   void  testEquality() { assertTrue ( new  Dollar(5).equals( new  Dollar(5))); assertFalse ( new  Dollar(5).equals( new  Dollar(6))); } ,[object Object],[object Object]
LAB-2 (testMultiplication) @Test public   void  testMultiplication() { Dollar  five =  new  Dollar(5); assertEquals ( new  Dollar(10), five.times(2)); assertEquals ( new  Dollar(15), five.times(3)); } ,[object Object],[object Object]
LAB-2 (testEuroMultiplication) @Test public   void  testEuroMultiplication() { Euro  five =  new  Euro(5); assertEquals ( new  Euro(10), five.times(2)); assertEquals ( new  Euro(15), five.times(3)); } ,[object Object],[object Object]
LAB-2 (testEuroMultiplication) assertFalse ( new  Euro(5).equals(new Dollar(5))); ,[object Object],[object Object]
LAB-2 (testSimpleAdditionSameCurrency) @Test public   void  testSimpleAdditionSameCurrency() { Money sumOfDollars =  new  Dollar(5).plus( new  Dollar(5)); assertEquals ( new  Dollar(10), sumOfDollars); } ,[object Object],[object Object],[object Object]
LAB-2 (testBankExchangeRate) @Test public   void  testBankExchangeRate() { Bank bank =  new  Bank(); bank.addRate(Euro. class ,Dollar. class , new  Double(2)); assertEquals ( new  Double(2), bank.getRate(Euro. class ,Dollar. class )); bank.addRate(Euro. class ,Dollar. class , new  Double(3)); assertEquals ( new  Double(3), bank.getRate(Euro. class ,Dollar. class )); } ,[object Object],[object Object]
LAB-2 (testBankExchangeRate) @Test public   void  testBankExchangeEurosToDollars() { Bank bank =  new  Bank(); bank.addRate(Euro. class ,Dollar. class , new  Double(2)); Money result = bank.exchange( new  Euro(10), Dollar. class ); assertEquals ( new  Dollar(5), result); } ,[object Object],[object Object],[object Object]
LAB-2 (testSimpleAdditionDifferentCurrency) @Test public   void  testSimpleAdditionDifferentCurrency() { Bank bank =  new  Bank(); bank.addRate(Euro. class ,Dollar. class , new  Double(2)); Money result = bank.exchange( new  Euro(10), Dollar. class ). plus( new  Dollar(5)); assertEquals ( new  Dollar(10), result); bank.addRate(Dollar. class ,Euro. class , new  Double(0.5)); result = bank.exchange( new  Dollar(5), Euro. class ). plus( new  Euro(3)); assertEquals ( new  Euro(13), result); } ,[object Object],[object Object]
Conceptos (I) FIXTURE COLABORADORES
Conceptos (II) DOBLES DE PRUEBAS PROBAR EL ESTADO vs PROBAR LAS INTERACCIONES http://fry/dokeos/courses/TOIIPC003   http://flexo/svnRepo/TOI/TOI-DoblesPrueba
Temas relacionados ,[object Object],[object Object],[object Object]
TDD en diferentes entornos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bibliografía recomendada
Enlaces http://www.theserverside.com/tt/articles/article.tss?l=JMockTestDrivenDev   http://www.jmock.org/oopsla2004.pdf   http://www.theserverside.com/tt/articles/article.tss?l=DesigntoUnitTest http://www.ibm.com/developerworks/webservices/library/co-single.html http://www.testearly.com/ http://www.mockobjects.com/ http://www.mockobjects.com/labels/listening%20to%20the%20tests.html
GRACIAS

Weitere ähnliche Inhalte

Ähnlich wie Toi Tdd 20080409

Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cein
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development DrivenParadigma Digital
 
Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDDFernando Perez
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmockkaolong
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd introfperezplain
 
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IITEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IIAnyeni Garay
 
Pruebas Unitarias1.pdf
Pruebas Unitarias1.pdfPruebas Unitarias1.pdf
Pruebas Unitarias1.pdfSERGIO Ibañez
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gioRobert Wolf
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishAkamon Engineering
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaDaniel Gómez
 

Ähnlich wie Toi Tdd 20080409 (20)

Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1Cesnavarra 2009-boletín 1
Cesnavarra 2009-boletín 1
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development Driven
 
TDD Workshop
TDD WorkshopTDD Workshop
TDD Workshop
 
Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDD
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Qunit CookBook español
Qunit CookBook españolQunit CookBook español
Qunit CookBook español
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA IITEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
TEMA Nº 7: SENTENCIAS DE CONTROL DE FLUJO EN JAVA II
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
Pruebas Unitarias1.pdf
Pruebas Unitarias1.pdfPruebas Unitarias1.pdf
Pruebas Unitarias1.pdf
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Unidad ii. tdd
Unidad ii. tddUnidad ii. tdd
Unidad ii. tdd
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gio
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 

Mehr von Jose Manuel Beas

Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)
Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)
Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)Jose Manuel Beas
 
User Story Mapping [webinar DoneTonic, Dic - 2023]
User Story Mapping [webinar DoneTonic, Dic - 2023]User Story Mapping [webinar DoneTonic, Dic - 2023]
User Story Mapping [webinar DoneTonic, Dic - 2023]Jose Manuel Beas
 
Valor y Tipos de Desperdicio [Dic - 2023]
Valor y Tipos de Desperdicio [Dic - 2023]Valor y Tipos de Desperdicio [Dic - 2023]
Valor y Tipos de Desperdicio [Dic - 2023]Jose Manuel Beas
 
Introducción a Flow Efficiency [Dic 2023]
Introducción a Flow Efficiency [Dic 2023]Introducción a Flow Efficiency [Dic 2023]
Introducción a Flow Efficiency [Dic 2023]Jose Manuel Beas
 
Cómo tratar defectos con Kanban [Nov 2023]
Cómo tratar defectos con Kanban [Nov 2023]Cómo tratar defectos con Kanban [Nov 2023]
Cómo tratar defectos con Kanban [Nov 2023]Jose Manuel Beas
 
Introducción a Team Topologies [Oct 2023]
Introducción a Team Topologies [Oct 2023]Introducción a Team Topologies [Oct 2023]
Introducción a Team Topologies [Oct 2023]Jose Manuel Beas
 
Priorización de Portfolio para Agility360
Priorización de Portfolio para Agility360Priorización de Portfolio para Agility360
Priorización de Portfolio para Agility360Jose Manuel Beas
 
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”Jose Manuel Beas
 
Internal keynote - La era del agilismo (curated version)
Internal keynote  - La era del agilismo (curated version)Internal keynote  - La era del agilismo (curated version)
Internal keynote - La era del agilismo (curated version)Jose Manuel Beas
 
CAS2018 - El poder de las metaforas
CAS2018 - El poder de las metaforasCAS2018 - El poder de las metaforas
CAS2018 - El poder de las metaforasJose Manuel Beas
 
How to implement agile in a waterfall company
How to implement agile in a waterfall companyHow to implement agile in a waterfall company
How to implement agile in a waterfall companyJose Manuel Beas
 
Taller exprés planificación ágil
Taller exprés planificación ágilTaller exprés planificación ágil
Taller exprés planificación ágilJose Manuel Beas
 
Scaling Agile without frameworks
Scaling Agile without frameworksScaling Agile without frameworks
Scaling Agile without frameworksJose Manuel Beas
 
Gestión de riesgos en proyectos ágiles
Gestión de riesgos en proyectos ágilesGestión de riesgos en proyectos ágiles
Gestión de riesgos en proyectos ágilesJose Manuel Beas
 
Codemotion 2014 - Desarrollo Agil de Producto para Emprendedores
Codemotion 2014  - Desarrollo Agil de Producto para EmprendedoresCodemotion 2014  - Desarrollo Agil de Producto para Emprendedores
Codemotion 2014 - Desarrollo Agil de Producto para EmprendedoresJose Manuel Beas
 
Startups Mansion - Desarrollo Agil de Producto para Emprendedores
Startups Mansion - Desarrollo Agil de Producto para EmprendedoresStartups Mansion - Desarrollo Agil de Producto para Emprendedores
Startups Mansion - Desarrollo Agil de Producto para EmprendedoresJose Manuel Beas
 
Betabeers Huelva - Agilismo y Lean Startup
Betabeers Huelva - Agilismo y Lean StartupBetabeers Huelva - Agilismo y Lean Startup
Betabeers Huelva - Agilismo y Lean StartupJose Manuel Beas
 
DrupalCamp14 Agile product development for startups
DrupalCamp14 Agile product development for startupsDrupalCamp14 Agile product development for startups
DrupalCamp14 Agile product development for startupsJose Manuel Beas
 

Mehr von Jose Manuel Beas (20)

Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)
Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)
Introducción a los mapas de Wardley (para describir nuestro entorno competitivo)
 
User Story Mapping [webinar DoneTonic, Dic - 2023]
User Story Mapping [webinar DoneTonic, Dic - 2023]User Story Mapping [webinar DoneTonic, Dic - 2023]
User Story Mapping [webinar DoneTonic, Dic - 2023]
 
Valor y Tipos de Desperdicio [Dic - 2023]
Valor y Tipos de Desperdicio [Dic - 2023]Valor y Tipos de Desperdicio [Dic - 2023]
Valor y Tipos de Desperdicio [Dic - 2023]
 
Introducción a Flow Efficiency [Dic 2023]
Introducción a Flow Efficiency [Dic 2023]Introducción a Flow Efficiency [Dic 2023]
Introducción a Flow Efficiency [Dic 2023]
 
Cómo tratar defectos con Kanban [Nov 2023]
Cómo tratar defectos con Kanban [Nov 2023]Cómo tratar defectos con Kanban [Nov 2023]
Cómo tratar defectos con Kanban [Nov 2023]
 
Introducción a Team Topologies [Oct 2023]
Introducción a Team Topologies [Oct 2023]Introducción a Team Topologies [Oct 2023]
Introducción a Team Topologies [Oct 2023]
 
Priorización de Portfolio para Agility360
Priorización de Portfolio para Agility360Priorización de Portfolio para Agility360
Priorización de Portfolio para Agility360
 
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”
Webinar “Repensemos la forma en la que trabajamos; empecemos simplificando”
 
Internal keynote - La era del agilismo (curated version)
Internal keynote  - La era del agilismo (curated version)Internal keynote  - La era del agilismo (curated version)
Internal keynote - La era del agilismo (curated version)
 
Transformar por niveles
Transformar por nivelesTransformar por niveles
Transformar por niveles
 
CAS2018 - El poder de las metaforas
CAS2018 - El poder de las metaforasCAS2018 - El poder de las metaforas
CAS2018 - El poder de las metaforas
 
Los estados intermedios
Los estados intermediosLos estados intermedios
Los estados intermedios
 
How to implement agile in a waterfall company
How to implement agile in a waterfall companyHow to implement agile in a waterfall company
How to implement agile in a waterfall company
 
Taller exprés planificación ágil
Taller exprés planificación ágilTaller exprés planificación ágil
Taller exprés planificación ágil
 
Scaling Agile without frameworks
Scaling Agile without frameworksScaling Agile without frameworks
Scaling Agile without frameworks
 
Gestión de riesgos en proyectos ágiles
Gestión de riesgos en proyectos ágilesGestión de riesgos en proyectos ágiles
Gestión de riesgos en proyectos ágiles
 
Codemotion 2014 - Desarrollo Agil de Producto para Emprendedores
Codemotion 2014  - Desarrollo Agil de Producto para EmprendedoresCodemotion 2014  - Desarrollo Agil de Producto para Emprendedores
Codemotion 2014 - Desarrollo Agil de Producto para Emprendedores
 
Startups Mansion - Desarrollo Agil de Producto para Emprendedores
Startups Mansion - Desarrollo Agil de Producto para EmprendedoresStartups Mansion - Desarrollo Agil de Producto para Emprendedores
Startups Mansion - Desarrollo Agil de Producto para Emprendedores
 
Betabeers Huelva - Agilismo y Lean Startup
Betabeers Huelva - Agilismo y Lean StartupBetabeers Huelva - Agilismo y Lean Startup
Betabeers Huelva - Agilismo y Lean Startup
 
DrupalCamp14 Agile product development for startups
DrupalCamp14 Agile product development for startupsDrupalCamp14 Agile product development for startups
DrupalCamp14 Agile product development for startups
 

Kürzlich hochgeladen

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 JUNITMaricarmen Sánchez Ruiz
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
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 UninoveFagnerLisboa3
 
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 estossgonzalezp1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
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.pptxAlan779941
 
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.pdfvladimiroflores1
 
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.pptxMiguelAtencio10
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
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 eyvanamcerpam
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Kürzlich hochgeladen (15)

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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.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
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
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
 
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
 
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
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
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
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Toi Tdd 20080409

  • 1.
  • 2. Resumen del TOI “ SÓLO ESCRIBIR CÓDIGO PARA ARREGLAR UN TEST QUE FALLA”
  • 4. Es un proceso 3 : REFACTOR 2 : ESCRIBIR CÓDIGO 1 : ESCRIBIR UN TEST
  • 5.
  • 6. ¿Realmente es más esfuerzo? http://blog.objectmentor.com/articles/2007/09/30/why-you-have-time-for-tdd-but-may-not-know-it-yet Evolución ideal del proyecto Evolución REAL del proyecto Evolución del proyecto haciendo TDD + IC
  • 7. Buena práctica “ TDD incluye pruebas unitarias y funcionales automatizadas. Ambas se escriben ANTES que el código que especifican. Las pruebas unitarias se escriben segundos antes, y las pruebas de acpetación horas o incluso días antes. Es posible ganar lo mismo haciendo las pruebas DESPUÉS. Sin embargo, es mucho más difícil. Las pruebas que se escriben ANTES no están tan influidas por la implementación. Las pruebas de aceptación ANTES de implementar son especificaciones de lo que debería ser. Las pruebas de aceptación DESPUÉS de implementar son frecuentemente especificaciones de lo que es.” http://blog.objectmentor.com/articles/2007/09/30/why-you-have-time-for-tdd-but-may-not-know-it-yet
  • 9.
  • 10. Calidad LA CALIDAD ES GRATIS PERO TIENE UN COSTE
  • 11. Acceptance TDD Acceptance Test-Driven User Story DEFINITION OF DONE
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Conceptos (I) FIXTURE COLABORADORES
  • 27. Conceptos (II) DOBLES DE PRUEBAS PROBAR EL ESTADO vs PROBAR LAS INTERACCIONES http://fry/dokeos/courses/TOIIPC003 http://flexo/svnRepo/TOI/TOI-DoblesPrueba
  • 28.
  • 29.
  • 31. Enlaces http://www.theserverside.com/tt/articles/article.tss?l=JMockTestDrivenDev http://www.jmock.org/oopsla2004.pdf http://www.theserverside.com/tt/articles/article.tss?l=DesigntoUnitTest http://www.ibm.com/developerworks/webservices/library/co-single.html http://www.testearly.com/ http://www.mockobjects.com/ http://www.mockobjects.com/labels/listening%20to%20the%20tests.html