Kata tdd

Jorge Ortiz
Jorge OrtizOwner at PoWWaU
Kata TDD
Jorge D. Ortiz Fuentes
@jdortiz
Parte 1:
Pruebas del modelo
Aviso para navegantes
★Esto no es una clase, sino
una experiencia compartida.
★Si compartes, aprendemos
todos.
★Si algo no te gusta, ofrece
tus alternativas.
3
¿TDD?
★Test Driven Development
★Es una forma de escribir
software
★Supone pensar primero en la
verificación del código y
luego en escribirlo
4
¿Por qué TDD?
★Codigo que hace lo que
pensamos.
★Programar en piloto
automático.
★Progreso medible.
★Mucho más fácil abordar
cambios.
5
Secuencia de trabajo
★Siguiente funcionalidad
★Escribir la prueba
★Escribir el código más simple
que pasa la prueba
★Refactorizar
★Repetir hasta acabar cada
historia
6
Código más corto
1.Más fijado (hard coded)
2.Más cerca del principio del
método
3.Menos sangrado (indented)
4.Más corto
7
Texto
http://osherove.com/blog/2010/1/6/tdd-4-questions-that-
will-help-you-create-the-simplest-thing.html
Las herramientas
★Introspección (OCUnit)
★Inyección de dependencias
๏Constructor
๏Propiedades
★Mocks y stubs
8
Las reglas del juego
★Sólo probamos nuestro código
★Sólo un nivel cada vez
★Sólo los métodos públicos
★Sólo una cosa en cada prueba
★Las pruebas son
independientes unas de otras
(ni secuencia, ni estado)
9
Algunos trucos
★Usar sut = reutilizar pruebas
★Confirmar que no hay avisos o
errores
★Separar en clases
★Refactorizar las pruebas
cuando interese
10
Inconvenientes
★ Más lento y más trabajo en calidad
★ Diseño sin visión de conjunto
★ Reescribir pruebas al cambiar
requisitos
★ Se requieren otras pruebas además
★ Mismas carencias las pruebas que
el código (sistema que no puede
entenderse a sí mismo, W.E.Deming)
11
Ventajas
★ Menos interactuación y menos
tiempo depurando
★ Más facil adaptarse a los cambios
★ Documentación en código y menos
asunciones.
★ Cobertura prácticamente total
12
Parte 2:
Pruebas de VC
Interfaz de la app
★Maestro/detalle
๏Maestro: Mezclas agrupadas por
categorías
๏Detalle: Mezcla y sus datos
14
View ctlr maestro
★BlendsViewController
★Lista (subclase de
UITableViewController)
15
View ctrlr detalle
★BlendDetailsViewController
★Subclase de UIViewController
16
A tener en cuenta
★Problemas con OCMock de Core
Data (NSProxy)
★No todos los métodos están
pensados para ser probados
(KVC al rescate)
17
Parte 3:
Código de otros
Modelo de trabajo
1.Leer el código
2.Pensar una prueba que
confirma cómo funciona
3.Escribirla y ver que la pasa
4.Refactorizar si procede.
5.Repetir
19
Código limpio
★Aprovechar para limpiar el
código
★Eliminar repetición y ganar
consistencia
★Sólo un nivel de abstracción
por método
20
¡Gracias!
1 of 21

Recommended

Desarrollo Guiado Por Pruebas by
Desarrollo Guiado Por PruebasDesarrollo Guiado Por Pruebas
Desarrollo Guiado Por PruebasMiguel Angel
1.4K views12 slides
Reducción de ifs en JavaScript con Programación Orientada a Prototipos by
Reducción de ifs en JavaScript con Programación Orientada a PrototiposReducción de ifs en JavaScript con Programación Orientada a Prototipos
Reducción de ifs en JavaScript con Programación Orientada a PrototiposDiego Sánchez
165 views7 slides
Cómo hacer Test Driven Development by
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
1.4K views22 slides
Introducción a Unit Testing y TDD by
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDDFernando Perez
1.5K views91 slides
Taller PyConEs 2016: Introducción a TDD by
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDAlea Soluciones, S.L.
101 views17 slides
Joseluisseijoreig samuelsánchezmuñoz by
Joseluisseijoreig samuelsánchezmuñozJoseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñozjoseluisseijo
184 views7 slides

More Related Content

What's hot

Como hacer tdd y no morir en el intento by
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 intentoHernan Wilkinson
3.7K views29 slides
Cómo aplicar TDD. Almería 13/05/2014 by
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
1.3K views33 slides
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas by
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
465 views41 slides
Si te gusta leer te va a gustar el software libre by
Si te gusta leer te va a gustar el software libreSi te gusta leer te va a gustar el software libre
Si te gusta leer te va a gustar el software libreIBM
283 views26 slides
Introducción a tdd by
Introducción a tddIntroducción a tdd
Introducción a tddRonny Ancorini Rodríguez
522 views18 slides
Crowdar - Introducción a BDD by
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDDJavier Re
983 views40 slides

What's hot(15)

Como hacer tdd y no morir en el intento by Hernan Wilkinson
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
Hernan Wilkinson3.7K views
Cómo aplicar TDD. Almería 13/05/2014 by Javier_J
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
Javier_J1.3K views
Si te gusta leer te va a gustar el software libre by IBM
Si te gusta leer te va a gustar el software libreSi te gusta leer te va a gustar el software libre
Si te gusta leer te va a gustar el software libre
IBM283 views
Crowdar - Introducción a BDD by Javier Re
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDD
Javier Re983 views
Agile university day - Un día en un equipo ágil de desarrollo móvil by agilenavarra
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
agilenavarra512 views
PHP Unit y TDD by Emergya
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
Emergya1.3K views
Encadenamiento de refactorings para generar cambios Agiles de Diseño by Hernan Wilkinson
Encadenamiento de refactorings para generar cambios Agiles de DiseñoEncadenamiento de refactorings para generar cambios Agiles de Diseño
Encadenamiento de refactorings para generar cambios Agiles de Diseño
Hernan Wilkinson825 views

Similar to Kata tdd

Las Claves del Desarrollo Dirigido por Pruebas (o TDD) by
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
3.1K views33 slides
Tdd desde las_trincheras by
Tdd desde las_trincherasTdd desde las_trincheras
Tdd desde las_trincherasJuan Lladó Rodríguez
497 views31 slides
Introducción a Test Driven Development en PHPSevilla by
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
126 views19 slides
TDD y Python by
TDD y PythonTDD y Python
TDD y PythonJavier_J
1.5K views37 slides
Introducción al Test-Driven Development (TDD) por Eric Mignot by
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 MignotPablo Lischinsky
983 views43 slides
"Demystifying development techniques" por @eturino by
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturinowebcat
781 views56 slides

Similar to Kata tdd(20)

Las Claves del Desarrollo Dirigido por Pruebas (o TDD) by Javier_J
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Javier_J3.1K views
TDD y Python by Javier_J
TDD y PythonTDD y Python
TDD y Python
Javier_J1.5K views
Introducción al Test-Driven Development (TDD) por Eric Mignot by Pablo Lischinsky
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
Pablo Lischinsky983 views
"Demystifying development techniques" por @eturino by webcat
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino
webcat781 views
[ES] webcat 2014-03 Demystifying Development Techniques by Eduardo Turiño
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques
Eduardo Turiño512 views
Introducción a TDD by Fran Grau
Introducción a TDDIntroducción a TDD
Introducción a TDD
Fran Grau470 views
Apuntes #XPweek by Carlos Ble
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
Carlos Ble442 views
Cursotdd 141202105217-conversion-gate01 by Javier Morales
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01
Javier Morales80 views
Artalde Tdd intro by fperezplain
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
fperezplain314 views
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas by Javier_J
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasCodemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Javier_J1.9K views
Clean code 9 by 540deg
Clean code 9Clean code 9
Clean code 9
540deg196 views
Scrum Con Exito by jsalvata
Scrum Con ExitoScrum Con Exito
Scrum Con Exito
jsalvata1.6K views

More from Jorge Ortiz

Fiscalidad en el app store 2014 by
Fiscalidad en el app store 2014Fiscalidad en el app store 2014
Fiscalidad en el app store 2014Jorge Ortiz
380 views11 slides
Fiscalidad en el app store 2014 by
Fiscalidad en el app store 2014Fiscalidad en el app store 2014
Fiscalidad en el app store 2014Jorge Ortiz
595 views11 slides
Automatización de interfaces e introducción a bdd by
Automatización de interfaces e introducción a bddAutomatización de interfaces e introducción a bdd
Automatización de interfaces e introducción a bddJorge Ortiz
1.5K views71 slides
Ui design patterns by
Ui design patternsUi design patterns
Ui design patternsJorge Ortiz
1.8K views31 slides
Multipeer Connectivity Framework by
Multipeer Connectivity FrameworkMultipeer Connectivity Framework
Multipeer Connectivity FrameworkJorge Ortiz
4.2K views14 slides
iBeacons by
iBeaconsiBeacons
iBeaconsJorge Ortiz
3.9K views21 slides

More from Jorge Ortiz(12)

Fiscalidad en el app store 2014 by Jorge Ortiz
Fiscalidad en el app store 2014Fiscalidad en el app store 2014
Fiscalidad en el app store 2014
Jorge Ortiz380 views
Fiscalidad en el app store 2014 by Jorge Ortiz
Fiscalidad en el app store 2014Fiscalidad en el app store 2014
Fiscalidad en el app store 2014
Jorge Ortiz595 views
Automatización de interfaces e introducción a bdd by Jorge Ortiz
Automatización de interfaces e introducción a bddAutomatización de interfaces e introducción a bdd
Automatización de interfaces e introducción a bdd
Jorge Ortiz1.5K views
Ui design patterns by Jorge Ortiz
Ui design patternsUi design patterns
Ui design patterns
Jorge Ortiz1.8K views
Multipeer Connectivity Framework by Jorge Ortiz
Multipeer Connectivity FrameworkMultipeer Connectivity Framework
Multipeer Connectivity Framework
Jorge Ortiz4.2K views
¿Cuánto cuesta una app? by Jorge Ortiz
¿Cuánto cuesta una app?¿Cuánto cuesta una app?
¿Cuánto cuesta una app?
Jorge Ortiz1.1K views
Aplicaciones para iphone accesibles by Jorge Ortiz
Aplicaciones para iphone accesiblesAplicaciones para iphone accesibles
Aplicaciones para iphone accesibles
Jorge Ortiz502 views
Introduccion a core plot by Jorge Ortiz
Introduccion a core plotIntroduccion a core plot
Introduccion a core plot
Jorge Ortiz1.6K views

Recently uploaded

Tecnologías para la enseñanza virtual by
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual mpachecocodem
10 views8 slides
PRESENTACIÓN.pptx by
PRESENTACIÓN.pptxPRESENTACIÓN.pptx
PRESENTACIÓN.pptxsusanaasotoleiva
6 views1 slide
Fundamentos de electricidad y electrónica.docx by
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docxDilanTabares
5 views9 slides
EM.020 INSTALACIONES DE COMUNICACIONES.pdf by
EM.020 INSTALACIONES DE COMUNICACIONES.pdfEM.020 INSTALACIONES DE COMUNICACIONES.pdf
EM.020 INSTALACIONES DE COMUNICACIONES.pdfgilberenriquedavila
8 views4 slides
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf by
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdfSESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdfMELVINCALLO1
5 views39 slides
fundamentos de electricidad electronica by
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronicaKevin619029
5 views16 slides

Recently uploaded(20)

Tecnologías para la enseñanza virtual by mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem10 views
Fundamentos de electricidad y electrónica.docx by DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 views
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf by MELVINCALLO1
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdfSESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf
MELVINCALLO15 views
fundamentos de electricidad electronica by Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 views
Cuadros comparativos Herramientas tecnologicas III.pdf by DarlingGalan1
Cuadros comparativos Herramientas tecnologicas III.pdfCuadros comparativos Herramientas tecnologicas III.pdf
Cuadros comparativos Herramientas tecnologicas III.pdf
DarlingGalan17 views
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx by MaraJos722801
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxactividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
MaraJos7228015 views
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx by dreadlockp5
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
dreadlockp58 views
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador by lopezyetsiree
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscadorcuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
lopezyetsiree12 views
Seguridad de los sistemas operativos..pptx by dayanelismarquez
Seguridad de los sistemas operativos..pptxSeguridad de los sistemas operativos..pptx
Seguridad de los sistemas operativos..pptx
dayanelismarquez25 views
Examen Configuracion III.pptx by gatb1825
Examen Configuracion III.pptxExamen Configuracion III.pptx
Examen Configuracion III.pptx
gatb18257 views
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares6 views
Tecnologías para la enseñanza virtual_cdc.pptx by CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
Carmona Garcia de León _Mateo _ASX1.pptx by 231458783
Carmona Garcia de León _Mateo _ASX1.pptxCarmona Garcia de León _Mateo _ASX1.pptx
Carmona Garcia de León _Mateo _ASX1.pptx
2314587835 views
Tarea Curso Tecnologias para la enseñanza virtual.pptx by lesliealejandraContr
Tarea Curso Tecnologias para la enseñanza virtual.pptxTarea Curso Tecnologias para la enseñanza virtual.pptx
Tarea Curso Tecnologias para la enseñanza virtual.pptx

Kata tdd