SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

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_procesos
Ale Mejia
 
Diseño de interfaces de usuario
Diseño de interfaces de usuarioDiseño de interfaces de usuario
Diseño de interfaces de usuario
Diego Rosas
 
Diseño de Interfaz
Diseño de InterfazDiseño de Interfaz
Diseño de Interfaz
Rommel Duarte
 
Taller de Usabilidad (HCI 1)
Taller de Usabilidad (HCI 1)Taller de Usabilidad (HCI 1)
Taller de Usabilidad (HCI 1)
Mario A Moreno Rocha
 
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 Sommerville
Juan 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 sistemas
Carlos Antonio Hernandez
 
Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01Constanzaprieto 100520063118-phpapp01
Constanzaprieto 100520063118-phpapp01
wildowildo
 
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
Jose Patricio Bovet Derpich
 
Ppios basicos de usabilidad
Ppios basicos de usabilidadPpios basicos de usabilidad
Ppios basicos de usabilidad
Andres 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 Usabilidad
guest669440
 
Diseño interfaz de usuario
Diseño interfaz de  usuarioDiseño interfaz de  usuario
Diseño interfaz de usuario
Bayardo Medina
 
Diseno de la Interfaz de Usuario
Diseno de la Interfaz de UsuarioDiseno de la Interfaz de Usuario
Diseno de la Interfaz de UsuarioUTPL
 

La actualidad más candente (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
 

Destacado (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
 

Similar a Clase 05a calidad verificacion validacion

Calidad de Software
Calidad de SoftwareCalidad de Software
Calidad de Software
Cristian Aroca Espinosa
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinopticoAdri Campos
 
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 SoftwareSergio Sanchez
 
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
instituto tecnologico de colima
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
SebastianSeronGuerre
 
Modelos de de calidad software indicom
Modelos de de calidad software indicomModelos de de calidad software indicom
Modelos de de calidad software indicomKozmo Hernan
 
Guia numero 1
Guia numero 1Guia numero 1
Guia numero 1
ITCA
 
BoLeTiN N° 2
BoLeTiN N° 2BoLeTiN N° 2
BoLeTiN N° 2
CHRISNEGKTA
 
Sumi
SumiSumi

Similar a 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
 
Sumi
SumiSumi
Sumi
 

Último

herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 

Último (20)

herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 

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