SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Introducción a la Calidad
 y Pruebas de Software
      ¿seguro que el software funciona bien?
 ¿seguro que hace lo que el cliente quiere que haga?




            Universidad de los Andes
                    Demián Gutierrez
                     Febrero 2013
                                                       1
¿calidad del software?
          …
      ¿calidad?


                         2
¿Calidad?



       La calidad es sinónimo de software que
     funciona acorde a lo especificado por el
                        cliente

     Hoy en día, se considera que una de las
   mejores métricas de calidad de software es la
     satisfacción del cliente con respecto al
              producto desarrollado

            ¿será suficiente?
                                                   3
¿Calidad?

             tres visiones distintas
         usuario
      necesidades, valor,                        desarrolladores
   facilidad de uso, fallas /                   ¿qué tanto puedo dormir
     errores, recuperación                              de noche?
    frente a fallas / errores                   ¿qué tan miserable es mi
                                                         trabajo?
                                                   ¿qué tan fácil de
                                                 entender, mantener y
                                                modificar es el producto
                                                    en el que estoy
                                                      trabajando?
                            negocio
                       retorno de inversión
                     relación costo beneficio
                        ¿qué tan fácil de
                    mantener y modificar es
                          el producto?

                                                                           4
¿Calidad?

                                            Tiene su impacto
                        externa              principal en la
                Usualmente es la que      percepción que tiene
                 de alguna forma ve           el cliente del
                  (sufre o disfruta) el         producto
                 cliente directamente
                                            Tiene su impacto
                                              principal en lo
  ¿calidad de                             mantenible y flexible
   software?           interna             que es el software
                      Es la que                desarrollado
                 usualmente vemos          (muy importante)
                    (sufrimos) los
                  desarrolladores o           Generalmente
                sufre indirectamente            (aunque no
                      el cliente          necesariamente), una
                                          buena calidad interna
                                           tiende a producir un
                                           producto con buena
                                              calidad externa
                                                                  5
¿Calidad?

             tres visiones distintas
         usuario
      necesidades, valor,                        desarrolladores
   facilidad de uso, fallas /                   ¿qué tanto puedo dormir
     errores, recuperación                              de noche?
    frente a fallas / errores                   ¿qué tan miserable es mi
                                                         trabajo?
   Calidad Externa                                 ¿qué tan fácil de
                                                 entender, mantener y
                                                modificar es el producto
                                                    en el que estoy
                                                      trabajando?
                            negocio
                       retorno de inversión     Calidad Interna
                     relación costo beneficio
                        ¿qué tan fácil de
                    mantener y modificar es
                          el producto?

                                                                           6
Calidad y Requisitos



   ¿existe alguna relación entre
   la calidad de un producto de
    software y sus requisitos?

              ¿funcionales?
             ¿no funcionales?

                                   7
¿Calidad?


  La calidad del software es el conjunto de cualidades que lo
   caracterizan y que determinan su utilidad y existencia

  Para que un software sea útil y su existencia tenga sentido,
  entre otras cosas, tiene que satisfacer las necesidades de
                      los clientes/usuarios

       La calidad es sinónimo de eficiencia, flexibilidad,
    corrección, confiabilidad, mantenibilidad, portabilidad,
  usabilidad, seguridad, integridad y cualquier otro atributo
  que se defina que debe tener un producto de software
             (¿suenan conocidos esos atributos?)

                                                                 8
¿fallas de software?
     ¿incidente?

¿“falla” o “feature”?

                        9
(1)                                                             (3)
 desarrolladores                                                   (opcional)
 introducen algún tipo de                                           usuarios
   error en el código del                                      disparan el error en el
sistema, o fallan en prever                                      código o utilizan el
alguna forma en la que se
      usará el sistema                     (2)                 software de una forma
                                                                     imprevista
       (error humano)                   sistema
                                    se pone en producción
                                       con los defectos
                                         introducidos
                                  involuntariamente por los
                                        desarrolladores

                                                                      (4)
                       BU                                          resultado
                          G   !                               Se produce algún tipo de
                                                              consecuencia no deseada
                                                                   ¿algo explota?
                                                                 ¿algo se estrella?
                                                                        etc
                                                                                         10
una falla de software ocurre
  cuando un programa no
      cumple con las
 especificaciones, es decir,
  con el comportamiento
esperado de dicho programa
                               11
¿Fallas de Software?




     ¿el costo que producen
     las fallas del software?
                           (video)

             http://www.youtube.com/watch?v=kYUrqdUyEpI
             http://www.youtube.com/watch?v=gp_D8r-2hwk
             http://www.youtube.com/watch?v=EMVBLg2MrLs

                                                          12
¿Fallas de Software?




         ¿les pareció lo
   suficientemente costoso?



                              13
¿Fallas de Software?

      el costo que producen las fallas del
     software se puede apreciar en varios
               casos de estudio:


   La explosión del ARIANE 5 ocasionada por un error de software
        costó, a la Agencia Espacial Europea, $370 millones
                   (el video que acaban de ver)




                                                                   14
¿Fallas de Software?




     NASA Mars Climate Orbiter: For nine months, the Mars
   Climate Orbiter was speeding through space and speaking
   to NASA in metric. But the engineers on the ground were
                replying in non-metric English
    ($125 millones perdidos por una confusión de unidades)
                                                             15
¿Fallas de Software?



   el costo de no poder poner un sistema
   en producción debido a su baja calidad


      Un error en el sistema de manejo de equipajes costó, al
   aeropuerto de Denver en EEUU, más de $ 1.1 millones diarios
    No pudieron abrir el nuevo aeropuerto a tiempo, tuvieron que
    esperar hasta resolver el problema, hacer que el sistema de
    manejo de equipaje fuera estable les tomó más de 6 meses




                                                                   16
¿Fallas de Software?

   este costo es incalculable cuando estas fallas afectan
                      la vida humana:

   Una falla en el sistema de defensa Patriot permitió que un misil
   SCUD iraquí impactará una barraca de soldados americanos en
     Dhahran causando la muerte de 28 personas y dejando 98
                               heridos

   The British destroyer H.M.S. Sheffield was sunk in the Falkland
    Islands war. According to one report, the ship's radar warning
     systems were programmed to identify the Exocet missile as
      "friendly" because the British arsenal includes the Exocet's
  homing device and allowed the missile to reach its target, namely
                             the Sheffield

                      ¿Karma? ¿Justicia poética? ¿Causalidad? …           17
                 Se podrían decir muchas sutilezas, pero no tengo ganas
¿Fallas de Software?


               un ejemplo más dramático:


      desperfectos en el software de la
     máquina de radioterapia Therac-25
       produjeron varias muertes por
                sobredosis
   si los operadores usaban lentamente a IU entonces
          el software funcionaba correctamente,
    en la medida en que los operadores se volvieron
  más diestros usando el software, comenzaron a utilizar
        más rápidamente la IU lo que generó la falla
                                                           18
¿se puede/debe medir
la calidad del software?


                           19
¿Calidad?

              la calidad del software se puede medir
                    (aunque no siempre es fácil)

     Cantidad de                      Cantidad de                     Cantidad de
  defectos por línea                  defectos por                    defectos por
      de código                         Release                        “x” unidad

             Conformidad con
                                                             Aserciones por
              Estándares de           Complejidad           líneas de código
              Programación            Ciclomática


             Cobertura de                Cualquier                Cantidad de
               Código            tipo de prueba aplicada           Pruebas
                                      y las métricas
                                        resultantes

                 Estudios / Pruebas
                                                           Otras...
                   de Usabilidad
                                                                                     20
Calidad: Medir, Verificar y Asegurar



         verificar / medir
            la calidad
                vs
        asegurar la calidad
           ¿cuál es la diferencia?
          ¿cuál es más importante?
                                       21
Calidad: Medir y Verificar


                    ¿recuerdan el proceso en cascada?

                                                                   ¿por qué estamos
   Definición de
  Requerimientos                                                      hablando de
                                                                      pruebas y de
                 Diseño de
                  Sistema                                            calidad en una
               y de Software
                                                                   etapa tan temprana
                          Implementación                               del curso?
                           y Pruebas de
                             Unidades                                (sobre todo de
                                                                     calidad interna)
                                       Integración y
                                        Prueba del
                                         Sistema

  ¿qué sucede si
                                                    Operación y
 aquí encontramos                                  Mantenimiento
   un problema?
                                                                                        22
Calidad: Medir y Verificar

         Visión clásica ->                     La calidad del software puede medirse
                                              después de elaborado el producto. Pero
                                               esto puede resultar muy costoso si se
                                                  detectan problemas derivados de
                                             imperfecciones en el diseño, por lo que es
   Definición de
  Requerimientos                                imprescindible tener en cuenta tanto la
                                             obtención de la calidad final de un producto,
                 Diseño de
                                              como su control durante todas las etapas
                  Sistema                            del ciclo de vida del software
               y de Software

                          Implementación
                           y Pruebas de
                             Unidades

                                       Integración y
                                        Prueba del
                                         Sistema


                                                    Operación y
                                                   Mantenimiento


     ¿cómo se ataca este problema desde la visión ágil?                                      23
Calidad: Medir y Verificar VS Asegurar


                           Proceso,
                           Prácticas
                                                Aseguramiento
                                                 de la Calidad
                           Recursos
                           Equipos,
                           Insumos,
        Calidad              RRHH
      (en general)
                                               ¿pruebas continuas
     (de software)                                del producto?
                                             ¿integración continua?
                                             ¿entregas frecuentes?



                            Producto
                       (no necesariamente
                                                 Verificación
                         la versión final)       de la Calidad
                                                                 24
Calidad: Asegurar...




   Es decir, para hacer software
             de calidad
       (asegurar la calidad)
    es necesario tener buenos
    procesos, buen personal,
      buenas prácticas, etc...

                                   25
¿costo de la calidad?



                        26
Calidad: Costo / Relatividad


               la calidad es relativa,
             varía de un sistema a otro
   Un software elaborado para el control de naves espaciales debe
                ser confiable al nivel de "cero fallas"

    un producto de software para ser explotado durante un largo
   período (10 años o más), necesita ser confiable, mantenible y
        flexible para disminuir los costos de mantenimiento y
         perfeccionamiento durante el tiempo de explotación

   Un software hecho para ejecutarse una sola vez no requiere el
        mismo nivel de calidad que los productos anteriores

                                                                    27
Calidad: Costo / Relatividad




      la calidad tiene un precio asociado
      encontrar un balance adecuado es
                      clave
                            The Cost of Quality
       http://asq.org/learn-about-quality/cost-of-quality/overview/overview.html
       es decir el costo de NO hacer un producto con la calidad suficiente
                                          vs
               el costo de hacer un producto con excesiva calidad




                                                                                   28
Calidad: Costo / Relatividad

                                                                                    usted quiere
                                                                                     estar aquí
       Mayor Costo




                                                                                          Mayor Calidad


          1          2   3   4   5   6   7    8   9   10   11   12   13   14   15    16   17   18   19   20

                                             Costo de Desarrollo

                     Costo de Mantenimiento, Soporte, Cambio, Operación, etc

                                                  Costo Total                                                 29
verificación y validación
(dos conceptos muy usados y muy malentendidos)




                                                 30
Verificación y Validación


       Relación                       Calidad                       Relación
       CLIENTE                      (en general)                ESPECIFICACIONES
           ->                      (de software)                        ->
   ESPECIFICACIONES                                                PRODUCTO
      PRODUCTO




                 Validación: ¿Se                    Verificación: ¿Se
               está construyendo el                está construyendo el
                producto correcto?                       producto
                                                     correctamente?
                 Cumple con las                      Cumple con las
              expectativas del cliente               especificaciones


                             ¿El software CORRE /
                               FUNCIONA como
                                    debería?                                       31
Verificación y Validación



   Modelado   Ingeniería                            Construcción Pruebas       Entrega
                           Diseño       Diseño
     de           de                                      e        de la        de la
                            Arq.       Detallado
   Negocios   Requisitos                             Integración Aplicación   Aplicación



                           … Todo el Proceso de Desarrollo ...




                               Verificación y Validación



  el buen software depende de los detalles, en el proceso
   de validación y verificación se pulen los detalles y se
                 atan los cabos sueltos...


                                                                                           32
verificación
de la calidad


                33
Verificación Software

                                                                  Técnicas
                                                                 dinámicas
                                     Pruebas
                                                                (Corriendo el
                                                                  producto)




                                   Verificación
        Producto
                                  de la Calidad




            Inspecciones             Análisis                  Verificación
         Revisiones Técnicas         Estático                    Formal


                                Técnicas estáticas
                         (Sin correr el software o producto)
                                                                                34
Verificación Software
(Técnicas Estáticas)
                                              ¿% errores detectados?
                                                 ¿eficientes o no?
                                               Ver Sommerville 6ed
        Otras...                              pág. 429 observaciones
                         De Documentos            de Fagan en IBM
                        (Requerimientos,          Ver visión de las
                        Diseño, Pruebas,        inspecciones en XP
                            etcétera)             Automatizadas
                                                    (Ej: LINT,
                                                Compiladores, IDEs)
     Inspecciones         De Interfaz de
                                                   Checkstyle
  Revisiones Técnicas        Usuario
                                                    FindBugs
                                                       PDM
                           De Código               Hammurapi
       Análisis
                        (Análisis estático,
       Estático
                          sin ejecutar)
                                                     Manuales
                                                    (Revisiones
                                                     de Código)
                                                Revisiones Formales
                                              Programación por Pares

                                                                       35
Verificación Software
(Técnicas Dinámicas)

                         Aspecto a Evaluar             Grano del
                                                      Componente
                                    No Funcionales     a Probar
                                     Rendimiento,      De Sistema
                                       Stress           (fin a fin)
                  Funcionales                         De Integración
                                      Instalación

                                                         Unitaria
     Pruebas                          Seguridad

                                                          Otras
                 Conocimiento           Nivel de       Aceptación
                  del Código         Automatización
                  Caja Negra           Manuales            Alfa

                                     De Regresión
                  Caja Blanca       (automatizadas)       Beta

                                                                       36
Calidad: Algunas Historias...



      algunas historias
       sobre fallas de
          software:

           http://www.cs.tau.ac.il/~nachumd/verify/horror.html
        http://www.cse.lehigh.edu/~gtan/bug/softwarebug.html
    http://www.wired.com/software/coolapps/news/2005/11/69355
             http://www.it-cortex.com/Stat_Failure_Rate.htm
                 http://www.rand.org/pubs/papers/P4947/
        (este artículo es particularmente interesante, a pesar de ser de 1972)
                                                                                 41
Gracias




   ¡Gracias!


               42

Weitere ähnliche Inhalte

Was ist angesagt?

Usabilidad y Diseño de Software
Usabilidad y Diseño de SoftwareUsabilidad y Diseño de Software
Usabilidad y Diseño de Softwarealfonsogu
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosAle Mejia
 
Diseño de interfaces de usuario
Diseño de interfaces de usuarioDiseño de interfaces de usuario
Diseño de interfaces de usuarioDiego Rosas
 
CUADRO COMPARATIVO
CUADRO COMPARATIVOCUADRO COMPARATIVO
CUADRO COMPARATIVOChris023
 
El Proceso de Diseño de Interfaz del Usuario por Ian Sommerville
El Proceso de Diseño de Interfaz del Usuario por Ian SommervilleEl Proceso de Diseño de Interfaz del Usuario por Ian Sommerville
El Proceso de Diseño de Interfaz del Usuario por Ian SommervilleJuan Pablo Bustos Thames
 
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemas
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemasDesarrollo de prototipos en Introduccion al analisis y diseño de sistemas
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemasCarlos Antonio Hernandez
 
Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01wildowildo
 
Ppios basicos de usabilidad
Ppios basicos de usabilidadPpios basicos de usabilidad
Ppios basicos de usabilidadAndres Hernandez
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareIngris Argueta
 
10 Ingenieria De Usabilidad
10 Ingenieria De Usabilidad10 Ingenieria De Usabilidad
10 Ingenieria De Usabilidadguest669440
 
Diseño interfaz de usuario
Diseño interfaz de  usuarioDiseño interfaz de  usuario
Diseño interfaz de usuarioBayardo Medina
 
Diseno de la Interfaz de Usuario
Diseno de la Interfaz de UsuarioDiseno de la Interfaz de Usuario
Diseno de la Interfaz de UsuarioUTPL
 

Was ist angesagt? (20)

Roles y funciones...
Roles y funciones...Roles y funciones...
Roles y funciones...
 
Usabilidad y Diseño de Software
Usabilidad y Diseño de SoftwareUsabilidad y Diseño de Software
Usabilidad y Diseño de Software
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
Diseño de interfaz de usuario
Diseño de interfaz de usuarioDiseño de interfaz de usuario
Diseño de interfaz de usuario
 
Diseño de interfaces de usuario
Diseño de interfaces de usuarioDiseño de interfaces de usuario
Diseño de interfaces de usuario
 
Diseño de Interfaz
Diseño de InterfazDiseño de Interfaz
Diseño de Interfaz
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Taller de Usabilidad (HCI 1)
Taller de Usabilidad (HCI 1)Taller de Usabilidad (HCI 1)
Taller de Usabilidad (HCI 1)
 
CUADRO COMPARATIVO
CUADRO COMPARATIVOCUADRO COMPARATIVO
CUADRO COMPARATIVO
 
El Proceso de Diseño de Interfaz del Usuario por Ian Sommerville
El Proceso de Diseño de Interfaz del Usuario por Ian SommervilleEl Proceso de Diseño de Interfaz del Usuario por Ian Sommerville
El Proceso de Diseño de Interfaz del Usuario por Ian Sommerville
 
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemas
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemasDesarrollo de prototipos en Introduccion al analisis y diseño de sistemas
Desarrollo de prototipos en Introduccion al analisis y diseño de sistemas
 
Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01
 
Diseño de la interfaz de usuario
Diseño de la interfaz de usuarioDiseño de la interfaz de usuario
Diseño de la interfaz de usuario
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
Ppios basicos de usabilidad
Ppios basicos de usabilidadPpios basicos de usabilidad
Ppios basicos de usabilidad
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
10 Ingenieria De Usabilidad
10 Ingenieria De Usabilidad10 Ingenieria De Usabilidad
10 Ingenieria De Usabilidad
 
Diseño de Interfaces
Diseño de InterfacesDiseño de Interfaces
Diseño de Interfaces
 
Diseño interfaz de usuario
Diseño interfaz de  usuarioDiseño interfaz de  usuario
Diseño interfaz de usuario
 
Diseno de la Interfaz de Usuario
Diseno de la Interfaz de UsuarioDiseno de la Interfaz de Usuario
Diseno de la Interfaz de Usuario
 

Andere mochten auch (20)

Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Clase 09a frameworks_ejemplo
Clase 09a frameworks_ejemploClase 09a frameworks_ejemplo
Clase 09a frameworks_ejemplo
 
Clase 05d cobertura de codigo
Clase 05d cobertura de codigoClase 05d cobertura de codigo
Clase 05d cobertura de codigo
 
Clase 01 agilidad
Clase 01 agilidadClase 01 agilidad
Clase 01 agilidad
 
Hg mini manual
Hg mini manualHg mini manual
Hg mini manual
 
Clase 05b pruebas introduccion
Clase 05b pruebas introduccionClase 05b pruebas introduccion
Clase 05b pruebas introduccion
 
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 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebas
 
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 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
 
Clase 14b uml_actividades
Clase 14b uml_actividadesClase 14b uml_actividades
Clase 14b uml_actividades
 
Clase 13 uml_paquetes
Clase 13 uml_paquetesClase 13 uml_paquetes
Clase 13 uml_paquetes
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacion
 
Clase 09c seleccion
Clase 09c seleccionClase 09c seleccion
Clase 09c seleccion
 

Ähnlich wie Clase 05a calidad verificacion validacion

Ähnlich wie Clase 05a calidad verificacion validacion (20)

Jose luis salazar
Jose luis salazarJose luis salazar
Jose luis salazar
 
Calidad de Software
Calidad de SoftwareCalidad de Software
Calidad de Software
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Calidad
CalidadCalidad
Calidad
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Articulo Calidad Del Software El Camino Al Exito Ver. Revisada
Articulo Calidad Del Software El Camino Al Exito Ver. RevisadaArticulo Calidad Del Software El Camino Al Exito Ver. Revisada
Articulo Calidad Del Software El Camino Al Exito Ver. Revisada
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
 
Modelos de de calidad software indicom
Modelos de de calidad software indicomModelos de de calidad software indicom
Modelos de de calidad software indicom
 
conceptos de calidad
conceptos de calidadconceptos de calidad
conceptos de calidad
 
Conceptos de calidad
Conceptos de calidadConceptos de calidad
Conceptos de calidad
 
Guia numero 1
Guia numero 1Guia numero 1
Guia numero 1
 
Diagrama conceptual
Diagrama conceptualDiagrama conceptual
Diagrama conceptual
 
Vicky
VickyVicky
Vicky
 
Mapa conceptual eloy
Mapa conceptual eloyMapa conceptual eloy
Mapa conceptual eloy
 
BoLeTiN N° 2
BoLeTiN N° 2BoLeTiN N° 2
BoLeTiN N° 2
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Evaluación de Software Educativo - Sumi
Evaluación de Software Educativo - SumiEvaluación de Software Educativo - Sumi
Evaluación de Software Educativo - Sumi
 

Kürzlich hochgeladen

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
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
 
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
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Kürzlich hochgeladen (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
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)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
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
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Clase 05a calidad verificacion validacion

  • 1. Introducción a la Calidad y Pruebas de Software ¿seguro que el software funciona bien? ¿seguro que hace lo que el cliente quiere que haga? Universidad de los Andes Demián Gutierrez Febrero 2013 1
  • 2. ¿calidad del software? … ¿calidad? 2
  • 3. ¿Calidad? La calidad es sinónimo de software que funciona acorde a lo especificado por el cliente Hoy en día, se considera que una de las mejores métricas de calidad de software es la satisfacción del cliente con respecto al producto desarrollado ¿será suficiente? 3
  • 4. ¿Calidad? tres visiones distintas usuario necesidades, valor, desarrolladores facilidad de uso, fallas / ¿qué tanto puedo dormir errores, recuperación de noche? frente a fallas / errores ¿qué tan miserable es mi trabajo? ¿qué tan fácil de entender, mantener y modificar es el producto en el que estoy trabajando? negocio retorno de inversión relación costo beneficio ¿qué tan fácil de mantener y modificar es el producto? 4
  • 5. ¿Calidad? Tiene su impacto externa principal en la Usualmente es la que percepción que tiene de alguna forma ve el cliente del (sufre o disfruta) el producto cliente directamente Tiene su impacto principal en lo ¿calidad de mantenible y flexible software? interna que es el software Es la que desarrollado usualmente vemos (muy importante) (sufrimos) los desarrolladores o Generalmente sufre indirectamente (aunque no el cliente necesariamente), una buena calidad interna tiende a producir un producto con buena calidad externa 5
  • 6. ¿Calidad? tres visiones distintas usuario necesidades, valor, desarrolladores facilidad de uso, fallas / ¿qué tanto puedo dormir errores, recuperación de noche? frente a fallas / errores ¿qué tan miserable es mi trabajo? Calidad Externa ¿qué tan fácil de entender, mantener y modificar es el producto en el que estoy trabajando? negocio retorno de inversión Calidad Interna relación costo beneficio ¿qué tan fácil de mantener y modificar es el producto? 6
  • 7. Calidad y Requisitos ¿existe alguna relación entre la calidad de un producto de software y sus requisitos? ¿funcionales? ¿no funcionales? 7
  • 8. ¿Calidad? La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia Para que un software sea útil y su existencia tenga sentido, entre otras cosas, tiene que satisfacer las necesidades de los clientes/usuarios La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad, integridad y cualquier otro atributo que se defina que debe tener un producto de software (¿suenan conocidos esos atributos?) 8
  • 9. ¿fallas de software? ¿incidente? ¿“falla” o “feature”? 9
  • 10. (1) (3) desarrolladores (opcional) introducen algún tipo de usuarios error en el código del disparan el error en el sistema, o fallan en prever código o utilizan el alguna forma en la que se usará el sistema (2) software de una forma imprevista (error humano) sistema se pone en producción con los defectos introducidos involuntariamente por los desarrolladores (4) BU resultado G ! Se produce algún tipo de consecuencia no deseada ¿algo explota? ¿algo se estrella? etc 10
  • 11. una falla de software ocurre cuando un programa no cumple con las especificaciones, es decir, con el comportamiento esperado de dicho programa 11
  • 12. ¿Fallas de Software? ¿el costo que producen las fallas del software? (video) http://www.youtube.com/watch?v=kYUrqdUyEpI http://www.youtube.com/watch?v=gp_D8r-2hwk http://www.youtube.com/watch?v=EMVBLg2MrLs 12
  • 13. ¿Fallas de Software? ¿les pareció lo suficientemente costoso? 13
  • 14. ¿Fallas de Software? el costo que producen las fallas del software se puede apreciar en varios casos de estudio: La explosión del ARIANE 5 ocasionada por un error de software costó, a la Agencia Espacial Europea, $370 millones (el video que acaban de ver) 14
  • 15. ¿Fallas de Software? NASA Mars Climate Orbiter: For nine months, the Mars Climate Orbiter was speeding through space and speaking to NASA in metric. But the engineers on the ground were replying in non-metric English ($125 millones perdidos por una confusión de unidades) 15
  • 16. ¿Fallas de Software? el costo de no poder poner un sistema en producción debido a su baja calidad Un error en el sistema de manejo de equipajes costó, al aeropuerto de Denver en EEUU, más de $ 1.1 millones diarios No pudieron abrir el nuevo aeropuerto a tiempo, tuvieron que esperar hasta resolver el problema, hacer que el sistema de manejo de equipaje fuera estable les tomó más de 6 meses 16
  • 17. ¿Fallas de Software? este costo es incalculable cuando estas fallas afectan la vida humana: Una falla en el sistema de defensa Patriot permitió que un misil SCUD iraquí impactará una barraca de soldados americanos en Dhahran causando la muerte de 28 personas y dejando 98 heridos The British destroyer H.M.S. Sheffield was sunk in the Falkland Islands war. According to one report, the ship's radar warning systems were programmed to identify the Exocet missile as "friendly" because the British arsenal includes the Exocet's homing device and allowed the missile to reach its target, namely the Sheffield ¿Karma? ¿Justicia poética? ¿Causalidad? … 17 Se podrían decir muchas sutilezas, pero no tengo ganas
  • 18. ¿Fallas de Software? un ejemplo más dramático: desperfectos en el software de la máquina de radioterapia Therac-25 produjeron varias muertes por sobredosis si los operadores usaban lentamente a IU entonces el software funcionaba correctamente, en la medida en que los operadores se volvieron más diestros usando el software, comenzaron a utilizar más rápidamente la IU lo que generó la falla 18
  • 19. ¿se puede/debe medir la calidad del software? 19
  • 20. ¿Calidad? la calidad del software se puede medir (aunque no siempre es fácil) Cantidad de Cantidad de Cantidad de defectos por línea defectos por defectos por de código Release “x” unidad Conformidad con Aserciones por Estándares de Complejidad líneas de código Programación Ciclomática Cobertura de Cualquier Cantidad de Código tipo de prueba aplicada Pruebas y las métricas resultantes Estudios / Pruebas Otras... de Usabilidad 20
  • 21. Calidad: Medir, Verificar y Asegurar verificar / medir la calidad vs asegurar la calidad ¿cuál es la diferencia? ¿cuál es más importante? 21
  • 22. Calidad: Medir y Verificar ¿recuerdan el proceso en cascada? ¿por qué estamos Definición de Requerimientos hablando de pruebas y de Diseño de Sistema calidad en una y de Software etapa tan temprana Implementación del curso? y Pruebas de Unidades (sobre todo de calidad interna) Integración y Prueba del Sistema ¿qué sucede si Operación y aquí encontramos Mantenimiento un problema? 22
  • 23. Calidad: Medir y Verificar Visión clásica -> La calidad del software puede medirse después de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas derivados de imperfecciones en el diseño, por lo que es Definición de Requerimientos imprescindible tener en cuenta tanto la obtención de la calidad final de un producto, Diseño de como su control durante todas las etapas Sistema del ciclo de vida del software y de Software Implementación y Pruebas de Unidades Integración y Prueba del Sistema Operación y Mantenimiento ¿cómo se ataca este problema desde la visión ágil? 23
  • 24. Calidad: Medir y Verificar VS Asegurar Proceso, Prácticas Aseguramiento de la Calidad Recursos Equipos, Insumos, Calidad RRHH (en general) ¿pruebas continuas (de software) del producto? ¿integración continua? ¿entregas frecuentes? Producto (no necesariamente Verificación la versión final) de la Calidad 24
  • 25. Calidad: Asegurar... Es decir, para hacer software de calidad (asegurar la calidad) es necesario tener buenos procesos, buen personal, buenas prácticas, etc... 25
  • 26. ¿costo de la calidad? 26
  • 27. Calidad: Costo / Relatividad la calidad es relativa, varía de un sistema a otro Un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallas" un producto de software para ser explotado durante un largo período (10 años o más), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotación Un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad que los productos anteriores 27
  • 28. Calidad: Costo / Relatividad la calidad tiene un precio asociado encontrar un balance adecuado es clave The Cost of Quality http://asq.org/learn-about-quality/cost-of-quality/overview/overview.html es decir el costo de NO hacer un producto con la calidad suficiente vs el costo de hacer un producto con excesiva calidad 28
  • 29. Calidad: Costo / Relatividad usted quiere estar aquí Mayor Costo Mayor Calidad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Costo de Desarrollo Costo de Mantenimiento, Soporte, Cambio, Operación, etc Costo Total 29
  • 30. verificación y validación (dos conceptos muy usados y muy malentendidos) 30
  • 31. Verificación y Validación Relación Calidad Relación CLIENTE (en general) ESPECIFICACIONES -> (de software) -> ESPECIFICACIONES PRODUCTO PRODUCTO Validación: ¿Se Verificación: ¿Se está construyendo el está construyendo el producto correcto? producto correctamente? Cumple con las Cumple con las expectativas del cliente especificaciones ¿El software CORRE / FUNCIONA como debería? 31
  • 32. Verificación y Validación Modelado Ingeniería Construcción Pruebas Entrega Diseño Diseño de de e de la de la Arq. Detallado Negocios Requisitos Integración Aplicación Aplicación … Todo el Proceso de Desarrollo ... Verificación y Validación el buen software depende de los detalles, en el proceso de validación y verificación se pulen los detalles y se atan los cabos sueltos... 32
  • 34. Verificación Software Técnicas dinámicas Pruebas (Corriendo el producto) Verificación Producto de la Calidad Inspecciones Análisis Verificación Revisiones Técnicas Estático Formal Técnicas estáticas (Sin correr el software o producto) 34
  • 35. Verificación Software (Técnicas Estáticas) ¿% errores detectados? ¿eficientes o no? Ver Sommerville 6ed Otras... pág. 429 observaciones De Documentos de Fagan en IBM (Requerimientos, Ver visión de las Diseño, Pruebas, inspecciones en XP etcétera) Automatizadas (Ej: LINT, Compiladores, IDEs) Inspecciones De Interfaz de Checkstyle Revisiones Técnicas Usuario FindBugs PDM De Código Hammurapi Análisis (Análisis estático, Estático sin ejecutar) Manuales (Revisiones de Código) Revisiones Formales Programación por Pares 35
  • 36. Verificación Software (Técnicas Dinámicas) Aspecto a Evaluar Grano del Componente No Funcionales a Probar Rendimiento, De Sistema Stress (fin a fin) Funcionales De Integración Instalación Unitaria Pruebas Seguridad Otras Conocimiento Nivel de Aceptación del Código Automatización Caja Negra Manuales Alfa De Regresión Caja Blanca (automatizadas) Beta 36
  • 37. Calidad: Algunas Historias... algunas historias sobre fallas de software: http://www.cs.tau.ac.il/~nachumd/verify/horror.html http://www.cse.lehigh.edu/~gtan/bug/softwarebug.html http://www.wired.com/software/coolapps/news/2005/11/69355 http://www.it-cortex.com/Stat_Failure_Rate.htm http://www.rand.org/pubs/papers/P4947/ (este artículo es particularmente interesante, a pesar de ser de 1972) 41
  • 38. Gracias ¡Gracias! 42