SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Introducción a TDD
PyConEs 2016
https://github.com/aleasoluciones/bifer
Para qué estamos aquí
● Para divertirnos, aprender y compartir
● Qué es TDD (Test-Driven Development)
● Qué es una kata
● Trabajar en parejas y con pomodoros
Test Pyramid
Fuente: http://martinfowler.com/bliki/TestPyramid.html
¿Qué es un test unitario?
Fast
Isolated/Independent
Repeatable
Self-Validating
Thorough and Timely
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing
https://pragprog.com/magazines/2012-01/unit-tests-are-first
Estructura de un test
with describe(‘Mi funcionalidad de suma’):
with context(‘cuando sumo 2 y 2’):
with it(‘el sistema retorna 4’’):
calculadora = MiCalculadora() # Arrange
resultado = calculadora.suma(2, 2) # Act
expect(resultado).to(equal(4)) # Assert
¿Qué es TDD?
● Técnica de desarrollo de software
● Ayuda a:
○ Enfocarte en la funcionalidad a desarrollar: escribir menos código
○ Descubrir poco a poco cómo resolver el problema
○ Crear mejores tests de tu código
○ Código de producción cubierto por tests (red de seguridad)
● No necesariamente ayuda a mejorar tu diseño
Ciclo de vida de TDD
Escribir test que falla
Hacer pasar el testRefactorizar
¿Qué es una kata?
http://codekata.com/
Herramientas a utilizar
● mamba
○ test runner con filosofía BDD: contextos y qué hace el sistema
● expects
○ ante una acción, ¿qué espero que ocurra?
○ expect(resultado_real).to(resultado_esperado)
● Ejemplo: https://github.com/aleasoluciones/pycones2016
Kata FizzBuzz
http://www.solveet.com/exercises/Kata-FizzBuzz/11
https://github.com/aleasoluciones/pycones2016
Cómo vamos a hacerlo:
- Pomodoro (3 iteraciones de 25 minutos cada una)
- Pair programming + Ping Pong
- Escribe lo mínimo para que funcione y pase el test
- Mob Programming: ¿os hace?
Kata FizzBuzz: formato iteraciones
A tirar líneas (17 minutos)
8 minutos para feedback
- show me the code
- ¿dudas?
- ¿cambio de parejas?
Bola extra
● Devolver “Woof” si un número es divisible por 7
● Devolver “Fizz” si es divisible por 3 o si incluye un 3 en el número
● Devolver “Buzz” si es divisible por 5 o si incluye un 5 en el número
● No usar else
● Un único nivel de indentación por método
● No encadenar métodos: ley de Demeter (principio del menor conocimiento)
● Sin usar if()
Siguientes pasos
● Ideas para katas: https://github.com/12meses12katas
● Bibliografía
○ TDD by example (Kent Beck)
○ Growing Object-Oriented guided by tests (Steve Freeman, Nat Pryce)
○ Diseño ágil con TDD (Carlos Blé)
● Is TDD dead?
○ http://martinfowler.com/articles/is-tdd-dead/
○ https://www.youtube.com/watch?v=z9quxZsLcfo
Screencasts
● Screencasts de Sandro Mancuso:
○ https://www.youtube.com/watch?v=iZjgj1S0FCY
○ https://www.youtube.com/watch?v=XHnuMjah6ps
● Carlos Blé
○ Implementando algoritmos con TDD
○ Kata de las cartas
Ya casi nos vamos…
Feedback del taller:
● Sensaciones generales
● ¿Qué os ha parecido TDD?
○ ¿Fácil, difícil?
○ ¿Valioso, inútil?
● ¿Alguien se plantea empezar a probarlo en su día a día?
Feedback visual: Niko-niko
Fuente: https://github.com/starmer/team-mood-tracker
Taller PyConEs 2016: Introducción a TDD

Más contenido relacionado

La actualidad más candente

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
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 
Framework de test spock
Framework de test spock Framework de test spock
Framework de test spock Fran García
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Javier_J
 
Movimientos celin robotica
Movimientos celin roboticaMovimientos celin robotica
Movimientos celin roboticavalerylaraCH
 
Fiuba 2 D
Fiuba 2 DFiuba 2 D
Fiuba 2 DWWDD
 

La actualidad más candente (13)

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
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
Framework de test spock
Framework de test spock Framework de test spock
Framework de test spock
 
1. Objetivos del curso de GIT y GITHUB.
1. Objetivos del curso de GIT y GITHUB.1. Objetivos del curso de GIT y GITHUB.
1. Objetivos del curso de GIT y GITHUB.
 
Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Intro a Grails @ ITESCA
Intro a Grails @ ITESCAIntro a Grails @ ITESCA
Intro a Grails @ ITESCA
 
Seminario SOLID-TDD
Seminario SOLID-TDDSeminario SOLID-TDD
Seminario SOLID-TDD
 
Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014
 
Movimientos celin robotica
Movimientos celin roboticaMovimientos celin robotica
Movimientos celin robotica
 
1. Introducción al HTML.
1. Introducción al HTML.1. Introducción al HTML.
1. Introducción al HTML.
 
Fiuba 2 D
Fiuba 2 DFiuba 2 D
Fiuba 2 D
 

Destacado

Presentación CAS 2016: Alineando valores y principios con prácticas técnicas
Presentación CAS 2016: Alineando valores y principios con prácticas técnicasPresentación CAS 2016: Alineando valores y principios con prácticas técnicas
Presentación CAS 2016: Alineando valores y principios con prácticas técnicasAlea Soluciones, S.L.
 
Parinter khizar ali sandhou 03486101016
Parinter khizar ali sandhou 03486101016Parinter khizar ali sandhou 03486101016
Parinter khizar ali sandhou 03486101016khizar ali
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
Jelita pulsareload
Jelita pulsareloadJelita pulsareload
Jelita pulsareloadJelita Pulsa
 
A inclusão começa em casa (1)
A inclusão começa em casa (1)A inclusão começa em casa (1)
A inclusão começa em casa (1)64422102
 
E castillo act4_s4
E castillo act4_s4E castillo act4_s4
E castillo act4_s4EdgarCS
 
Aula 08 arduíno
Aula 08   arduínoAula 08   arduíno
Aula 08 arduínoviktordwarf
 
Clase expositiva
Clase expositivaClase expositiva
Clase expositivaHanniadlp20
 
Chris Ellis - Group Digital Marketing Manager, Belron
Chris Ellis - Group Digital Marketing Manager, BelronChris Ellis - Group Digital Marketing Manager, Belron
Chris Ellis - Group Digital Marketing Manager, BelronGlobal Business Intelligence
 

Destacado (15)

Presentación CAS 2016: Alineando valores y principios con prácticas técnicas
Presentación CAS 2016: Alineando valores y principios con prácticas técnicasPresentación CAS 2016: Alineando valores y principios con prácticas técnicas
Presentación CAS 2016: Alineando valores y principios con prácticas técnicas
 
Parinter khizar ali sandhou 03486101016
Parinter khizar ali sandhou 03486101016Parinter khizar ali sandhou 03486101016
Parinter khizar ali sandhou 03486101016
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
SAMPLES
SAMPLESSAMPLES
SAMPLES
 
Blogs
BlogsBlogs
Blogs
 
Jelita pulsareload
Jelita pulsareloadJelita pulsareload
Jelita pulsareload
 
A inclusão começa em casa (1)
A inclusão começa em casa (1)A inclusão começa em casa (1)
A inclusão começa em casa (1)
 
E castillo act4_s4
E castillo act4_s4E castillo act4_s4
E castillo act4_s4
 
Aula 08 arduíno
Aula 08   arduínoAula 08   arduíno
Aula 08 arduíno
 
Clase expositiva
Clase expositivaClase expositiva
Clase expositiva
 
Clase 1 tema 4
Clase 1 tema 4Clase 1 tema 4
Clase 1 tema 4
 
Redes
RedesRedes
Redes
 
Chris Ellis - Group Digital Marketing Manager, Belron
Chris Ellis - Group Digital Marketing Manager, BelronChris Ellis - Group Digital Marketing Manager, Belron
Chris Ellis - Group Digital Marketing Manager, Belron
 
Cachaça 51 - Outdoor especial
Cachaça 51 - Outdoor especialCachaça 51 - Outdoor especial
Cachaça 51 - Outdoor especial
 

Similar a Taller PyConEs 2016: Introducción a TDD

Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilagilenavarra
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd introfperezplain
 
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ácticaSantiago Blanco
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweekCarlos Ble
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
ChatGPT para SEO. Pros y Contras
ChatGPT para SEO. Pros y ContrasChatGPT para SEO. Pros y Contras
ChatGPT para SEO. Pros y ContrasLuis M Villanueva
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDSantiago Blanco
 
Lima agile day tdd con visual studio 2010
Lima agile day   tdd con visual studio 2010Lima agile day   tdd con visual studio 2010
Lima agile day tdd con visual studio 2010Gustavo Veliz
 
Introducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevillaIntroducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevillaJesús López de la Cruz
 
Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)jmiguel rodriguez
 
Cómo diagnosticar problemas de rendimiento en entornos LAMP
Cómo diagnosticar problemas de rendimiento en entornos LAMPCómo diagnosticar problemas de rendimiento en entornos LAMP
Cómo diagnosticar problemas de rendimiento en entornos LAMPJavier Carranza
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
 
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 PruebasOrlando Bustos Mateluna
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 

Similar a Taller PyConEs 2016: Introducción a TDD (20)

Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
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
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
ChatGPT para SEO. Pros y Contras
ChatGPT para SEO. Pros y ContrasChatGPT para SEO. Pros y Contras
ChatGPT para SEO. Pros y Contras
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDD
 
Cuida tu código: Clean Code
Cuida tu código: Clean CodeCuida tu código: Clean Code
Cuida tu código: Clean Code
 
Lima agile day tdd con visual studio 2010
Lima agile day   tdd con visual studio 2010Lima agile day   tdd con visual studio 2010
Lima agile day tdd con visual studio 2010
 
Introducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevillaIntroducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevilla
 
Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)Clean Code (Presentacion interna en Virtual Software)
Clean Code (Presentacion interna en Virtual Software)
 
Cómo diagnosticar problemas de rendimiento en entornos LAMP
Cómo diagnosticar problemas de rendimiento en entornos LAMPCómo diagnosticar problemas de rendimiento en entornos LAMP
Cómo diagnosticar problemas de rendimiento en entornos LAMP
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
TDD en el mundo real
TDD en el mundo realTDD en el mundo real
TDD en el mundo real
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer 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
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 

Más de Alea Soluciones, S.L. (8)

Boot process: BIOS vs UEFI
Boot process: BIOS vs UEFIBoot process: BIOS vs UEFI
Boot process: BIOS vs UEFI
 
JavaScript, qué hermoso eres
JavaScript, qué hermoso eresJavaScript, qué hermoso eres
JavaScript, qué hermoso eres
 
Introducción a sysdig
Introducción a sysdigIntroducción a sysdig
Introducción a sysdig
 
Tests funcionales con Geb
Tests funcionales con GebTests funcionales con Geb
Tests funcionales con Geb
 
Introduction to Connascence
Introduction to ConnascenceIntroduction to Connascence
Introduction to Connascence
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Polymer 101
Polymer 101Polymer 101
Polymer 101
 
Twelve factor apps
Twelve factor appsTwelve factor apps
Twelve factor apps
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 

Taller PyConEs 2016: Introducción a TDD

  • 3. Para qué estamos aquí ● Para divertirnos, aprender y compartir ● Qué es TDD (Test-Driven Development) ● Qué es una kata ● Trabajar en parejas y con pomodoros
  • 5. ¿Qué es un test unitario? Fast Isolated/Independent Repeatable Self-Validating Thorough and Timely https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing https://pragprog.com/magazines/2012-01/unit-tests-are-first
  • 6. Estructura de un test with describe(‘Mi funcionalidad de suma’): with context(‘cuando sumo 2 y 2’): with it(‘el sistema retorna 4’’): calculadora = MiCalculadora() # Arrange resultado = calculadora.suma(2, 2) # Act expect(resultado).to(equal(4)) # Assert
  • 7. ¿Qué es TDD? ● Técnica de desarrollo de software ● Ayuda a: ○ Enfocarte en la funcionalidad a desarrollar: escribir menos código ○ Descubrir poco a poco cómo resolver el problema ○ Crear mejores tests de tu código ○ Código de producción cubierto por tests (red de seguridad) ● No necesariamente ayuda a mejorar tu diseño
  • 8. Ciclo de vida de TDD Escribir test que falla Hacer pasar el testRefactorizar
  • 9. ¿Qué es una kata? http://codekata.com/
  • 10. Herramientas a utilizar ● mamba ○ test runner con filosofía BDD: contextos y qué hace el sistema ● expects ○ ante una acción, ¿qué espero que ocurra? ○ expect(resultado_real).to(resultado_esperado) ● Ejemplo: https://github.com/aleasoluciones/pycones2016
  • 11. Kata FizzBuzz http://www.solveet.com/exercises/Kata-FizzBuzz/11 https://github.com/aleasoluciones/pycones2016 Cómo vamos a hacerlo: - Pomodoro (3 iteraciones de 25 minutos cada una) - Pair programming + Ping Pong - Escribe lo mínimo para que funcione y pase el test - Mob Programming: ¿os hace?
  • 12. Kata FizzBuzz: formato iteraciones A tirar líneas (17 minutos) 8 minutos para feedback - show me the code - ¿dudas? - ¿cambio de parejas?
  • 13. Bola extra ● Devolver “Woof” si un número es divisible por 7 ● Devolver “Fizz” si es divisible por 3 o si incluye un 3 en el número ● Devolver “Buzz” si es divisible por 5 o si incluye un 5 en el número ● No usar else ● Un único nivel de indentación por método ● No encadenar métodos: ley de Demeter (principio del menor conocimiento) ● Sin usar if()
  • 14. Siguientes pasos ● Ideas para katas: https://github.com/12meses12katas ● Bibliografía ○ TDD by example (Kent Beck) ○ Growing Object-Oriented guided by tests (Steve Freeman, Nat Pryce) ○ Diseño ágil con TDD (Carlos Blé) ● Is TDD dead? ○ http://martinfowler.com/articles/is-tdd-dead/ ○ https://www.youtube.com/watch?v=z9quxZsLcfo
  • 15. Screencasts ● Screencasts de Sandro Mancuso: ○ https://www.youtube.com/watch?v=iZjgj1S0FCY ○ https://www.youtube.com/watch?v=XHnuMjah6ps ● Carlos Blé ○ Implementando algoritmos con TDD ○ Kata de las cartas
  • 16. Ya casi nos vamos… Feedback del taller: ● Sensaciones generales ● ¿Qué os ha parecido TDD? ○ ¿Fácil, difícil? ○ ¿Valioso, inútil? ● ¿Alguien se plantea empezar a probarlo en su día a día? Feedback visual: Niko-niko Fuente: https://github.com/starmer/team-mood-tracker