SlideShare una empresa de Scribd logo
Fco.Javier Buhigas
      Pablo Fdez.-Palacios




GSI          UCA 2011/12
   Definición:      es una práctica de programación que consiste
    en escribir primero las pruebas unitarias(test first
    development), después escribir el código fuente que pase la
    prueba satisfactoriamente y, por último, refactorizar el código
    escrito (refactoring).
   Es una práctica que envuelve el desarrollo en su conjunto,
    especialmente el diseño de Software

   Objetivo y propósito: Lograr un código limpio y robusto que
    funcione (Diseño manejado por las pruebas)




GSI                                                   UCA 2011/12
   Ciclo de desarrollo conducido por pruebas




GSI                                    UCA 2011/12
   Antes de empezar el ciclo se define una lista de requisitos


         1. Elegir un requisito: se elige el requisito que aporte
          mayor conocimiento y a la vez sea de fácil implementación.


         2 Escribir una prueba: Se comienza escribiendo una
          prueba para el requisito. Para ello el programador debe
          entender claramente las especificaciones y los requisitos de la
          funcionalidad que está por implementar.

         3. Verificar que la prueba falla: Si la prueba no falla es
          porque el requerimiento ya estaba implementado o porque la
          prueba es errónea.

         4. Escribir la implementación: Escribir el código más
          sencillo que haga que la prueba funcione
GSI                                                     UCA 2011/12
    5. Ejecutar las pruebas automatizadas: Verificar si
      todo el conjunto de pruebas funciona correctamente.

     6. Eliminación de duplicación: El paso final es la
      refactorización, que se utilizará principalmente para eliminar
      código duplicado.

     7. Actualización de la lista de requisitos: Se actualiza
      la lista de requisitos tachando el requisito implementado.
      Asimismo se agregan requisitos que se hayan visto como
      necesarios durante este ciclo y se agregan requerimientos de
      diseño.

     Este ciclo se suele abreviar como rojo-verde-refactor



GSI                                                    UCA 2011/12
   Cuando los equipos ejecutan TDD consistentemente en sus mentes,
      las características se producen con mayor rapidez. Características
      más rápidas significan menos tiempo al mercado. Reducción del
      período de tiempo de salida al mercado significa mayor
      posibilidades de obtener más clientes. Lo mejor de todo es que la
      velocidad de comercialización está respaldado por una red de
      seguridad de las pruebas que permiten un cambio rápido en la
      misma cantidad de tiempo

     Proporciona un gran valor añadido en la creación de software,
      produciendo aplicaciones de más calidad y en menos tiempo. Ofrece
      más que una simple validación del cumplimiento de los requisitos,
      también puede guiar el diseño de un programa

     Sólo se implemente el código necesario para resolver un caso de
      prueba concreto (pasar la prueba) hace que el código creado sea el
      mínimo necesario, reduciendo redundancia

     El código escrito con TDD se respalda en pruebas, cualquier cambio
      que rompe el código se descubre rápidamente. En esencia, el código
      escrito con TDD es más fácil de cambiar y más fácil de arreglar.

GSI                                                       UCA 2011/12
El desarrollo guiado por pruebas requiere que las pruebas
    puedan automatizarse. Esto resulta complejo en los
    siguientes

   Bases de datos. Hacer pruebas de código que trabaja con
    base de datos es complejo porque requiere generar unos
    datos conocidos antes de hacer las pruebas y verificar que el
    contenido de la base de datos es el esperado después de la
    prueba. Los objetos simulados (MockObjects) son otra opción

   Interfaces gráficas de usuarios (GUIs). aunque hay soluciones
    parciales propuestas



GSI                                                  UCA 2011/12

Más contenido relacionado

PPTX
EL APRENDIZAJE DE LA LECTO-ESCRITURA
PPTX
Lectoescritura
PDF
Gsm rf-optimization
PPT
Lang socialization
PDF
Leveraging IMS for VoLTE and RCS Services in LTE Networks Presented by Adnan ...
PDF
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
PPSX
7iSF-4 test driver development
PDF
Pruebas unitarias
EL APRENDIZAJE DE LA LECTO-ESCRITURA
Lectoescritura
Gsm rf-optimization
Lang socialization
Leveraging IMS for VoLTE and RCS Services in LTE Networks Presented by Adnan ...
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
7iSF-4 test driver development
Pruebas unitarias

Similar a TDD (20)

PPTX
pruebasunitarias-110921232512-phpapp02.pptx
PPTX
Modelos de procesos de software(completo)
PPTX
Behavior1
PPTX
Sqm
PDF
Metodologías Aágiles: TDD (Test Driven development)
PPTX
Software Quality Assurance
PPTX
Unidad ii. tdd
PDF
tipos de pruebas.
PDF
expodesarrollo29
PDF
presentacion de programacion Software testing.pdf
PPTX
Pruebas software (1)
PDF
desarrollo agil-2022.pdf
PPTX
Meetup Integración Continua y Jenkins
PPTX
Etapas para el desarrollo de un sistema de software
PPTX
Etapas para el desarrollo de un sistema de software
PPTX
Exposicion 3
PDF
Etapas del diseño .pdf
PDF
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
PDF
practica 9 de fundamento.pdf
PDF
Presentación: xUnit y Junit
pruebasunitarias-110921232512-phpapp02.pptx
Modelos de procesos de software(completo)
Behavior1
Sqm
Metodologías Aágiles: TDD (Test Driven development)
Software Quality Assurance
Unidad ii. tdd
tipos de pruebas.
expodesarrollo29
presentacion de programacion Software testing.pdf
Pruebas software (1)
desarrollo agil-2022.pdf
Meetup Integración Continua y Jenkins
Etapas para el desarrollo de un sistema de software
Etapas para el desarrollo de un sistema de software
Exposicion 3
Etapas del diseño .pdf
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
practica 9 de fundamento.pdf
Presentación: xUnit y Junit
Publicidad

Último (20)

PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
PDF
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
PDF
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
PPTX
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
PDF
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
PDF
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
PPTX
Clase 3 del silabo-gestion y control financiero
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
informe tipos de Informatica perfiles profesionales _pdf
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
Clase 3 del silabo-gestion y control financiero
Manual de Convivencia 2025 actualizado a las normas vigentes
Ernst Cassirer - Antropologia Filosofica.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Publicidad

TDD

  • 1. Fco.Javier Buhigas Pablo Fdez.-Palacios GSI UCA 2011/12
  • 2. Definición: es una práctica de programación que consiste en escribir primero las pruebas unitarias(test first development), después escribir el código fuente que pase la prueba satisfactoriamente y, por último, refactorizar el código escrito (refactoring).  Es una práctica que envuelve el desarrollo en su conjunto, especialmente el diseño de Software  Objetivo y propósito: Lograr un código limpio y robusto que funcione (Diseño manejado por las pruebas) GSI UCA 2011/12
  • 3. Ciclo de desarrollo conducido por pruebas GSI UCA 2011/12
  • 4. Antes de empezar el ciclo se define una lista de requisitos  1. Elegir un requisito: se elige el requisito que aporte mayor conocimiento y a la vez sea de fácil implementación.  2 Escribir una prueba: Se comienza escribiendo una prueba para el requisito. Para ello el programador debe entender claramente las especificaciones y los requisitos de la funcionalidad que está por implementar.  3. Verificar que la prueba falla: Si la prueba no falla es porque el requerimiento ya estaba implementado o porque la prueba es errónea.  4. Escribir la implementación: Escribir el código más sencillo que haga que la prueba funcione GSI UCA 2011/12
  • 5. 5. Ejecutar las pruebas automatizadas: Verificar si todo el conjunto de pruebas funciona correctamente.  6. Eliminación de duplicación: El paso final es la refactorización, que se utilizará principalmente para eliminar código duplicado.  7. Actualización de la lista de requisitos: Se actualiza la lista de requisitos tachando el requisito implementado. Asimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agregan requerimientos de diseño.  Este ciclo se suele abreviar como rojo-verde-refactor GSI UCA 2011/12
  • 6. Cuando los equipos ejecutan TDD consistentemente en sus mentes, las características se producen con mayor rapidez. Características más rápidas significan menos tiempo al mercado. Reducción del período de tiempo de salida al mercado significa mayor posibilidades de obtener más clientes. Lo mejor de todo es que la velocidad de comercialización está respaldado por una red de seguridad de las pruebas que permiten un cambio rápido en la misma cantidad de tiempo  Proporciona un gran valor añadido en la creación de software, produciendo aplicaciones de más calidad y en menos tiempo. Ofrece más que una simple validación del cumplimiento de los requisitos, también puede guiar el diseño de un programa  Sólo se implemente el código necesario para resolver un caso de prueba concreto (pasar la prueba) hace que el código creado sea el mínimo necesario, reduciendo redundancia  El código escrito con TDD se respalda en pruebas, cualquier cambio que rompe el código se descubre rápidamente. En esencia, el código escrito con TDD es más fácil de cambiar y más fácil de arreglar. GSI UCA 2011/12
  • 7. El desarrollo guiado por pruebas requiere que las pruebas puedan automatizarse. Esto resulta complejo en los siguientes  Bases de datos. Hacer pruebas de código que trabaja con base de datos es complejo porque requiere generar unos datos conocidos antes de hacer las pruebas y verificar que el contenido de la base de datos es el esperado después de la prueba. Los objetos simulados (MockObjects) son otra opción  Interfaces gráficas de usuarios (GUIs). aunque hay soluciones parciales propuestas GSI UCA 2011/12