SlideShare una empresa de Scribd logo
1 de 51
Desarrollo de
Videojuegos Dirigido
    por Pruebas
TDD for Games Development
Desarrollo de Videojuegos Dirigido por Pruebas

                    • Aprender los conceptos
                      claves de TDD.
                    • Aprender conceptos
                      clave de los
                      videojuegos.
                    • Ver cómo aplicar TDD
                      en la programación de
                      un videojuego.
                    • Estudiar un ejemplo
                      práctico.
  Objetivos
                                               2
Resumen de la
    Charla




                3
Resumen de la Charla


     • Programar un juego muy
       sencillo usando TDD.
     • Explicaremos primero TDD
     • Usaremos LUA y Löve
       (ideas aplicables a otros
       entornos).
     • NO entraremos en detalles
       de LUA ni Löve.


                                   4
Resumen de la Charla

Demasiado            Constante     Variable no
  rápido            equivocada      declarada




Faltan enemigos
                  Mala lógica




                                                 5
Resumen de la Charla


• LUA: http://www.lua.org/
• Programming in LUA: http://www.lua.org/pil/
• Löve: https://love2d.org/
• Código fuente: e-mail
• Curso TDD desde cero:
http://www.iwt2.org/opencms/opencms/IWT2/
formacion/catalogo/curso0006.html?locale=es
03. TDD


          1. Resumen.
          2. Conceptos generales
          3. El Proceso TDD
          4. TDD + Videojuegos
          5. Comenzando un juego
             en TDD
          6. Un ejemplo más
             avanzado
          7. Conclusiones
Índice
                                   7
Conceptos Generales




                  8
Definiciones


• ¿Qué es probar?

                                     Para probar un programa
                                     tenemos que ejecutarlo.


  Verificación dinámica del          La prueba tiene un límite.
  comportamiento del
  software a partir de un
  conjunto finito de casos de        No vale ejecutar el
  prueba.                            programa de cualquier
                                     manera.
Definiciones

      Ejemplos de casos de pruebas en el mundo real
¿Funciona el teléfono?.
   Valores de                  Acciones                     Resultado esperado
    prueba
123-45-67-89    1. Descolgar auricular.                   (Pepote): “Digameee”.
                2. Marcar número de Pepote.
                3. Esperar contestación.

¿Me está bien esta camisa?
   Valores de                  Acciones                     Resultado esperado
    prueba
Mi cuerpo.      1. Ponerme la camisa.                     Elegancia y confort.
                2. Abrochármela.
                3. Moverme un poco.
                4. Mirarme al espejo.
                Cuidado con la etiqueta o con arrugarla
                por si hay que devolverla
Definiciones
                                      Necesidades                                              Verifican
                                         de los                                                                                          Pruebas de
                                                                                                                                         aceptación
Qué se prueba.                         usuarios



                                                                                               Verifican
                                                     Paso a                                                                      Pruebas de
                                                   producción                                                                   implantación




                                      Pr




                                                                                                                                                          ba
                                        oc




                                                                                                                                                       ue
                                           e
                                                                                               Verifican




                                           so




                                                                                                                                                    pr
                                                                Requisitos del                                           Pruebas de




                                                                                                                                                 de
                                                                  sistema                                                 sistema




                                               de




                                                                                                                                               so
                                                  de




                                                                                                                                             e
                                                     s




                                                                                                                                          oc
                                                    arr




                                                                                                                                         Pr
                                                         oll
                                                                          Interacción          Verifican          Pruebas de



                                                            o
                                                                             entre                                integración
                                                                         componentes




                                                                                 Componentes   Verifican   Pruebas
                                                                                   aislados                unitárias




                Ensamblado                                                       Necesidades
                               Requisitos del                 Paso a
Código fuente       de                                                              de los
                componentes
                                 sistema                    producción
                                                                                  usuarios                   Momento de
                                                                                                              realizarla

 Pruebas        Pruebas de      Pruebas de                 Pruebas de            Pruebas de
 unitarias      integración      sistema                  implantación           Aceptación




                      Ejecución de las pruebas
Definiciones


• Pruebas unitarias:
  – Cuando: Durante la construcción del sistema
  – Objetivo: Comprueban la correcta unión de los
    componentes entre sí a través de sus interfaces, y
    si cumplen con la funcionalidad establecida .
• Ejemplo:
  – Combinar el código de acceso a la base de datos
    con el código de lógica de negocio y probar que
    funciona correctamente.
Definiciones


• Pruebas de aceptación
  – Cuando: Después de la implantación en el entorno
    de producción
  – Objetivo: Verifican que el sistema cumple con
    todos los requisitos indicados y permite que los
    usuarios del sistema den el visto bueno definitivo.
• Ejemplo:
  – Que el sistema pueda realizra una venta
    correctamente (ahora en el entorno de
    producción).
Pruebas con LUA


     Veamos un ejemplo muy sencillo




Valores de     Acción       Resultado
 prueba
   2, 3      Suma(2,3)         5
  -1, 0      Suma (-1, 0)      -1
    …             …            …
El Proceso TDD




                 15
El Proceso TDD


No pensamos en qué software /
 código tenemos que construir



Pensamos en cómo queremos
          usarlo



 El cómo usarlo nos las dan las     No la diseñó quien la
 pruebas. Las pruebas son las           iba a utilizar
 usuarias de nuestra creación
El Proceso TDD

• Suponemos que estamos escribiendo una prueba
  para una clase que funciona como un carrito de la
  compra que aún no ha sido escrita.
• Veamos un posible caso de prueba
2. El Proceso TDD

• Estamos tomando decisiones .
• Decisiones sobre cómo crear un
  carrito: ¿cuál es el nombre de la
  clase? ¿Tendrá un constructor
  sin parámetros?
• Decisiones sobre añadir
  elementos:¿Usaremos una
  llamada a un método? ¿cuál
  será el nombre de ese método?
  ¿Qué parámetros tendrá y de
  qué tipo serán?
                                              Antes de escribir
• Decisiones sobre cómo
  comprobamos que el carrito ha               el código
  almacenado el producto. ¿qué                pensamos cómo
  métodos incluimos,? ¿cuáles el              queremos usarlo.
  resultado esperado? ¿Hay que
  escribir antes una prueba para
  dicho método?                                              18
2. El proceso TDD


  El proceso de TDD


Es decir, los pasos que
 vamos dando para ir
  escribiendo nuevo
        código




 Veamos un ejemplo
completo paso a paso
2. El Proceso TDD
              Veamos un ejemplo. Vamos a sumar dos números
             enteros. Lo primero según TDD, es escribir una nueva
                                   prueba

                                                      No tenemos en
Valores de prueba     Acción         Resultado        cuenta valores
A, b cuáles quiera   Suma(a, b)        a+b              extremos
        …                …              …
2. El Proceso TDD

Autogeneramos el código que falta con Eclipse para poder
                  ejecutar la prueba.




Escribimos el código mínimo (más corto) para que la prueba
                      pase con éxito
2. El Proceso TDD




      ¿Qué podemos refactorizar en este ejemplo?



Nombres más descriptivos para los parámetros


Arreglar atajos del código que
no requieren más pruebas
Código mínimo para Pasar una Prueba


• ¿Cómo escribir una prueba para un código
  que no existe?
• Escribe una prueba para el código que te
  gustaría que existiera.
  – Hazlo tan simple como quieras.
  – Con los parámetros y tipo devuelto que más fácil
    te hagan el trabajo.
TDD + Videojuegos




                    24
¿Esto se aplica a videojuegos?

          Resolviendo niveles automáticamente




http://www.youtube.com/watch?v=DlkMs4ZHHr8      http://www.youtube.com/watch?v=NOTBy0lKSbo
¿Esto se aplica a videojuegos?
¿Esto se aplica a videojuegos?
Comenzando un
 videojuego con
      TDD



                  28
¿Qué queremos conseguir?
¿Qué queremos conseguir?
Framewrok: Löve + LUA

                                                  Dt es el delta-time o tiempo entre
                                                  dos llamadas. Lo usamos para
                                                  adaptar la velocidad del juego a la
                                                  máquina




                                                  Vamos a implementar estos
                                                  métodos para realizar el juego
                                                  anterior

Sólo con escribir estos tres métodos ya tenemos
juegos.


Aproximadamente 150 líneas de código.
¿Por dónde empezamos?

• Nuestro primer paso no va a
  ser muy distinto del segundo,    Un jugador que se
                                   mueva.
  el tercero, etc. definimos una
  prueba de aceptación.            Disparos

• No vamos a intentar hacer        Enemigos que se
                                   muevan
  todo el juego de golpe, pero
  sí elegiremos una                Colisión de disparos y
                                   enemigos.
  característica que tenga valor
  y relevancia en el juego.        Fin del juego
• Apuntemos las candidatas:
TDD en Juegos

                         • Ten siempre una lista de
Un jugador que se          características o requisitos de
mueva.                     código.
Disparos                 • Eso son cosas que se te van
Enemigos que se            ocurriendo cuando escribes
muevan                     pruebas y escribes código
                           para superar las pruebas.
Colisión de disparos y
enemigos.                • Te ayuda a no tener cosas en
                           la cabeza y céntrate en seguir
Fin del juego              tu foco
                         • Te indican qué es lo siguiente
                           a realizar
TDD en Juegos


Un jugador que se
mueva.
Disparos
Enemigos que se
muevan
Colisión de disparos y
enemigos.
Fin del juego
TDD en Juegos


Un jugador que se
mueva.
Disparos
Enemigos que se
muevan
Colisión de disparos y       Un fondo negro
enemigos.
                             Un cuadrado rojo
Fin del juego
                             El cuadrado en el centro y
                             en la parte baja de la
                             pantalla
                             Si pulso  mueve a la
                             derecha
                           Posibles pruebasmueve a la
                             Si pulso 
TDD en Juegos

Escribimos el esqueleto d enuestro primer conjunto de pruebas




                                                     Un fondo negro
                                                     Un cuadrado rojo
                                                     El cuadrado en el centro y
                                                     en la parte baja de la
                                                     pantalla
                                                     Si pulso  mueve a la
                                                     derecha
                                                     Si pulso  mueve a la
                                                     izquierda
TDD en Juegos

Ejecutamos prueba y falla.




 Sólo necesitamos una línea para arreglarlo en el archivo main.lua:
 BgColor = {}
¿Por dónde empezamos?


Un jugador que se
mueva.
Disparos
Enemigos que se
muevan
Colisión de disparos y      Un fondo negro
enemigos.
                            Un cuadrado rojo
Fin del juego
                            El cuadrado en el centro y
                            en la parte baja de la
                            pantalla
                            Si pulso  mueve a la
                            derecha
                          Posibles pruebasmueve a la
                            Si pulso 
¿Por dónde empezamos?

Escribimos el esqueleto de nuestro primer conjunto de pruebas


  Un fondo negro                                                 Falla
  Un cuadrado rojo
  El cuadrado en el centro y
  en la parte baja de la
  pantalla
  Si pulso  mueve a la
  derecha
                                                                  Pasa
  Si pulso  mueve a la
  izquierda
                                                                Decidimos el
                                                                diseño.
Un ejemplo más
    avanzado




                 40
Un ejemplo más avanzado

                   Los aliens mueven en una
                   dirección.
                   Cuando el primer alien llega
                   al borde de la pantalla,
                   todos bajan hacia abajo y
                   mueven en otra dirección
                   Cuando llegan al límite
                   inferior se acaba el juego




¿Cómo quiero
hacerlo?
Un ejemplo más avanzado

Crear a los
  aliens



                                         Estamos probando
                                           este escenario




Pero podemos probar                      Escribimos nuevas
  otros escenarios
                                         pruebas para
                                         escribir el código
Un ejemplo más avanzado




                             Aliens[1..8]
Aliens[9..16]

                            Aliens[33..40]
Un ejemplo más avanzado

Valores de prueba (*)   Acción                  Resultado esperado
D = Der                 Mover en la dirección   Todos los aliens han
AmE. X < Límite                                 incrementado su X en 1.
AmB.Y < Límite
D = Der                 Cambiar dirección y     D = Izq.
AmE. X == Límite        bajar                   Todos los aliens han
AmB.Y < Límite                                  incrementado su Y en 1.
D = Der                 Mover en la dirección   Todos los aliens han
AmE. X < Límite                                 incrementado su X en 1.
AmB.Y < Límite

…                       …                       …

Lo que influye en el movimiento es la dirección, altura (coordenada Y)
  del alien más bajo y la coordenada X del alien más en el extremo
Un ejemplo más avanzado
Un ejemplo más avanzado
Un ejemplo más avanzado




Este método ya está terminado. Pasamos a otra tarea.
Conclusiones




               48
Conclusiones

• Fallos que tengo escribiendo juegos.
  – Escribo más nombres de variables (y se crean nuevas
    variables sin yo saberlo)
  – Me equivoco en operaciones aritméticas (sumas,
    restas, etc.)
  – Me equivoco utilizando constantes
  – Utilizo variables que, en otra parte del código, dejer
    de utilizar
  – A veces no sé si se está entrando en un if o ejecutando
    un código determinado.
  – En general, LUA escala mal.
Conclusiones


  El proceso de TDD


Es decir, los pasos que
 vamos dando para ir
  escribiendo nuevo
        código
Conclusiones




10.000 líneas de código C#...
Comprobado…. 124 assemblies .NET   Ahora que mis pruebas unitarias
generados…. Comprobado…. 52        están escritas puedo empezar a
scripts de construcción…           construir mis componentes.
comprobado

Más contenido relacionado

Destacado

Modelo antropologico educativo espartano
Modelo antropologico   educativo espartanoModelo antropologico   educativo espartano
Modelo antropologico educativo espartanoDante Timburton
 
1 Schoenhofer - Presentation
1 Schoenhofer - Presentation1 Schoenhofer - Presentation
1 Schoenhofer - PresentationSocial Europe
 
Ahsay Backup Solution for Business End Users
Ahsay Backup Solution for Business End UsersAhsay Backup Solution for Business End Users
Ahsay Backup Solution for Business End UsersAh Say
 
Doc tmanco-2011-03-anatole tem-en
Doc tmanco-2011-03-anatole tem-enDoc tmanco-2011-03-anatole tem-en
Doc tmanco-2011-03-anatole tem-enTmanco SA
 
European E-Mail Marketing Consumer Report 2010 (Contact Lab)
European E-Mail Marketing Consumer Report 2010 (Contact Lab)European E-Mail Marketing Consumer Report 2010 (Contact Lab)
European E-Mail Marketing Consumer Report 2010 (Contact Lab)Mundo Ofertas
 
Microsoft paint es un programa simple para editar gráficos
Microsoft paint es un programa simple para editar gráficosMicrosoft paint es un programa simple para editar gráficos
Microsoft paint es un programa simple para editar gráficosKatyaVanesita RZ
 
Facultad de comercio exterior administración empresarial economíca y mark...
Facultad  de comercio  exterior administración empresarial  economíca  y mark...Facultad  de comercio  exterior administración empresarial  economíca  y mark...
Facultad de comercio exterior administración empresarial economíca y mark...Gabriel Dario Enriquez Lopez
 
The SEO secret sauce to international success
The SEO secret sauce to international successThe SEO secret sauce to international success
The SEO secret sauce to international successOban International
 
Katalog glówny Tattini:
Katalog glówny Tattini:Katalog glówny Tattini:
Katalog glówny Tattini:Enrico Tattini
 
¿Por que es importante saber programar?
¿Por que es importante saber programar?¿Por que es importante saber programar?
¿Por que es importante saber programar?Anibal Guzmán Miranda
 
Are electronic signature assumptions realistic
Are electronic signature assumptions realisticAre electronic signature assumptions realistic
Are electronic signature assumptions realisticPawel Krawczyk
 
Unidad 4 . Perifericos No Estandarizados
Unidad 4 . Perifericos No EstandarizadosUnidad 4 . Perifericos No Estandarizados
Unidad 4 . Perifericos No Estandarizadoscyeidi10
 
Los reinos de la naturaleza-jin
Los reinos de la naturaleza-jinLos reinos de la naturaleza-jin
Los reinos de la naturaleza-jin24neo
 
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015Johann Enflo
 

Destacado (20)

Modelo antropologico educativo espartano
Modelo antropologico   educativo espartanoModelo antropologico   educativo espartano
Modelo antropologico educativo espartano
 
1 Schoenhofer - Presentation
1 Schoenhofer - Presentation1 Schoenhofer - Presentation
1 Schoenhofer - Presentation
 
Diseño curricular profesorado educprimaria (1)
Diseño curricular profesorado educprimaria (1)Diseño curricular profesorado educprimaria (1)
Diseño curricular profesorado educprimaria (1)
 
Ventana informatica / Edicción 25
Ventana informatica / Edicción 25Ventana informatica / Edicción 25
Ventana informatica / Edicción 25
 
Indumentaria inteligente
Indumentaria inteligenteIndumentaria inteligente
Indumentaria inteligente
 
Ahsay Backup Solution for Business End Users
Ahsay Backup Solution for Business End UsersAhsay Backup Solution for Business End Users
Ahsay Backup Solution for Business End Users
 
Doc tmanco-2011-03-anatole tem-en
Doc tmanco-2011-03-anatole tem-enDoc tmanco-2011-03-anatole tem-en
Doc tmanco-2011-03-anatole tem-en
 
European E-Mail Marketing Consumer Report 2010 (Contact Lab)
European E-Mail Marketing Consumer Report 2010 (Contact Lab)European E-Mail Marketing Consumer Report 2010 (Contact Lab)
European E-Mail Marketing Consumer Report 2010 (Contact Lab)
 
Lectura 2
Lectura 2Lectura 2
Lectura 2
 
Decagolo etico angie melisa
Decagolo etico angie melisaDecagolo etico angie melisa
Decagolo etico angie melisa
 
Microsoft paint es un programa simple para editar gráficos
Microsoft paint es un programa simple para editar gráficosMicrosoft paint es un programa simple para editar gráficos
Microsoft paint es un programa simple para editar gráficos
 
Facultad de comercio exterior administración empresarial economíca y mark...
Facultad  de comercio  exterior administración empresarial  economíca  y mark...Facultad  de comercio  exterior administración empresarial  economíca  y mark...
Facultad de comercio exterior administración empresarial economíca y mark...
 
The SEO secret sauce to international success
The SEO secret sauce to international successThe SEO secret sauce to international success
The SEO secret sauce to international success
 
Katalog glówny Tattini:
Katalog glówny Tattini:Katalog glówny Tattini:
Katalog glówny Tattini:
 
¿Por que es importante saber programar?
¿Por que es importante saber programar?¿Por que es importante saber programar?
¿Por que es importante saber programar?
 
Are electronic signature assumptions realistic
Are electronic signature assumptions realisticAre electronic signature assumptions realistic
Are electronic signature assumptions realistic
 
Unidad 4 . Perifericos No Estandarizados
Unidad 4 . Perifericos No EstandarizadosUnidad 4 . Perifericos No Estandarizados
Unidad 4 . Perifericos No Estandarizados
 
Redes Sociales Para la Educacion
Redes Sociales Para la EducacionRedes Sociales Para la Educacion
Redes Sociales Para la Educacion
 
Los reinos de la naturaleza-jin
Los reinos de la naturaleza-jinLos reinos de la naturaleza-jin
Los reinos de la naturaleza-jin
 
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015
Phrasal verbs_Johan Enciso Florez Ingles B1+ UNAD 2015
 

Similar a IWT2 Dojo US. Introducción a TDD. 5 octubre 2012

Pruebas de carga en la nube con Azure
Pruebas de carga en la nube con AzurePruebas de carga en la nube con Azure
Pruebas de carga en la nube con AzureGlobe Testing
 
Pruebas de rendimiento con Visual Studio 2010 y Azure
Pruebas de rendimiento con Visual Studio 2010 y AzurePruebas de rendimiento con Visual Studio 2010 y Azure
Pruebas de rendimiento con Visual Studio 2010 y AzureGlobe Testing
 
Pruebas de carga sobre aplicaciones web con Visual Studio 2010
Pruebas de carga sobre aplicaciones web con Visual Studio 2010Pruebas de carga sobre aplicaciones web con Visual Studio 2010
Pruebas de carga sobre aplicaciones web con Visual Studio 2010Globe Testing
 
Estrategias de prueba de software
Estrategias de prueba de softwareEstrategias de prueba de software
Estrategias de prueba de softwarejtapiac
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Juan Vladimir
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdflgarcias
 
Verificacion --validacion
Verificacion --validacionVerificacion --validacion
Verificacion --validacioneduardoao2
 
Tecnicas de prueba y mantenimiento de software.ppsx
Tecnicas de prueba y mantenimiento de software.ppsxTecnicas de prueba y mantenimiento de software.ppsx
Tecnicas de prueba y mantenimiento de software.ppsxclean88
 
Meetup NahualUY - Explorando el Testing Exploratorio
Meetup NahualUY - Explorando el Testing ExploratorioMeetup NahualUY - Explorando el Testing Exploratorio
Meetup NahualUY - Explorando el Testing ExploratorioLisandra Armas
 
Tecnicas de prueba y mantenimiento de software
Tecnicas de prueba y mantenimiento de softwareTecnicas de prueba y mantenimiento de software
Tecnicas de prueba y mantenimiento de softwareclean88
 
0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidirGeneXus
 
0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidirGeneXus
 
Test Factory Implementation V 1 3 (2)
Test Factory Implementation V 1 3 (2)Test Factory Implementation V 1 3 (2)
Test Factory Implementation V 1 3 (2)La Salle BCN
 
Pruebas del sistema (13.6) libro de pressman
Pruebas del sistema (13.6)  libro de pressmanPruebas del sistema (13.6)  libro de pressman
Pruebas del sistema (13.6) libro de pressmanJessica Cuenca
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del softwareSusita Paguay
 

Similar a IWT2 Dojo US. Introducción a TDD. 5 octubre 2012 (20)

Pruebas de carga en la nube con Azure
Pruebas de carga en la nube con AzurePruebas de carga en la nube con Azure
Pruebas de carga en la nube con Azure
 
Pruebas de rendimiento con Visual Studio 2010 y Azure
Pruebas de rendimiento con Visual Studio 2010 y AzurePruebas de rendimiento con Visual Studio 2010 y Azure
Pruebas de rendimiento con Visual Studio 2010 y Azure
 
Pruebas de carga sobre aplicaciones web con Visual Studio 2010
Pruebas de carga sobre aplicaciones web con Visual Studio 2010Pruebas de carga sobre aplicaciones web con Visual Studio 2010
Pruebas de carga sobre aplicaciones web con Visual Studio 2010
 
Estrategias de prueba de software
Estrategias de prueba de softwareEstrategias de prueba de software
Estrategias de prueba de software
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdf
 
Pruebas - Fundamentos
Pruebas - FundamentosPruebas - Fundamentos
Pruebas - Fundamentos
 
Pruebas fundamentos
Pruebas fundamentosPruebas fundamentos
Pruebas fundamentos
 
Verificacion --validacion
Verificacion --validacionVerificacion --validacion
Verificacion --validacion
 
Tecnicas de prueba y mantenimiento de software.ppsx
Tecnicas de prueba y mantenimiento de software.ppsxTecnicas de prueba y mantenimiento de software.ppsx
Tecnicas de prueba y mantenimiento de software.ppsx
 
Meetup NahualUY - Explorando el Testing Exploratorio
Meetup NahualUY - Explorando el Testing ExploratorioMeetup NahualUY - Explorando el Testing Exploratorio
Meetup NahualUY - Explorando el Testing Exploratorio
 
Tecnicas de prueba y mantenimiento de software
Tecnicas de prueba y mantenimiento de softwareTecnicas de prueba y mantenimiento de software
Tecnicas de prueba y mantenimiento de software
 
0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir
 
0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir0160 probar para_corregir_probar_para_decidir
0160 probar para_corregir_probar_para_decidir
 
Test Factory Implementation V 1 3 (2)
Test Factory Implementation V 1 3 (2)Test Factory Implementation V 1 3 (2)
Test Factory Implementation V 1 3 (2)
 
Pruebas del sistema (13.6) libro de pressman
Pruebas del sistema (13.6)  libro de pressmanPruebas del sistema (13.6)  libro de pressman
Pruebas del sistema (13.6) libro de pressman
 
U2T4 - Pruebas del Software
U2T4 - Pruebas del SoftwareU2T4 - Pruebas del Software
U2T4 - Pruebas del Software
 
PROYECTO SMED
PROYECTO SMEDPROYECTO SMED
PROYECTO SMED
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del software
 

Más de Javier_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
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_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)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
 
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasCodemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasJavier_J
 
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Javier_J
 
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
 
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
 
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
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el 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
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_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 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
 
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 (18)

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
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
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)
 
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasCodemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
 
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
 
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
 
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
 
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
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el 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
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
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 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
 
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
 

Último

ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 

Último (20)

ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 

IWT2 Dojo US. Introducción a TDD. 5 octubre 2012

  • 1. Desarrollo de Videojuegos Dirigido por Pruebas TDD for Games Development
  • 2. Desarrollo de Videojuegos Dirigido por Pruebas • Aprender los conceptos claves de TDD. • Aprender conceptos clave de los videojuegos. • Ver cómo aplicar TDD en la programación de un videojuego. • Estudiar un ejemplo práctico. Objetivos 2
  • 3. Resumen de la Charla 3
  • 4. Resumen de la Charla • Programar un juego muy sencillo usando TDD. • Explicaremos primero TDD • Usaremos LUA y Löve (ideas aplicables a otros entornos). • NO entraremos en detalles de LUA ni Löve. 4
  • 5. Resumen de la Charla Demasiado Constante Variable no rápido equivocada declarada Faltan enemigos Mala lógica 5
  • 6. Resumen de la Charla • LUA: http://www.lua.org/ • Programming in LUA: http://www.lua.org/pil/ • Löve: https://love2d.org/ • Código fuente: e-mail • Curso TDD desde cero: http://www.iwt2.org/opencms/opencms/IWT2/ formacion/catalogo/curso0006.html?locale=es
  • 7. 03. TDD 1. Resumen. 2. Conceptos generales 3. El Proceso TDD 4. TDD + Videojuegos 5. Comenzando un juego en TDD 6. Un ejemplo más avanzado 7. Conclusiones Índice 7
  • 9. Definiciones • ¿Qué es probar? Para probar un programa tenemos que ejecutarlo. Verificación dinámica del La prueba tiene un límite. comportamiento del software a partir de un conjunto finito de casos de No vale ejecutar el prueba. programa de cualquier manera.
  • 10. Definiciones Ejemplos de casos de pruebas en el mundo real ¿Funciona el teléfono?. Valores de Acciones Resultado esperado prueba 123-45-67-89 1. Descolgar auricular. (Pepote): “Digameee”. 2. Marcar número de Pepote. 3. Esperar contestación. ¿Me está bien esta camisa? Valores de Acciones Resultado esperado prueba Mi cuerpo. 1. Ponerme la camisa. Elegancia y confort. 2. Abrochármela. 3. Moverme un poco. 4. Mirarme al espejo. Cuidado con la etiqueta o con arrugarla por si hay que devolverla
  • 11. Definiciones Necesidades Verifican de los Pruebas de aceptación Qué se prueba. usuarios Verifican Paso a Pruebas de producción implantación Pr ba oc ue e Verifican so pr Requisitos del Pruebas de de sistema sistema de so de e s oc arr Pr oll Interacción Verifican Pruebas de o entre integración componentes Componentes Verifican Pruebas aislados unitárias Ensamblado Necesidades Requisitos del Paso a Código fuente de de los componentes sistema producción usuarios Momento de realizarla Pruebas Pruebas de Pruebas de Pruebas de Pruebas de unitarias integración sistema implantación Aceptación Ejecución de las pruebas
  • 12. Definiciones • Pruebas unitarias: – Cuando: Durante la construcción del sistema – Objetivo: Comprueban la correcta unión de los componentes entre sí a través de sus interfaces, y si cumplen con la funcionalidad establecida . • Ejemplo: – Combinar el código de acceso a la base de datos con el código de lógica de negocio y probar que funciona correctamente.
  • 13. Definiciones • Pruebas de aceptación – Cuando: Después de la implantación en el entorno de producción – Objetivo: Verifican que el sistema cumple con todos los requisitos indicados y permite que los usuarios del sistema den el visto bueno definitivo. • Ejemplo: – Que el sistema pueda realizra una venta correctamente (ahora en el entorno de producción).
  • 14. Pruebas con LUA Veamos un ejemplo muy sencillo Valores de Acción Resultado prueba 2, 3 Suma(2,3) 5 -1, 0 Suma (-1, 0) -1 … … …
  • 16. El Proceso TDD No pensamos en qué software / código tenemos que construir Pensamos en cómo queremos usarlo El cómo usarlo nos las dan las No la diseñó quien la pruebas. Las pruebas son las iba a utilizar usuarias de nuestra creación
  • 17. El Proceso TDD • Suponemos que estamos escribiendo una prueba para una clase que funciona como un carrito de la compra que aún no ha sido escrita. • Veamos un posible caso de prueba
  • 18. 2. El Proceso TDD • Estamos tomando decisiones . • Decisiones sobre cómo crear un carrito: ¿cuál es el nombre de la clase? ¿Tendrá un constructor sin parámetros? • Decisiones sobre añadir elementos:¿Usaremos una llamada a un método? ¿cuál será el nombre de ese método? ¿Qué parámetros tendrá y de qué tipo serán? Antes de escribir • Decisiones sobre cómo comprobamos que el carrito ha el código almacenado el producto. ¿qué pensamos cómo métodos incluimos,? ¿cuáles el queremos usarlo. resultado esperado? ¿Hay que escribir antes una prueba para dicho método? 18
  • 19. 2. El proceso TDD El proceso de TDD Es decir, los pasos que vamos dando para ir escribiendo nuevo código Veamos un ejemplo completo paso a paso
  • 20. 2. El Proceso TDD Veamos un ejemplo. Vamos a sumar dos números enteros. Lo primero según TDD, es escribir una nueva prueba No tenemos en Valores de prueba Acción Resultado cuenta valores A, b cuáles quiera Suma(a, b) a+b extremos … … …
  • 21. 2. El Proceso TDD Autogeneramos el código que falta con Eclipse para poder ejecutar la prueba. Escribimos el código mínimo (más corto) para que la prueba pase con éxito
  • 22. 2. El Proceso TDD ¿Qué podemos refactorizar en este ejemplo? Nombres más descriptivos para los parámetros Arreglar atajos del código que no requieren más pruebas
  • 23. Código mínimo para Pasar una Prueba • ¿Cómo escribir una prueba para un código que no existe? • Escribe una prueba para el código que te gustaría que existiera. – Hazlo tan simple como quieras. – Con los parámetros y tipo devuelto que más fácil te hagan el trabajo.
  • 25. ¿Esto se aplica a videojuegos? Resolviendo niveles automáticamente http://www.youtube.com/watch?v=DlkMs4ZHHr8 http://www.youtube.com/watch?v=NOTBy0lKSbo
  • 26. ¿Esto se aplica a videojuegos?
  • 27. ¿Esto se aplica a videojuegos?
  • 31. Framewrok: Löve + LUA Dt es el delta-time o tiempo entre dos llamadas. Lo usamos para adaptar la velocidad del juego a la máquina Vamos a implementar estos métodos para realizar el juego anterior Sólo con escribir estos tres métodos ya tenemos juegos. Aproximadamente 150 líneas de código.
  • 32. ¿Por dónde empezamos? • Nuestro primer paso no va a ser muy distinto del segundo, Un jugador que se mueva. el tercero, etc. definimos una prueba de aceptación. Disparos • No vamos a intentar hacer Enemigos que se muevan todo el juego de golpe, pero sí elegiremos una Colisión de disparos y enemigos. característica que tenga valor y relevancia en el juego. Fin del juego • Apuntemos las candidatas:
  • 33. TDD en Juegos • Ten siempre una lista de Un jugador que se características o requisitos de mueva. código. Disparos • Eso son cosas que se te van Enemigos que se ocurriendo cuando escribes muevan pruebas y escribes código para superar las pruebas. Colisión de disparos y enemigos. • Te ayuda a no tener cosas en la cabeza y céntrate en seguir Fin del juego tu foco • Te indican qué es lo siguiente a realizar
  • 34. TDD en Juegos Un jugador que se mueva. Disparos Enemigos que se muevan Colisión de disparos y enemigos. Fin del juego
  • 35. TDD en Juegos Un jugador que se mueva. Disparos Enemigos que se muevan Colisión de disparos y Un fondo negro enemigos. Un cuadrado rojo Fin del juego El cuadrado en el centro y en la parte baja de la pantalla Si pulso  mueve a la derecha Posibles pruebasmueve a la Si pulso 
  • 36. TDD en Juegos Escribimos el esqueleto d enuestro primer conjunto de pruebas Un fondo negro Un cuadrado rojo El cuadrado en el centro y en la parte baja de la pantalla Si pulso  mueve a la derecha Si pulso  mueve a la izquierda
  • 37. TDD en Juegos Ejecutamos prueba y falla. Sólo necesitamos una línea para arreglarlo en el archivo main.lua: BgColor = {}
  • 38. ¿Por dónde empezamos? Un jugador que se mueva. Disparos Enemigos que se muevan Colisión de disparos y Un fondo negro enemigos. Un cuadrado rojo Fin del juego El cuadrado en el centro y en la parte baja de la pantalla Si pulso  mueve a la derecha Posibles pruebasmueve a la Si pulso 
  • 39. ¿Por dónde empezamos? Escribimos el esqueleto de nuestro primer conjunto de pruebas Un fondo negro Falla Un cuadrado rojo El cuadrado en el centro y en la parte baja de la pantalla Si pulso  mueve a la derecha Pasa Si pulso  mueve a la izquierda Decidimos el diseño.
  • 40. Un ejemplo más avanzado 40
  • 41. Un ejemplo más avanzado Los aliens mueven en una dirección. Cuando el primer alien llega al borde de la pantalla, todos bajan hacia abajo y mueven en otra dirección Cuando llegan al límite inferior se acaba el juego ¿Cómo quiero hacerlo?
  • 42. Un ejemplo más avanzado Crear a los aliens Estamos probando este escenario Pero podemos probar Escribimos nuevas otros escenarios pruebas para escribir el código
  • 43. Un ejemplo más avanzado Aliens[1..8] Aliens[9..16] Aliens[33..40]
  • 44. Un ejemplo más avanzado Valores de prueba (*) Acción Resultado esperado D = Der Mover en la dirección Todos los aliens han AmE. X < Límite incrementado su X en 1. AmB.Y < Límite D = Der Cambiar dirección y D = Izq. AmE. X == Límite bajar Todos los aliens han AmB.Y < Límite incrementado su Y en 1. D = Der Mover en la dirección Todos los aliens han AmE. X < Límite incrementado su X en 1. AmB.Y < Límite … … … Lo que influye en el movimiento es la dirección, altura (coordenada Y) del alien más bajo y la coordenada X del alien más en el extremo
  • 45. Un ejemplo más avanzado
  • 46. Un ejemplo más avanzado
  • 47. Un ejemplo más avanzado Este método ya está terminado. Pasamos a otra tarea.
  • 49. Conclusiones • Fallos que tengo escribiendo juegos. – Escribo más nombres de variables (y se crean nuevas variables sin yo saberlo) – Me equivoco en operaciones aritméticas (sumas, restas, etc.) – Me equivoco utilizando constantes – Utilizo variables que, en otra parte del código, dejer de utilizar – A veces no sé si se está entrando en un if o ejecutando un código determinado. – En general, LUA escala mal.
  • 50. Conclusiones El proceso de TDD Es decir, los pasos que vamos dando para ir escribiendo nuevo código
  • 51. Conclusiones 10.000 líneas de código C#... Comprobado…. 124 assemblies .NET Ahora que mis pruebas unitarias generados…. Comprobado…. 52 están escritas puedo empezar a scripts de construcción… construir mis componentes. comprobado