SlideShare una empresa de Scribd logo
1 de 31
Desarrollo de
videojuegos dirigido
por pruebas
Javier Gutiérrez
¿Quién soy yo?
Índice
Todos nos equivocamos

“No fracasé, sólo
descubrí 999 maneras de
como no hacer una
bombilla.”
¿Por qué TDD?

• Sin pruebas
• No veía fácilmente el diseño

• Fallaba por sorpresa sin saber por qué
• Cambiaba por cambiar.
• Apechugar con las malas decisiones.
• No avanzaba.
• Presionado por fecha límite.
• Me sentía mal.
• Un cuadro típico de necesito TDD.
¿Por qué TDD?

NO
¿Qué es TDD?
¿Qué es TDD?
¿Qué es TDD?

1. You are not allowed to write any
production code unless it is to
make a failing unit test pass.
2. You are not allowed to write any
more of a unit test than is
sufficient to fail; and compilation
failures are failures.
3. You are not allowed to write any
more production code than is
sufficient to pass the one failing
unit test.
¿Quién usa TDD?

NO
¿Qué sabemos de TDD?

Every unit test you write is not production
code solving someone's problem.
Aspectos clave de TDD y videojuegos
Single Responsibility Principle

A CLASS SHOULD HAVE ONLY
ONE REASON TO CHANGE.
Single Responsibility Principle
Single Responsibility Principle
Destapa tu juego
Destapa tu juego
Destapa tu juego
Gema:
Tiene posición X, Y
Está visible por defecto
Puede volverse invisible
Destapa tu juego
Combinación:
• 4 Valores
• En un rango de [14]
• Valor correcto =
intenta el siguiente.
• Valor incorrecto =
vuelve a empezar
Destapa tu juego

Si destapamos el
código

Combinación:
• 4 Valores
• En un rango de [14]
• Valor correcto =
intenta el siguiente.
• Valor incorrecto =
vuelve a empezar
Haz visible lo invisible
Haz visible lo invisible
Haz visible lo invisible
El mundo real
El mundo real
El mundo real
El mundo real
Medias
Conclusiones

¿Por qué pierdo la fe?
• Falsa sensación de velocidad.
• Falsa sensación de seguridad.
• No tener claro qué probar
• Set-up complejo.
• Módulos “Dios”
Conclusiones

Todo por hacer
Agradecimientos

Onikami
Enlaces
• Blog: http://iwt2-javierj.tumblr.com/
• Libro:
http://www.iwt2.org/web/opencms/IWT2/comunid
ad/LibroTDD/?locale=es
• GameUS: http://www.gameus.es/
• IWT2 DojoUS:
http://www.iwt2.org/web/opencms/IWT2/comunid
ad/dojous/?locale=es
• Twitter: @IWT2_Javier/ @GameUsSev /
@TDDPractico

Fin

Más contenido relacionado

Destacado

Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosJavier_J
 
Front cover & contents page pp
Front cover & contents page ppFront cover & contents page pp
Front cover & contents page ppSarahKeefe123
 
Higiene y seguridad en el trabajo
Higiene y seguridad en el trabajoHigiene y seguridad en el trabajo
Higiene y seguridad en el trabajokarenp16
 
Ananna Kazi Research Presentation Final
Ananna Kazi Research Presentation FinalAnanna Kazi Research Presentation Final
Ananna Kazi Research Presentation FinalAnanna Kazi
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanJavier_J
 
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
 
Clase el-computador-y-sus-partes
Clase el-computador-y-sus-partesClase el-computador-y-sus-partes
Clase el-computador-y-sus-partesbriseidaHT
 
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)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
 
Central serous retinopathy
Central serous retinopathyCentral serous retinopathy
Central serous retinopathyzameer sadhayo
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 

Destacado (13)

Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de Videojuegos
 
Front cover & contents page pp
Front cover & contents page ppFront cover & contents page pp
Front cover & contents page pp
 
Higiene y seguridad en el trabajo
Higiene y seguridad en el trabajoHigiene y seguridad en el trabajo
Higiene y seguridad en el trabajo
 
Ananna Kazi Research Presentation Final
Ananna Kazi Research Presentation FinalAnanna Kazi Research Presentation Final
Ananna Kazi Research Presentation Final
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
 
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
 
Clase el-computador-y-sus-partes
Clase el-computador-y-sus-partesClase el-computador-y-sus-partes
Clase el-computador-y-sus-partes
 
Jogo 1 trilha do átomo
Jogo 1  trilha do átomoJogo 1  trilha do átomo
Jogo 1 trilha do átomo
 
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)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
 
Music case study #2
Music case study #2Music case study #2
Music case study #2
 
Central serous retinopathy
Central serous retinopathyCentral serous retinopathy
Central serous retinopathy
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
How Fairytales Have Impact On Healing
How Fairytales Have Impact On HealingHow Fairytales Have Impact On Healing
How Fairytales Have Impact On Healing
 

Similar a Desarrollo de videojuegos con TDD

GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosGamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosJavier_J
 
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
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasRicard Clau
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturinowebcat
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
 
GWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGuillermo Averbuj
 
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 intentoHernan Wilkinson
 
Mitos del testing exploratorio
Mitos del testing exploratorioMitos del testing exploratorio
Mitos del testing exploratorioGlobe Testing
 
Joseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñozJoseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñozjoseluisseijo
 
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
 
Videojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineVideojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineJavier_J
 
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde cero
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde ceroTaller TestingUy 2019 - Pruebas Unitarias con TDD desde cero
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde ceroTestingUy
 
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
 
La generación de marca personal en medios audiovisuales 2.0
La generación de marca personal en medios audiovisuales 2.0La generación de marca personal en medios audiovisuales 2.0
La generación de marca personal en medios audiovisuales 2.0Miguel Ángel Riesgo
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDSantiago Blanco
 

Similar a Desarrollo de videojuegos con TDD (20)

GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosGamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticas
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
GWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracaso
 
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
 
Tdd desde las trincheras
Tdd desde las trincherasTdd desde las trincheras
Tdd desde las trincheras
 
Mitos del testing exploratorio
Mitos del testing exploratorioMitos del testing exploratorio
Mitos del testing exploratorio
 
Joseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñozJoseluisseijoreig samuelsánchezmuñoz
Joseluisseijoreig samuelsánchezmuñoz
 
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
 
Creando rascacielos con tdd
Creando rascacielos con tddCreando rascacielos con tdd
Creando rascacielos con tdd
 
Videojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineVideojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y Jasmine
 
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde cero
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde ceroTaller TestingUy 2019 - Pruebas Unitarias con TDD desde cero
Taller TestingUy 2019 - Pruebas Unitarias con TDD desde cero
 
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
 
La generación de marca personal en medios audiovisuales 2.0
La generación de marca personal en medios audiovisuales 2.0La generación de marca personal en medios audiovisuales 2.0
La generación de marca personal en medios audiovisuales 2.0
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDD
 

Más de Javier_J

TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 
Introducción a Pruebas en Android
Introducción a Pruebas en AndroidIntroducción a Pruebas en Android
Introducción a Pruebas en AndroidJavier_J
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosJavier_J
 
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Javier_J
 
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Javier_J
 
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012Javier_J
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no ProgramadoresJavier_J
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanJavier_J
 
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012Javier_J
 
Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Javier_J
 

Más de Javier_J (10)

TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
Introducción a Pruebas en Android
Introducción a Pruebas en AndroidIntroducción a Pruebas en Android
Introducción a Pruebas en Android
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de Videojuegos
 
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
 
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
 
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no Programadores
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
 
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
 
Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012
 

Desarrollo de videojuegos con TDD