SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Pruebas de Software
  Niveles de Pruebas




    Universidad de los Andes
          Demián Gutierrez
           Febrero 2013
                               1
¿Cómo Probar?




                Sumar 2 Números

         int sumarAyB(int a, int b) {
           return a + b;
         }




    ¿cómo probamos algo como esto?
   ¿por qué es tan difícil hacer pruebas?
                                            2
¿Cómo Probar?

                                                   Otra
                                                 Aplicación




                Interfaz de Usuario




                                      Envío de
                                       Correo


     ¿cómo probamos algo como esto?                           3
Niveles de Pruebas /
Pruebas Según su Alcance




                       De Sistema
                        ¿fin a fin?




                                                        Más Numerosas
                                       Grano Más Fino




                                                                        Más Rápidas
      PRUEBAS
                      De Integración
   Según su Alcance



                        Unitarias




                                                                                      4
Niveles de Pruebas /
Pruebas Unitarias
     ¿cómo probamos algo como esto?

      entradas   salidas


                                                       ...




                           Interfaz de Usuario

                                                 ...
                                                             5
Niveles de Pruebas /
Pruebas de Integración
     ¿cómo probamos algo como esto?

     entradas      salidas


                                                         ...




                             Interfaz de Usuario

                                                   ...
                                                               6
Niveles de Pruebas /
Pruebas De Sistema / Subsistema
     ¿cómo probamos algo como esto?

                                                ...

                    Interfaz de Usuario




          salidas                                     entradas




                                          ...

                                                                 7
bien, pero
¿cuál es el problema?


                        8
Niveles de Pruebas /
Pruebas De Sistema / Subsistema
                    esto es fácil de probar
                                                  ...



                      Interfaz de Usuario


          salidas                                       entradas




                                            ...


   ponga a correr el sistema y comience a hacer clicks
                 (se puede automatizar)                            9
Niveles de Pruebas /
Pruebas Según su Alcance

  en estos dos casos tenemos problemas




    entradas      salidas   entradas     salidas




               ¿qué tipo de problemas?
                                                   10
Niveles de Pruebas /
Pruebas Según su Alcance




                 entradas   salidas




  los componentes que queremos probar
          tienen dependencias
                                        11
Niveles de Pruebas /
Pruebas Según su Alcance
      que a su vez tienen dependencias




              entradas     salidas




               lo que hace difícil
            probarlos por separado       12
¿cómo se resuelve?
                              B
     entradas
                A   salidas




                              C

                                  13
B           B         “C
                                                  (verdadero)   (FALSO)         om Ca
                                                                                  po mb




                                              s
                                                                (MOCK)




                                            te
                                                                                    ne iar




                                       os en
                                                                                      nt los




                                     er on
                                                                                        es p




                                   ad p
                                                                 C

                                rd om
                                                     C                                     Fa or




                             Ve r C
                                                                                             ls
                                                                                               os



                                 a
                              in
                                                                (FALSO)                          ”

                            im
                                                  (verdadero)
                         El
                                                                (MOCK)


                         B                                                                                     B
                                                                                                           (FALSO)
                   (verdadero)
                                                                                                           (MOCK)


entradas
           A   salidas                                               entradas
                                                                                        A            salidas




                         C                                                                                     C
                                                                                                           (FALSO)
                   (verdadero)
                                                                                                           (MOCK)




                                                                                                                     14
B             bajo prueba
                        (verdadero)      (en modo prueba)

    entradas
               A    salidas

                                                               B
                              C
                                                           (FALSO)
   en producción                                           (MOCK)

(en funcionamiento) (verdadero)
                                      entradas
                                                 A   salidas




                                                               C
                                                           (FALSO)
                                                           (MOCK)


                                      Conductor de la Prueba



                                                                     15
Los Mocks y Stubs se pueden
  implementar sin la ayuda de ningún
    framework, pero usualmente es
aconsejable apoyarse en alguna librería
 Dos muy conocidas en el mundo Java
                    JMock
                   http://jmock.org/

                   Mockito
           http://code.google.com/p/mockito/

                                               16
¿cómo mejorar la
    “testeabilidad”?

¿cómo escribir software
    “testeable”?
                          17
¿Cómo escribir código que sea “testeable”?
¡Cuatro consejos clave!

   Establecer “contratos” entre los distintos componentes
                 por medio de interfaces

     Evitar usar el operador new para crear instancias
      concretas de un tipo dado (preferir interfaces)
                      ¿qué? ¿cómo?

      Usar el principio de “inversión de dependencias”
                   (Dependency Inversion)
                      (La “D” de SOLID)

         Apoyarse en frameworks de inyección de
           dependencias, por ejemplo, Spring
                                                            18
Gracias




   ¡Gracias!


               19

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

APO1 - Presentacion nivel 1
APO1 - Presentacion nivel 1APO1 - Presentacion nivel 1
APO1 - Presentacion nivel 1
 
Testing intro-a
Testing intro-aTesting intro-a
Testing intro-a
 
Presentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_iiPresentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_ii
 
Lenguaje c tarea 3
Lenguaje c tarea 3Lenguaje c tarea 3
Lenguaje c tarea 3
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Modulo de programación 10
Modulo de programación 10Modulo de programación 10
Modulo de programación 10
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
 
71456126 enunciado-practica1-afd
71456126 enunciado-practica1-afd71456126 enunciado-practica1-afd
71456126 enunciado-practica1-afd
 
java y xml
java y xmljava y xml
java y xml
 
Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)
 
4. Instrucciones Y Excepciones
4.  Instrucciones Y Excepciones4.  Instrucciones Y Excepciones
4. Instrucciones Y Excepciones
 
Programación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosiropProgramación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosirop
 
Pares algoritmos
Pares algoritmosPares algoritmos
Pares algoritmos
 
Pruebas de caja blanca y negra
Pruebas  de caja blanca y negraPruebas  de caja blanca y negra
Pruebas de caja blanca y negra
 
Prueba
PruebaPrueba
Prueba
 
Clase9
Clase9Clase9
Clase9
 
Progra
PrograProgra
Progra
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 

Destacado (20)

Estrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de softwareEstrategias y técnicas de pruebas de software
Estrategias y técnicas de pruebas de software
 
Clase 09a frameworks_ejemplo
Clase 09a frameworks_ejemploClase 09a frameworks_ejemplo
Clase 09a frameworks_ejemplo
 
Clase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacionClase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacion
 
Hg mini manual
Hg mini manualHg mini manual
Hg mini manual
 
Clase 03 XP
Clase 03 XPClase 03 XP
Clase 03 XP
 
Clase 05d cobertura de codigo
Clase 05d cobertura de codigoClase 05d cobertura de codigo
Clase 05d cobertura de codigo
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Clase 01 agilidad
Clase 01 agilidadClase 01 agilidad
Clase 01 agilidad
 
Clase 01 presentacion
Clase 01 presentacionClase 01 presentacion
Clase 01 presentacion
 
Clase 09a frameworks
Clase 09a frameworksClase 09a frameworks
Clase 09a frameworks
 
Clase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtualClase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtual
 
Clase 12a uml_clases
Clase 12a uml_clasesClase 12a uml_clases
Clase 12a uml_clases
 
Clase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cledaClase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cleda
 
Clase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemploClase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemplo
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
Clase 07a patrones_diseno
Clase 07a patrones_disenoClase 07a patrones_diseno
Clase 07a patrones_diseno
 
Clase 04a requerimientos introduccion
Clase 04a requerimientos introduccionClase 04a requerimientos introduccion
Clase 04a requerimientos introduccion
 
Clase 06 diseno_arquitectura
Clase 06 diseno_arquitecturaClase 06 diseno_arquitectura
Clase 06 diseno_arquitectura
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
 

Más de Demián Gutierrez

Más de Demián Gutierrez (9)

Clase 04 diseno_ui
Clase 04 diseno_uiClase 04 diseno_ui
Clase 04 diseno_ui
 
Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)
 
Clase 14b uml_actividades
Clase 14b uml_actividadesClase 14b uml_actividades
Clase 14b uml_actividades
 
Clase 14a uml_estados
Clase 14a uml_estadosClase 14a uml_estados
Clase 14a uml_estados
 
Clase 13 uml_paquetes
Clase 13 uml_paquetesClase 13 uml_paquetes
Clase 13 uml_paquetes
 
Clase 12b uml_clases_ejemplos
Clase 12b uml_clases_ejemplosClase 12b uml_clases_ejemplos
Clase 12b uml_clases_ejemplos
 
Clase 09c seleccion
Clase 09c seleccionClase 09c seleccion
Clase 09c seleccion
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacion
 
Clase 02 Scrum
Clase 02 ScrumClase 02 Scrum
Clase 02 Scrum
 

Último

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 

Último (20)

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 

Niveles de Pruebas de Software y Técnicas para Escribir Código Testeable

  • 1. Pruebas de Software Niveles de Pruebas Universidad de los Andes Demián Gutierrez Febrero 2013 1
  • 2. ¿Cómo Probar? Sumar 2 Números int sumarAyB(int a, int b) { return a + b; } ¿cómo probamos algo como esto? ¿por qué es tan difícil hacer pruebas? 2
  • 3. ¿Cómo Probar? Otra Aplicación Interfaz de Usuario Envío de Correo ¿cómo probamos algo como esto? 3
  • 4. Niveles de Pruebas / Pruebas Según su Alcance De Sistema ¿fin a fin? Más Numerosas Grano Más Fino Más Rápidas PRUEBAS De Integración Según su Alcance Unitarias 4
  • 5. Niveles de Pruebas / Pruebas Unitarias ¿cómo probamos algo como esto? entradas salidas ... Interfaz de Usuario ... 5
  • 6. Niveles de Pruebas / Pruebas de Integración ¿cómo probamos algo como esto? entradas salidas ... Interfaz de Usuario ... 6
  • 7. Niveles de Pruebas / Pruebas De Sistema / Subsistema ¿cómo probamos algo como esto? ... Interfaz de Usuario salidas entradas ... 7
  • 8. bien, pero ¿cuál es el problema? 8
  • 9. Niveles de Pruebas / Pruebas De Sistema / Subsistema esto es fácil de probar ... Interfaz de Usuario salidas entradas ... ponga a correr el sistema y comience a hacer clicks (se puede automatizar) 9
  • 10. Niveles de Pruebas / Pruebas Según su Alcance en estos dos casos tenemos problemas entradas salidas entradas salidas ¿qué tipo de problemas? 10
  • 11. Niveles de Pruebas / Pruebas Según su Alcance entradas salidas los componentes que queremos probar tienen dependencias 11
  • 12. Niveles de Pruebas / Pruebas Según su Alcance que a su vez tienen dependencias entradas salidas lo que hace difícil probarlos por separado 12
  • 13. ¿cómo se resuelve? B entradas A salidas C 13
  • 14. B B “C (verdadero) (FALSO) om Ca po mb s (MOCK) te ne iar os en nt los er on es p ad p C rd om C Fa or Ve r C ls os a in (FALSO) ” im (verdadero) El (MOCK) B B (FALSO) (verdadero) (MOCK) entradas A salidas entradas A salidas C C (FALSO) (verdadero) (MOCK) 14
  • 15. B bajo prueba (verdadero) (en modo prueba) entradas A salidas B C (FALSO) en producción (MOCK) (en funcionamiento) (verdadero) entradas A salidas C (FALSO) (MOCK) Conductor de la Prueba 15
  • 16. Los Mocks y Stubs se pueden implementar sin la ayuda de ningún framework, pero usualmente es aconsejable apoyarse en alguna librería Dos muy conocidas en el mundo Java JMock http://jmock.org/ Mockito http://code.google.com/p/mockito/ 16
  • 17. ¿cómo mejorar la “testeabilidad”? ¿cómo escribir software “testeable”? 17
  • 18. ¿Cómo escribir código que sea “testeable”? ¡Cuatro consejos clave! Establecer “contratos” entre los distintos componentes por medio de interfaces Evitar usar el operador new para crear instancias concretas de un tipo dado (preferir interfaces) ¿qué? ¿cómo? Usar el principio de “inversión de dependencias” (Dependency Inversion) (La “D” de SOLID) Apoyarse en frameworks de inyección de dependencias, por ejemplo, Spring 18
  • 19. Gracias ¡Gracias! 19