SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
UNIVERSIDAD DE CARABOBO
   Facultad de Ciencias y Tecnología
   Curso de Ingeniería del Software




Construcción y Pruebas del
        Software



          Presentación elaborada por:
              Bazán, G., Rosas, F.
Agenda

Introducción.
Construcción del Software.
  •   ¿Que es la construcción del software.
  •   Relación con otras áreas del conocimiento.
  •   Tópicos en la construcción de software.
  •   Gerencia del proceso de construcción.
  •   Consideraciones practicas.
Agenda

Pruebas del Software.
  •   Validación y Revisión.
  •   Analizar y revisar.
  •   Pruebas de desarrollo.
  •   Test-driven Development.
  •   Pruebas de lanzamiento.
  •   Pruebas de usuario.
Agenda

Conclusiones.
Bibliografía.
Introducción
¿Que es la construcción del Software?

El termino Software Construction
(Construcción del software) se refiere a la
creación de software productivo y
significativo a través de los procesos de
codificación, verificación, pruebas unitarias,
pruebas de integración y depuración de
errores.
Relaciones con:

•   El área de diseño.
•   El área de pruebas.
•   El área de manejo de configuraciones.
•   El área de herramientas y métodos.
•   El área de calidad.
Relación con el diseño


         • Sus salidas son procesadas
           durante el proceso de
           construcción.

         • Puede ser una actividad del
           proceso de construcción.
Relación con las pruebas

• Las salidas de la construcción
  son sometida a un conjunto de
  pruebas no especificas.

• El proceso de pruebas puede
  formar parte en el proceso de
  construcción en forma de
  actividad.



                                   “Las 'Pruebas' son escepticismo organizado.”
                                                                  – James Bach
Relación con la G. Configuraciones



                Se encarga de manejar el
                conjunto de ítems producidos en
                el proceso de construcción.
Relación con la Calidad




En el proceso de codificación se aplican criterios
calidad en aras de incrementar la calidad del software.
Relación con herramientas y métodos:

 La construcción del software es el área que hace el uso
 más intensivo de las herramientas y métodos.
Tópicos en la construcción de Software

 •   Minimizar la complejidad.
 •   Anticipar los cambios.
 •   Construir teniendo en cuenta la verificación.
 •   Construir usando estándares.




          “El propósito de la ingeniería del software es controlar la complejidad, no crearla”
                                                                                 Pamela Zave
Minimizar la complejidad

• ¿Como reducir la complejidad al construir un
  software?
• Escribiendo código sencillo y leíble más que
  inteligente.
• Aplicando el uso de estándares.




                         “Programar puede ser divertido, la criptografía también;
                                     sin embargo no deberían ser combinadas.”
                                                   Kreitzberg and Shneiderman.
Anticipación al cambio


•   ¿Que se puede hacer ante el cambio?
•   ¿Temer?
•   ¿Resignarse?
•   ¿Aplicar gestión del cambio?




                              “No hay nada permanente excepto el cambio”

                                                       Heráclito de Éfeso
Uso de Estándares

•   ¿En que pueden afectar?
•   Lenguajes de programación.
•   Métodos de comunicación.
•   Plataformas.
•   Herramientas.




                   “El buen juicio viene de la experiencia, y la experiencia viene del mal juicio”
                                                                             Frederick. P. Brooks
Gerencia de la construcción

       • Modelos de construcción.
       • Planificación de la construcción.
       • Medición de la construcción.




                “Los buenos programadores usan el cerebro pero los buenos
                                 lineamientos nos salvan de pensar tanto.”
                                                       Francis Glassborow
Consideraciones practicas

•   Diseño de la construcción.
•   Lenguajes de construcción.
•   Codificación.
•   Pruebas.
•   Re-utilización.
•   Calidad en la construcción.




                        Si hablamos otro idioma, podríamos percibir un mundo diferente.
                                                                          Wittgenstein
Pruebas de Software
Pruebas de Software


• Demostrar al desarrollador y al cliente
  que el software alcanza sus requisitos.

• Descubrir situaciones donde el
  comportamiento del software es
  incorrecto, indeseable o no esta ajustado
  a las especificaciones


                  “Las pruebas pueden ser usadas para mostrar la presencia de errores,
                                               pero nunca para mostrar su ausencia.”
                                                                      Edsger Dijkstra.
Pruebas de Software

• Las pruebas forman parte de un proceso
  mayor llamado verificación y validación.

• Validación: ¿Estamos construyendo el
  producto correcto?

• Verificación: ¿Estamos construyendo bien
  el producto?
Revisiones de Software

Analizar y revisar:

   •   Los requerimientos de sistema
   •   Los modelos de diseño
   •   El código fuente
   •   Las pruebas propuestas
Pruebas de Desarrollo




         “Nunca cometo errores estúpidos, solo cometo los inteligentes”.

                                                             John Peel.
Pruebas de Desarrollo

• Pruebas Unitarias.
• Pruebas de Componentes.
• Pruebas de Sistema.
Pruebas Unitarias

• Las pruebas unitarias son aquellas
  pruebas en donde las partes individuales
  del programa u los objetos de las clases
  son probadas.
• Estas pruebas se deben enfocar en
  probar las funcionalidades de objetos o
  métodos.
Pruebas Unitarias



Prueba para validar un Like sin objeto asociado.




   Validaciones necesarias en el modelo.
Pruebas de Componentes

• Las pruebas de componentes son aquellas
  pruebas en donde varias pruebas unitarias
  son integradas para crear componentes
  compuestos.
• Estas pruebas deben enfocarse en probar
  las interfaces de los componentes.
Pruebas de Componentes




     Interacción entre un Like y un Articulo.
Pruebas de Sistema

Las pruebas de sistema son aquellas pruebas
en donde algunos o todos los componentes
en un sistema son integrados, probando el
sistema como un todo.
Estas pruebas se enfocan en probar las
interacciones de los componentes.
Pruebas de Sistema




    Prueba automatizada del sistema.
Test-Driven Development




Ken Beck es quien en 2002 replantea ciertos procesos de XP como TDD
Test-driven development

Beneficios:

  •Cobertura del código.
  •Pruebas de regresión.
  •Debugging simplificado.
  •Documentación del sistema.
Pruebas de lanzamiento

• Pruebas basadas en requerimientos.
• Pruebas de escenario.
• Pruebas de rendimiento.
Pruebas de usuario

• Pruebas Alfa.
• Pruebas Beta.
• Prueba de aceptación.
Conclusiones


•   Construir Productos de Calidad
•   Emplear las mejores practicas
•   Seguir Estándares
•   Validar
•   Verificar
Bibliografía

Beck, K. (2002). Test Driven Development: By Example. Addison-Wesley
Longman.
Chelimsky, D., Astels, D., Dennis, Z., Hellesøy, A., Helmkamp, B., & North, D.
(2010). The RSpec Book. The Pragmatic Programmers LLC.
IEE Computer Society. (2004 ). Guide to the Software Engineering Body of
Knowledge (SWEBOK).
North, D. (2006). DanNorth.net. Recuperado el 14 de Junio de 2012, de
Introducing BDD: http://dannorth.net/introducing-bdd/
Sommerville, I. (2010). Ingeniería del software. Adison Wesley.

Weitere ähnliche Inhalte

Was ist angesagt?

Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareJosé Antonio Sandoval Acosta
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsMARCO POLO SILVA SEGOVIA
 
Estimación de requerimientos_de_tiempo
Estimación de requerimientos_de_tiempoEstimación de requerimientos_de_tiempo
Estimación de requerimientos_de_tiempoJorge Garcia
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrentesamuel ospino
 
Uso de herramientas case
Uso de herramientas caseUso de herramientas case
Uso de herramientas caseMemo Wars
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de SoftwareJiuseppe Flores
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmiSandrea Rodriguez
 
Metricas de Codigo Fuente y Metricas de Prueba
Metricas de Codigo Fuente y Metricas de PruebaMetricas de Codigo Fuente y Metricas de Prueba
Metricas de Codigo Fuente y Metricas de PruebaKevin Castillo
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareKarloz Dz
 

Was ist angesagt? (20)

Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
 
Estimación de requerimientos_de_tiempo
Estimación de requerimientos_de_tiempoEstimación de requerimientos_de_tiempo
Estimación de requerimientos_de_tiempo
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrente
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Uso de herramientas case
Uso de herramientas caseUso de herramientas case
Uso de herramientas case
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Metricas de Codigo Fuente y Metricas de Prueba
Metricas de Codigo Fuente y Metricas de PruebaMetricas de Codigo Fuente y Metricas de Prueba
Metricas de Codigo Fuente y Metricas de Prueba
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de Software
 
PLAN SQA
PLAN SQAPLAN SQA
PLAN SQA
 
Metricas tecnicas del software
Metricas tecnicas del softwareMetricas tecnicas del software
Metricas tecnicas del software
 

Ähnlich wie Construccion y Pruebas de Software

Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Kiberley Santos
 
Procesos de desarrollo de software
Procesos de desarrollo de softwareProcesos de desarrollo de software
Procesos de desarrollo de softwareJose Diaz Silva
 
Ingenieria en software
Ingenieria en softwareIngenieria en software
Ingenieria en softwareEl Tory
 
Enfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de softwareEnfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de softwareJorge Bustillos
 

Ähnlich wie Construccion y Pruebas de Software (20)

Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Espoch
EspochEspoch
Espoch
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase1
Clase1Clase1
Clase1
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010
 
Procesos de desarrollo de software
Procesos de desarrollo de softwareProcesos de desarrollo de software
Procesos de desarrollo de software
 
Ingenieria en software
Ingenieria en softwareIngenieria en software
Ingenieria en software
 
Entregables de pruebas
Entregables de pruebasEntregables de pruebas
Entregables de pruebas
 
ROLES.pdf
ROLES.pdfROLES.pdf
ROLES.pdf
 
Enfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de softwareEnfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de software
 
Clase 11
Clase 11Clase 11
Clase 11
 

Construccion y Pruebas de Software

  • 1. UNIVERSIDAD DE CARABOBO Facultad de Ciencias y Tecnología Curso de Ingeniería del Software Construcción y Pruebas del Software Presentación elaborada por: Bazán, G., Rosas, F.
  • 2. Agenda Introducción. Construcción del Software. • ¿Que es la construcción del software. • Relación con otras áreas del conocimiento. • Tópicos en la construcción de software. • Gerencia del proceso de construcción. • Consideraciones practicas.
  • 3. Agenda Pruebas del Software. • Validación y Revisión. • Analizar y revisar. • Pruebas de desarrollo. • Test-driven Development. • Pruebas de lanzamiento. • Pruebas de usuario.
  • 6. ¿Que es la construcción del Software? El termino Software Construction (Construcción del software) se refiere a la creación de software productivo y significativo a través de los procesos de codificación, verificación, pruebas unitarias, pruebas de integración y depuración de errores.
  • 7. Relaciones con: • El área de diseño. • El área de pruebas. • El área de manejo de configuraciones. • El área de herramientas y métodos. • El área de calidad.
  • 8. Relación con el diseño • Sus salidas son procesadas durante el proceso de construcción. • Puede ser una actividad del proceso de construcción.
  • 9. Relación con las pruebas • Las salidas de la construcción son sometida a un conjunto de pruebas no especificas. • El proceso de pruebas puede formar parte en el proceso de construcción en forma de actividad. “Las 'Pruebas' son escepticismo organizado.” – James Bach
  • 10. Relación con la G. Configuraciones Se encarga de manejar el conjunto de ítems producidos en el proceso de construcción.
  • 11. Relación con la Calidad En el proceso de codificación se aplican criterios calidad en aras de incrementar la calidad del software.
  • 12. Relación con herramientas y métodos: La construcción del software es el área que hace el uso más intensivo de las herramientas y métodos.
  • 13. Tópicos en la construcción de Software • Minimizar la complejidad. • Anticipar los cambios. • Construir teniendo en cuenta la verificación. • Construir usando estándares. “El propósito de la ingeniería del software es controlar la complejidad, no crearla” Pamela Zave
  • 14. Minimizar la complejidad • ¿Como reducir la complejidad al construir un software? • Escribiendo código sencillo y leíble más que inteligente. • Aplicando el uso de estándares. “Programar puede ser divertido, la criptografía también; sin embargo no deberían ser combinadas.” Kreitzberg and Shneiderman.
  • 15. Anticipación al cambio • ¿Que se puede hacer ante el cambio? • ¿Temer? • ¿Resignarse? • ¿Aplicar gestión del cambio? “No hay nada permanente excepto el cambio” Heráclito de Éfeso
  • 16. Uso de Estándares • ¿En que pueden afectar? • Lenguajes de programación. • Métodos de comunicación. • Plataformas. • Herramientas. “El buen juicio viene de la experiencia, y la experiencia viene del mal juicio” Frederick. P. Brooks
  • 17. Gerencia de la construcción • Modelos de construcción. • Planificación de la construcción. • Medición de la construcción. “Los buenos programadores usan el cerebro pero los buenos lineamientos nos salvan de pensar tanto.” Francis Glassborow
  • 18. Consideraciones practicas • Diseño de la construcción. • Lenguajes de construcción. • Codificación. • Pruebas. • Re-utilización. • Calidad en la construcción. Si hablamos otro idioma, podríamos percibir un mundo diferente. Wittgenstein
  • 20. Pruebas de Software • Demostrar al desarrollador y al cliente que el software alcanza sus requisitos. • Descubrir situaciones donde el comportamiento del software es incorrecto, indeseable o no esta ajustado a las especificaciones “Las pruebas pueden ser usadas para mostrar la presencia de errores, pero nunca para mostrar su ausencia.” Edsger Dijkstra.
  • 21. Pruebas de Software • Las pruebas forman parte de un proceso mayor llamado verificación y validación. • Validación: ¿Estamos construyendo el producto correcto? • Verificación: ¿Estamos construyendo bien el producto?
  • 22. Revisiones de Software Analizar y revisar: • Los requerimientos de sistema • Los modelos de diseño • El código fuente • Las pruebas propuestas
  • 23. Pruebas de Desarrollo “Nunca cometo errores estúpidos, solo cometo los inteligentes”. John Peel.
  • 24. Pruebas de Desarrollo • Pruebas Unitarias. • Pruebas de Componentes. • Pruebas de Sistema.
  • 25. Pruebas Unitarias • Las pruebas unitarias son aquellas pruebas en donde las partes individuales del programa u los objetos de las clases son probadas. • Estas pruebas se deben enfocar en probar las funcionalidades de objetos o métodos.
  • 26. Pruebas Unitarias Prueba para validar un Like sin objeto asociado. Validaciones necesarias en el modelo.
  • 27. Pruebas de Componentes • Las pruebas de componentes son aquellas pruebas en donde varias pruebas unitarias son integradas para crear componentes compuestos. • Estas pruebas deben enfocarse en probar las interfaces de los componentes.
  • 28. Pruebas de Componentes Interacción entre un Like y un Articulo.
  • 29. Pruebas de Sistema Las pruebas de sistema son aquellas pruebas en donde algunos o todos los componentes en un sistema son integrados, probando el sistema como un todo. Estas pruebas se enfocan en probar las interacciones de los componentes.
  • 30. Pruebas de Sistema Prueba automatizada del sistema.
  • 31. Test-Driven Development Ken Beck es quien en 2002 replantea ciertos procesos de XP como TDD
  • 32. Test-driven development Beneficios: •Cobertura del código. •Pruebas de regresión. •Debugging simplificado. •Documentación del sistema.
  • 33. Pruebas de lanzamiento • Pruebas basadas en requerimientos. • Pruebas de escenario. • Pruebas de rendimiento.
  • 34. Pruebas de usuario • Pruebas Alfa. • Pruebas Beta. • Prueba de aceptación.
  • 35. Conclusiones • Construir Productos de Calidad • Emplear las mejores practicas • Seguir Estándares • Validar • Verificar
  • 36. Bibliografía Beck, K. (2002). Test Driven Development: By Example. Addison-Wesley Longman. Chelimsky, D., Astels, D., Dennis, Z., Hellesøy, A., Helmkamp, B., & North, D. (2010). The RSpec Book. The Pragmatic Programmers LLC. IEE Computer Society. (2004 ). Guide to the Software Engineering Body of Knowledge (SWEBOK). North, D. (2006). DanNorth.net. Recuperado el 14 de Junio de 2012, de Introducing BDD: http://dannorth.net/introducing-bdd/ Sommerville, I. (2010). Ingeniería del software. Adison Wesley.