SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Testing 3D
                                       Testing Day
                                      26.may.2011




TATA Consultancy Services




 Irene Pazos Viana
 IEEE Uruguay Section Officer
 ipazos@ieee.org          member
testing 3D


   •    software testing
   •    verificación, validación
   •    inferencia, síntesis
   •    ...
   •    f: PROC x SPEC → {V, F}

   (u name it …   de que hablamos realmente??)

ipazos@ieee.org                                  26-may-11   2
testing 3D
                                    hablamos de todo esto?
                     resultados
 pro                                                  an




                                                                             rsos
        ye                              est
                                              rat
                                                        om
          cto                                                al




                                                                         recu
                                                 e   gias         ia


                            A
                                                                     s

       AN ES             UR     fases
                                           ciones
                       RT
 PL                    ciclos
                                  e iter
                                         a
                                                       ce
                                                    an
                      BE


      casos          im
pru                     ple      metodología
                                                 rm
                    CO




    eba                     m
                              en              fo
        s f procesos taci
            unc                  on      p er
                 i
           aci ón o n a
aut omati
          z             les        documentación (ieee 829)
  ipazos@ieee.org                                                               26-may-11   3
testing 3D
                                                                   foco

      en el inicio fue el   proyecto …todas las cosas fueron hechas
      por medio de Él, y sin El nada de lo que ha sido hecho, fue hecho…




      bajo cualquier metodología y SDLC, testing es
      igualmente un proyecto con mismas características
      que el proyecto al que sirve (y otra ejecución “fractal”)

ipazos@ieee.org                                                            26-may-11   4
testing 3D
                      proyectos: metodologías, ciclos vida

   “no silver bullet”

   •    los modelos de calidad, metodologías y ciclos
        de vida, se eligen para servir mejor a los
        proyectos de una organización.




   In folklore, the silver bullet is supposed to be the only kind of
      bullet for firearms that is effective against a Werewolf, witch,
        or some monsters – wikipedia (since Lone Ranger is out of duty).


ipazos@ieee.org                                                            26-may-11   5
testing 3D
                                                                     proyectos

   testing: metodologías, ciclos vida


   •    Testing is the process of executing a program
        with the intent of finding errors
                                      The Art of Software Testing, Myers, Nov.2011 3rd edition




                  (mhhh…tal vez sea una definición demasiado enfocada)



ipazos@ieee.org                                                                         26-may-11   6
testing 3D                                      totalmente
                                                 recusiva !?
  Merriam-Webster Dictionary

                                       test: definición
   transitive verb

   •    1: to put to test or proof : try
   intransitive verb

   •    1a : to undergo a test b : to be assigned a
        standing or evaluation on the basis of tests
   •    2: to apply a test as a means of analysis or
        diagnosis



ipazos@ieee.org                                        26-may-11   7
el que esté libre de recursión,
                               que arroje la primera definición
  testing 3D
      IEEE Std 610.12-1990, IEEE Std. Glossary
          of Software Engineering Terminology

   test: (A) A set of one or more test cases, or
   (B) A set of one or more test procedures, or (C)
   A set of one or more test cases and procedures.

   test case: A set of input values, execution
     preconditions, expected results and execution
     postconditions, developed for a particular
     objective or test condition, such as to exercise
     a particular program path or to verify
     compliance with a specific requirement.

ipazos@ieee.org                                                   26-may-11   8
testing 3D
                  Diccionario de la lengua Española
                                 Vigésima segunda edición

   prueba                        REAL ACADEMIA.


   •    2. f. Razón, argumento, instrumento u otro
        medio con que se pretende mostrar y hacer
        patente la verdad o falsedad de algo.
   •    4. f. Ensayo o experimento que se hace de
        algo, para saber cómo resultará en su forma
        definitiva.
   •    13. f. Mat. Operación que se ejecuta para
        comprobar que otra ya hecha es correcta.

ipazos@ieee.org                                        26-may-11   9
testing 3D
                           silver bullet service pack+


   1.     ENSAYO

   2.     DEMOSTRACIÓN (de teoremas)




   gracias Real Academia por las definiciones recibidas


ipazos@ieee.org                                           26-may-11   10
testing 3D
                               otras dimensiones para pruebas


   test: P x E → C x { R }
        P         procedimiento
        E         especificación
        C         métrica de cumplimiento
        R         resultados

          test: aplicación de un procedimiento a una especificación para obtener una
                métrica de cumplimiento y un conjunto de resultados



                               ( procedimiento ? )

ipazos@ieee.org                                                                    26-may-11   11
testing 3D

   con el permiso de los autores, se presentan (“bilingüemente”) conceptos
   relevantes tomados del material de los cursos:


   C2 "Análisis Automático de Programas: de la Teoría a la Práctica"
       Dr. Diego Garbervetsky y Lic. Guido de Caso
          Universidad de Buenos Aires, Argentina
   C3 "Model Checking Continuous-Time Markov Models: From Theory to Practice"
       Dr. Joost-Pieter Katoen
          RWTH Aachen University, Alemania
   C5 "Automated Test Generation and Repair"
       Dr. Darko Marinov
          University of Illinois at Urbana-Champaign, Estados Unidos

                   Escuela de Verano de Ciencias Informáticas RÍO 2011
                  Universidad Nacional de Río Cuarto, Córdoba, Argentina.



ipazos@ieee.org                                                              26-may-11   12
testing 3D
                                procedimiento
                      otras dimensiones de pruebas
                      (aun en el ámbito del ensayo)

   •      ensayo (dinámico)
   •      análisis (estático) de
          programas
   •      model checking



ipazos@ieee.org                                  26-may-11   13
testing 3D
                                   proyectos …

   cuando hace falta extender
     dimensión de pruebas ?
                         (gracias Joost-Pieter Katoen)




          Que tal si el proyecto que
          recibimos para probar
          fuera algo como …

ipazos@ieee.org                                          26-may-11   14
testing 3D
                                                        proyectos

   Probar que no existe algo como el programa
      “scavenge” que permitía abusar de los
      tiempos de salto de satélite y los tiempos de
      las señales, accediendo en forma gratuita a
      servicios telefónicos pagos.




   En las películas de cárceles siempre hay un reo que llama(ba) marcando
        con la horquilla (antes que los pulsos reemplazaran los tonos).




ipazos@ieee.org                                                       26-may-11   15
testing 3D
                                                         proyectos

   Probar consistencia de criterios de facturación
      entre todos los actores y motores que
      participan del sistema de facturación de
      telefonía celular.


   (ej: sistemas que cobran al cliente a fracción de
      min., según el plan contratado -20seg-, y
      pagan a carriers asociados a fracción de
      tiempo negociada -1 min-)

   ANTEL tiene un contrato de revisión del sistema de facturación.

ipazos@ieee.org                                                      26-may-11   16
testing 3D
                                                        proyectos

   Probar que mi broadcast en internet (radio, tv),
      no retransmite paquetes haciendo overlap
      sobre el mismo receptor.




   Evitando que el periodista de la radio ESPECTADOR hable encima de si
        mismo cuando hay paquetes demorados (se le pisoteó el buffer??).




ipazos@ieee.org                                                       26-may-11   17
testing 3D
                                                proyectos

   u otros casos bien conocidos:
   (después que fallaron, claro … )


   •      probar que no hay el error en la unidad de división
          de punto flotante en procesadores Intel Pentium II.
   •      probar que no hay un defecto de software en el
          sistema de control de la máquina de terapia
          Therac25, que produjo la muerte de 6 pacientes de
          cáncer por sobre-exposición radioactiva.



ipazos@ieee.org                                             26-may-11   18
testing 3D
                                                          proyectos

   no es trivial


          probar que NO hay error en un sistema
          -cuando esto es posible-, eventualmente
          cuesta hoy MAS (tiempo, esfuerzo) que
          desarrollar el propio sistema.



                  (buen dato para quienes de dedican a pruebas …)




ipazos@ieee.org                                                     26-may-11   19
testing 3D
                                                            proyectos

   pero…


          un solo día de falla en el sistema de
          reservas de una compaña aérea
          importante puede provocar su
          bancarrota



          de costos en vidas humanas mejor ni hablamos, pero podemos
          calcular cuanto cuesta una falla, un sistema, y cuanto vale una
          compañía.

ipazos@ieee.org                                                             26-may-11   20
testing 3D                     Challenger
                                   disaster
                                 Jan. 1986




   además…
                                                                           Ariane 5 crash (1996)         Columbia
                            error in the software design (inadequate protection from integer overflow)     disaster
                                                                                                         Feb. 2003


         software bugs cost US economy
         $60B/year [NIST’02] (*)

         Estimated savings from better testing
         $22B/year        (*)


         (*) Darko Marinov: Automated Test Generation and Repair


ipazos@ieee.org                                                                                          26-may-11    21
testing 3D
                               pruebas




          ok, hace falta considerar
          múltiples dimensiones de
          pruebas.




ipazos@ieee.org                       26-may-11   22
testing 3D
                  aproximaciones para pruebas



   •      ensayo (dinámico)
   •      análisis (estático) de
          programas
   •      model checking



ipazos@ieee.org                            26-may-11   23
aproximaciones
                                          ensayo de software

   dinámico
   •    run code for some inputs, check outputs
   •    checks correctness for some executions

   problemas
   •    generación datos de entrada
   •    adecuación de suites de prueba
        precedencia, cobertura..

   •    “test oracles”
        mecanismos para determinar si prueba pasa o falla




ipazos@ieee.org                                             26-may-11   24
aproximaciones
                                            análisis de programas

   estático
   •    verifica la correctitud de TODA ejecución
        posible del programa
   algunas técnicas
   •    análisis de dataflow
        abstracción divisiones por cero: σ : var → {indef, Z, NZ, QZ }
   •    generación de condiciones de verificación
        con anotaciones como tipos o contratos

   problemas
   • corrección          vs. completitud:
                  falsos positivos & negativos

ipazos@ieee.org                                                          26-may-11   25
aproximaciones
                                    model checking

   combina estático & dinámico
   •    verifica correctitud de TODA ejecución


   •    analiza automáticamente cumplimiento de
        determinadas propiedades sobre un modelo
        formal de un sistema (un grafo dirigido, con
        estados etiquetados para las propiedades).
  Discrete-time Markov chain




ipazos@ieee.org                                        26-may-11   26
aproximaciones
   todo muy lindo .. pero …                limitaciones

                                            (yet .. no silver bullet)


        análisis dinámico
        NO: ensayo exhaustivo de toda posible entrada

                                      espacio( input ) continuo
                                        → infinitas pruebas
        análisis estático
         NO: modelo preciso de cada estado posible

                                 espacio( abstracción )
                                      == sistema




ipazos@ieee.org                                                   26-may-11   27
aproximaciones
                       soundness & completeness

   •    encontramos todas las anomalías?
            análisis dinámico imposible
            análisis estático seguramente

   •    anomalías reportadas son reales?
           análisis dinámico seguramente
           análisis estático imposible

        “Most practical techniques and tools are both
                  unsound and incomplete!”
            (false positives, false negatives)

ipazos@ieee.org                                     26-may-11   28
aproximaciones
                                      comparación

   •    nivel automatización
           apretar un botón vs. manual
   •    tipo de anomalías encontrados
            complicadas de reproducir vs. fácil
            baja probabilidad vs. alta
            propiedades comunes vs. específicas
   •    tipo de problemas (no) encontrados




ipazos@ieee.org                                   26-may-11   29
aproximaciones
                                     estado actual

   •    ensayo -dinámico- se mantiene como
        aproximación más ampliamente usada para
        encontrar problemas

   •    en la última década hay grandes progresos en
        análisis estático (de “sound” a práctico) y
        model checking (de hardware a software)

   •    “Vibrant research in the area”, “Gap between
        research and practice”.

ipazos@ieee.org                                    26-may-11   30
aproximaciones
                          “how-to” – bug dealing

   •    eliminar
         - debug, test

   •    prevenir
         - procesos de desarrollo software
         - diseño de lenguajes de programación

   •    demostrar ausencia
         - prueba de teoremas
         - model checking, análisis de programas



ipazos@ieee.org                                    26-may-11   31
testing 3D
                              (snapshot)



   •      ensayo (dinámico)
   •      análisis (estático) de
          programas
   •      model checking



ipazos@ieee.org                       26-may-11   32
testing
  Darko Marinov
                                           ensayo

   research: automate testing

        no hablamos de una persona que enseña a
        una máquina a reemplazar el trabajo manual
        de otra persona que hace pruebas

        es una persona que crea una máquina que
        crea artefactos de pruebas.




ipazos@ieee.org                                   26-may-11   33
testing
  Darko Marinov
                                           ensayo

   máquinas

   •    Randoop: random generation of OO tests
   •    Pex: dynamic symbolic generation of inputs
   •    UDITA: generation of complex data inputs
   •    ReAssert: repair of OO unit tests
   •    JPF: systematic testing of Java code




ipazos@ieee.org                                  26-may-11   34
testing
  Darko Marinov
  Feedback-directed random test generation       Randoop
                                                    •by Carlos Pacheco,
                                             Shuvendu K. Lahiri, Michael
                                              D. Ernst, and Thomas Ball
   generar test unitarios                                   (ICSE 2007)




   •    genera secuencias de invocaciones a métodos
   •    elección aleatoria de métodos y parámetros
   •    implementación java liberada (público)




ipazos@ieee.org                                                    26-may-11   35
testing
  Darko Marinov
  Pex – White Box Test Generation for .NET                                                                                   PEX
                                                                                                   •by Nikolai Tillmann and
                                                                                                       Jonathan de Halleux

   generar test unitarios                                                                                       (TAP 2008)




   •    describe test scenarios with parameterized
        unit tests (PUTs)
   •    dynamic symbolic execution
   •    implementación .NET
                                                                                               Choose next path
                                             Code to generate inputs for:                  Solve           Execute&Monitor
                                             void CoverMe(int[] a)
                                                                            Constraints to solve   Data      Observed constraints
                                             {
                                               if (a == null) return;                              null      a==null
                                               if (a.Length > 0)                                             a!=null &&
                                                                            a!=null                {}        !(a.Length>0)
                                                 if (a[0] ==
                                                                                                             a!=null &&
                                             1234567890)
                                                   throw new
                                                                            a!=null &&     Negated condition
                                                                                              {0}            a.Length>0 &&
                                                                            a.Length>0                       a[0]!=123456789
                                             Exception("bug");                                                  0
                                             }              a==nul          a!=null &&             {123
                                                        F     l     T       a.Length>0 &&             …}     a!=null &&
                                                                            a[0]==12345678                   a.Length>0 &&
                                                   a.Length>                   90                            a[0]==123456789
                                               F       0         T                                              0
                                                                                                    Done: There is no path left.
                                                               a[0]==123…
                                                          F                 T




ipazos@ieee.org                                                                                                                     26-may-11   36
s2

                                                                        red-black tree s1             s4       s5
  testing                                                                     1                s3    web sites
                                                                         0            3
  Darko Marinov
                                                                                  2
  Test Generation through Programming in UDITA                                               UDITA
                                                                              •by Milos Gligoric, Tihomir Gvero,
                                                                             Vilas Jagannath, Sarfraz Khurshid,
                                                                             Viktor Kuncak, and Darko Marinov
   generate complex test inputs                                                                     (ICSE 2010)

   • combines filtering approach (check validity)
     and generating approaches (valid by
     construction)
   • java-based language with non-determinism
   • tool for Java
                           inputs                  outputs
                                1                           2
                            0           3           0               3
                                    2
                                                                                             pass
                 test                                                           test
                                            code
              generation                                                       oracle
                            0
                                2
                                        3               0
                                                                3                             fail



ipazos@ieee.org                                                                                            26-may-11   37
testing
  Darko Marinov
  ReAssert: Suggesting repairs for broken unit tests            ReAssert
                                                       •by Brett Daniel, Vilas Jagannath,
                                                          Danny Dig, and Darko Marinov
                                                                              (ASE 2009)
   automate repair tests for software
     evolutioned versions

   •    find small changes that make tests pass
   •    ask the user to confirm proposed changes
   •    tool for Java/Eclipse




ipazos@ieee.org                                                                     26-may-11   38
testing
  Darko Marinov
  Model Checking Programs                                                    JPF
                             •by W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda
                                                     (J-ASE, vol. 10, no. 2, April 2003)

   Java Path Finder : Model checking of real code

   •    specialized Java Virtual Machine
   •    supports backtracking, state comparison
   •    many optimizations to make it scale
   •    publicly available tool (Java PathFinder)




ipazos@ieee.org                                                                    26-may-11   39
testing 3D



   •      ensayo (dinámico)
   •      análisis (estático) de
          programas
   •      model checking



ipazos@ieee.org                    26-may-11   40
análisis de programas
  Diego Garbervetsky, Guido de Caso
                                        análisis estático

   •    analiza código sin ejecutarlo
   •    es la examinación sistemática de una
        abstracción del espacio de estados del
        programa.
        sistemática - examina en forma exhaustiva todos
        los caminos dentro de cada función ( loops!? )

        abstracción - sólo mantenemos información relevante
        a la propiedad a inferir: signo de las variables (+,-),
        referenciamiento, ..

ipazos@ieee.org                                            26-may-11   41
análisis de programas
  Diego Garbervetsky, Guido de Caso
                                      técnicas más conocidas




ipazos@ieee.org                                           26-may-11   42
análisis de programas
  Diego Garbervetsky, Guido de Caso

                    Static Analysis can reduce defects
                               by up to a factor of six!
                                      Capers Jones, Software Productivity Group

   efecto en la industria:
     MICROSOFT
   •    Todo desarrollo interno pasa por analizadores automáticos
   •    Visual Studio + Code Contracts:
            Análisis estático + Generación de Test
   •    Kit de aceptación de drivers que se entrega a los fabricantes




ipazos@ieee.org                                                           26-may-11   43
análisis de programas
  Diego Garbervetsky, Guido de Caso
                                      en la industria


   •    Java FindBugs: más de 1,5 millón downloads
         - usado en Google, Sun, Ebay, …
         - encuentra errores “mecánicos”o patrones de
           errores
   •    En Google descubrieron automáticamente
         - > 4000 problemas de código en producción
         - más de 80 ciclos infinitos


   http://findbugs.sourceforge.net/

ipazos@ieee.org                                    26-may-11   44
testing 3D



   •      ensayo (dinámico)
   •      análisis (estático) de
          programas
   •      model checking



ipazos@ieee.org                    26-may-11   45
model checking
                                                                    Carnegie Mellon

   •    method for formally verifying finite-state
        concurrent systems. Specifications about the
        system are expressed as temporal logic
        formulas, and efficient symbolic algorithms are
        used to traverse the model defined by the
        system and check if the specification holds or
        not.
        Extremely large state-spaces can often be traversed in minutes. The
        technique has been applied to several complex industrial systems
        such as the Futurebus+ and the PCI local bus protocols

             Model Checking Group, Specification and Verification Center. Carnegie Mellon.www.cmu.edu




ipazos@ieee.org                                                                                         26-may-11   46
model checking
  Joost-Pieter Katoen
                                          utilidad

   cuantificación
   • colas, tiempos de espera, QoS, MTBF,…
   • impresiciones en inputs, retrasos, deadlines


   ejemplos
   • IEEE 1394 (Firewire): “biased delay” óptimo
   • análisis protocolos de seguridad
   • sistemas biológicos: Enzyme-catalysed substrate
        conversion
   •    software de satélites

ipazos@ieee.org                                     26-may-11   47
model checking
  Joost-Pieter Katoen
                        contexto




ipazos@ieee.org               26-may-11   48
model checking
  Joost-Pieter Katoen
                                        alcance en modelado
                        sólo una vista totalmente “brutal”
   •    Quantitative and Qualitative Reachability,
        Probabilistic Computation Tree Logic (PCTL),
        PCTL Counterexamples, Continuous-Time
        Markov Chains (CMTC), Continuous Stochastic
        Logic (CSL)




                                     REACHABILITY PROBABILITIES




ipazos@ieee.org                                                   26-may-11   49
model checking
  Joost-Pieter Katoen
                        propiedades?, modelos?




ipazos@ieee.org                             26-may-11   50
model checking
  Joost-Pieter Katoen
                        estado actual y perspectivas




ipazos@ieee.org                                   26-may-11   51
testing 3D


   • ensayo (dinámico)
   • análisis (estático) de programas
   • model checking



   •      epílogo &
          ultra-epílogo UY

ipazos@ieee.org                    26-may-11   52
testing 3D
                                                        testing


     test: P x E → C x { R }
          P       procedimiento
                                                           test
          E       especificación
          C       métrica de cumplimiento                  gestión
          R       resultados
                                                         gestión
     test: aplicación de un procedimiento a una           proyecto
           especificación para obtener una métrica de
           cumplimiento y un conjunto de resultados

      P = (análisis estático U análisis dinámico U model checking)



ipazos@ieee.org                                                    26-may-11   53
testing 3D
                                                       testing en uruguay

   •    industria: cursos abiertos (2007)

   •    UDELAR/FIng
        INCO Taller de Verificación de Software
        CPAP Inspección de Software

   •    CES – Lanzamiento de Carrera de Testing (2011)
          •   Emprendimiento (InCo) especializado en proveer servicios de testing a empresas.
          •   Apoyo UE, PNUD para proyecto de Desarrollo tecnológico (URY/2003/5906)




ipazos@ieee.org                                                                             26-may-11   54
testing 3D
                                     testing en uruguay

   horizonte …
   • cobertura universitaria para desarrollo de
     la industria          software bugs cost US economy $60B/year
                                      Estimated savings from better testing
                                                  $22B/year


   •    monitor de calidad, compilando
        resultados de industria

   •    recursos para I+D (apoyados por
        monitoreo ..)
                                      Randoop, Pex, UDITA,
                                         ReAsert, JPF



ipazos@ieee.org                                                               26-may-11   55
testing 3D




Testing Day
TATA Consultancy Services
Mayo, 2011.
Knowledge Development Center (KDC) del LATU
Av. Italia 6201, Montevideo.
ipazos@ieee.org   26-may-11   57

Más contenido relacionado

Similar a ieee-uy-2011-05-TCS-ipazos-tesing_3D

Pruebas del sistema (13.6) libro de pressman
Pruebas del sistema (13.6)  libro de pressmanPruebas del sistema (13.6)  libro de pressman
Pruebas del sistema (13.6) libro de pressmanJessica Cuenca
 
Pruebas+en+metologias+agiles(3)
Pruebas+en+metologias+agiles(3)Pruebas+en+metologias+agiles(3)
Pruebas+en+metologias+agiles(3)Pablo Medina
 
"Diseño estadístico de Experimentos: de las Ideas a las Evidencias" (Lourdes...
"Diseño estadístico de Experimentos: de las Ideas a  las Evidencias" (Lourdes..."Diseño estadístico de Experimentos: de las Ideas a  las Evidencias" (Lourdes...
"Diseño estadístico de Experimentos: de las Ideas a las Evidencias" (Lourdes...Lourdes Pozueta Fernández
 
Syllabus algoritmos y_est_datos_i_2010_i
Syllabus algoritmos y_est_datos_i_2010_iSyllabus algoritmos y_est_datos_i_2010_i
Syllabus algoritmos y_est_datos_i_2010_isupito01
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonosLic_Tomas Maestria
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonosLic_Tomas Maestria
 
Plan anual didactico
Plan anual didacticoPlan anual didactico
Plan anual didacticoPaul Paucar
 
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...Luis Alan Navarro
 
Diseno de experimentos
Diseno de experimentosDiseno de experimentos
Diseno de experimentosYORHANK
 

Similar a ieee-uy-2011-05-TCS-ipazos-tesing_3D (20)

Sesión 1.pdf
Sesión 1.pdfSesión 1.pdf
Sesión 1.pdf
 
aplicacion_de_la_investigacion_de_operaciones
aplicacion_de_la_investigacion_de_operacionesaplicacion_de_la_investigacion_de_operaciones
aplicacion_de_la_investigacion_de_operaciones
 
02 0210 am
02 0210 am02 0210 am
02 0210 am
 
Pruebas del sistema (13.6) libro de pressman
Pruebas del sistema (13.6)  libro de pressmanPruebas del sistema (13.6)  libro de pressman
Pruebas del sistema (13.6) libro de pressman
 
Tecnicas de Pruebas
 Tecnicas de Pruebas  Tecnicas de Pruebas
Tecnicas de Pruebas
 
Tecnicas invest social
Tecnicas invest socialTecnicas invest social
Tecnicas invest social
 
Informe final
Informe finalInforme final
Informe final
 
Pruebas - Fundamentos
Pruebas - FundamentosPruebas - Fundamentos
Pruebas - Fundamentos
 
Pruebas fundamentos
Pruebas fundamentosPruebas fundamentos
Pruebas fundamentos
 
Pruebas+en+metologias+agiles(3)
Pruebas+en+metologias+agiles(3)Pruebas+en+metologias+agiles(3)
Pruebas+en+metologias+agiles(3)
 
"Diseño estadístico de Experimentos: de las Ideas a las Evidencias" (Lourdes...
"Diseño estadístico de Experimentos: de las Ideas a  las Evidencias" (Lourdes..."Diseño estadístico de Experimentos: de las Ideas a  las Evidencias" (Lourdes...
"Diseño estadístico de Experimentos: de las Ideas a las Evidencias" (Lourdes...
 
Transparencias atica2012
Transparencias atica2012Transparencias atica2012
Transparencias atica2012
 
Fase1
Fase1Fase1
Fase1
 
Fase1
Fase1Fase1
Fase1
 
Syllabus algoritmos y_est_datos_i_2010_i
Syllabus algoritmos y_est_datos_i_2010_iSyllabus algoritmos y_est_datos_i_2010_i
Syllabus algoritmos y_est_datos_i_2010_i
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonos
 
Estructuras de datos_hexagonos
Estructuras de datos_hexagonosEstructuras de datos_hexagonos
Estructuras de datos_hexagonos
 
Plan anual didactico
Plan anual didacticoPlan anual didactico
Plan anual didactico
 
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...
¿Por qué usar R y no otro? Perspectiva desde la opinión de un usuario asiduo ...
 
Diseno de experimentos
Diseno de experimentosDiseno de experimentos
Diseno de experimentos
 

Último

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 

Último (20)

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 

ieee-uy-2011-05-TCS-ipazos-tesing_3D

  • 1. Testing 3D Testing Day 26.may.2011 TATA Consultancy Services Irene Pazos Viana IEEE Uruguay Section Officer ipazos@ieee.org member
  • 2. testing 3D • software testing • verificación, validación • inferencia, síntesis • ... • f: PROC x SPEC → {V, F} (u name it … de que hablamos realmente??) ipazos@ieee.org 26-may-11 2
  • 3. testing 3D hablamos de todo esto? resultados pro an rsos ye est rat om cto al recu e gias ia A s AN ES UR fases ciones RT PL ciclos e iter a ce an BE casos im pru ple metodología rm CO eba m en fo s f procesos taci unc on p er i aci ón o n a aut omati z les documentación (ieee 829) ipazos@ieee.org 26-may-11 3
  • 4. testing 3D foco en el inicio fue el proyecto …todas las cosas fueron hechas por medio de Él, y sin El nada de lo que ha sido hecho, fue hecho… bajo cualquier metodología y SDLC, testing es igualmente un proyecto con mismas características que el proyecto al que sirve (y otra ejecución “fractal”) ipazos@ieee.org 26-may-11 4
  • 5. testing 3D proyectos: metodologías, ciclos vida “no silver bullet” • los modelos de calidad, metodologías y ciclos de vida, se eligen para servir mejor a los proyectos de una organización. In folklore, the silver bullet is supposed to be the only kind of bullet for firearms that is effective against a Werewolf, witch, or some monsters – wikipedia (since Lone Ranger is out of duty). ipazos@ieee.org 26-may-11 5
  • 6. testing 3D proyectos testing: metodologías, ciclos vida • Testing is the process of executing a program with the intent of finding errors The Art of Software Testing, Myers, Nov.2011 3rd edition (mhhh…tal vez sea una definición demasiado enfocada) ipazos@ieee.org 26-may-11 6
  • 7. testing 3D totalmente recusiva !? Merriam-Webster Dictionary test: definición transitive verb • 1: to put to test or proof : try intransitive verb • 1a : to undergo a test b : to be assigned a standing or evaluation on the basis of tests • 2: to apply a test as a means of analysis or diagnosis ipazos@ieee.org 26-may-11 7
  • 8. el que esté libre de recursión, que arroje la primera definición testing 3D IEEE Std 610.12-1990, IEEE Std. Glossary of Software Engineering Terminology test: (A) A set of one or more test cases, or (B) A set of one or more test procedures, or (C) A set of one or more test cases and procedures. test case: A set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement. ipazos@ieee.org 26-may-11 8
  • 9. testing 3D Diccionario de la lengua Española Vigésima segunda edición prueba REAL ACADEMIA. • 2. f. Razón, argumento, instrumento u otro medio con que se pretende mostrar y hacer patente la verdad o falsedad de algo. • 4. f. Ensayo o experimento que se hace de algo, para saber cómo resultará en su forma definitiva. • 13. f. Mat. Operación que se ejecuta para comprobar que otra ya hecha es correcta. ipazos@ieee.org 26-may-11 9
  • 10. testing 3D silver bullet service pack+ 1. ENSAYO 2. DEMOSTRACIÓN (de teoremas) gracias Real Academia por las definiciones recibidas ipazos@ieee.org 26-may-11 10
  • 11. testing 3D otras dimensiones para pruebas test: P x E → C x { R } P procedimiento E especificación C métrica de cumplimiento R resultados test: aplicación de un procedimiento a una especificación para obtener una métrica de cumplimiento y un conjunto de resultados ( procedimiento ? ) ipazos@ieee.org 26-may-11 11
  • 12. testing 3D con el permiso de los autores, se presentan (“bilingüemente”) conceptos relevantes tomados del material de los cursos: C2 "Análisis Automático de Programas: de la Teoría a la Práctica" Dr. Diego Garbervetsky y Lic. Guido de Caso Universidad de Buenos Aires, Argentina C3 "Model Checking Continuous-Time Markov Models: From Theory to Practice" Dr. Joost-Pieter Katoen RWTH Aachen University, Alemania C5 "Automated Test Generation and Repair" Dr. Darko Marinov University of Illinois at Urbana-Champaign, Estados Unidos Escuela de Verano de Ciencias Informáticas RÍO 2011 Universidad Nacional de Río Cuarto, Córdoba, Argentina. ipazos@ieee.org 26-may-11 12
  • 13. testing 3D procedimiento otras dimensiones de pruebas (aun en el ámbito del ensayo) • ensayo (dinámico) • análisis (estático) de programas • model checking ipazos@ieee.org 26-may-11 13
  • 14. testing 3D proyectos … cuando hace falta extender dimensión de pruebas ? (gracias Joost-Pieter Katoen) Que tal si el proyecto que recibimos para probar fuera algo como … ipazos@ieee.org 26-may-11 14
  • 15. testing 3D proyectos Probar que no existe algo como el programa “scavenge” que permitía abusar de los tiempos de salto de satélite y los tiempos de las señales, accediendo en forma gratuita a servicios telefónicos pagos. En las películas de cárceles siempre hay un reo que llama(ba) marcando con la horquilla (antes que los pulsos reemplazaran los tonos). ipazos@ieee.org 26-may-11 15
  • 16. testing 3D proyectos Probar consistencia de criterios de facturación entre todos los actores y motores que participan del sistema de facturación de telefonía celular. (ej: sistemas que cobran al cliente a fracción de min., según el plan contratado -20seg-, y pagan a carriers asociados a fracción de tiempo negociada -1 min-) ANTEL tiene un contrato de revisión del sistema de facturación. ipazos@ieee.org 26-may-11 16
  • 17. testing 3D proyectos Probar que mi broadcast en internet (radio, tv), no retransmite paquetes haciendo overlap sobre el mismo receptor. Evitando que el periodista de la radio ESPECTADOR hable encima de si mismo cuando hay paquetes demorados (se le pisoteó el buffer??). ipazos@ieee.org 26-may-11 17
  • 18. testing 3D proyectos u otros casos bien conocidos: (después que fallaron, claro … ) • probar que no hay el error en la unidad de división de punto flotante en procesadores Intel Pentium II. • probar que no hay un defecto de software en el sistema de control de la máquina de terapia Therac25, que produjo la muerte de 6 pacientes de cáncer por sobre-exposición radioactiva. ipazos@ieee.org 26-may-11 18
  • 19. testing 3D proyectos no es trivial probar que NO hay error en un sistema -cuando esto es posible-, eventualmente cuesta hoy MAS (tiempo, esfuerzo) que desarrollar el propio sistema. (buen dato para quienes de dedican a pruebas …) ipazos@ieee.org 26-may-11 19
  • 20. testing 3D proyectos pero… un solo día de falla en el sistema de reservas de una compaña aérea importante puede provocar su bancarrota de costos en vidas humanas mejor ni hablamos, pero podemos calcular cuanto cuesta una falla, un sistema, y cuanto vale una compañía. ipazos@ieee.org 26-may-11 20
  • 21. testing 3D Challenger disaster Jan. 1986 además… Ariane 5 crash (1996) Columbia error in the software design (inadequate protection from integer overflow) disaster Feb. 2003 software bugs cost US economy $60B/year [NIST’02] (*) Estimated savings from better testing $22B/year (*) (*) Darko Marinov: Automated Test Generation and Repair ipazos@ieee.org 26-may-11 21
  • 22. testing 3D pruebas ok, hace falta considerar múltiples dimensiones de pruebas. ipazos@ieee.org 26-may-11 22
  • 23. testing 3D aproximaciones para pruebas • ensayo (dinámico) • análisis (estático) de programas • model checking ipazos@ieee.org 26-may-11 23
  • 24. aproximaciones ensayo de software dinámico • run code for some inputs, check outputs • checks correctness for some executions problemas • generación datos de entrada • adecuación de suites de prueba precedencia, cobertura.. • “test oracles” mecanismos para determinar si prueba pasa o falla ipazos@ieee.org 26-may-11 24
  • 25. aproximaciones análisis de programas estático • verifica la correctitud de TODA ejecución posible del programa algunas técnicas • análisis de dataflow abstracción divisiones por cero: σ : var → {indef, Z, NZ, QZ } • generación de condiciones de verificación con anotaciones como tipos o contratos problemas • corrección vs. completitud: falsos positivos & negativos ipazos@ieee.org 26-may-11 25
  • 26. aproximaciones model checking combina estático & dinámico • verifica correctitud de TODA ejecución • analiza automáticamente cumplimiento de determinadas propiedades sobre un modelo formal de un sistema (un grafo dirigido, con estados etiquetados para las propiedades). Discrete-time Markov chain ipazos@ieee.org 26-may-11 26
  • 27. aproximaciones todo muy lindo .. pero … limitaciones (yet .. no silver bullet) análisis dinámico NO: ensayo exhaustivo de toda posible entrada espacio( input ) continuo → infinitas pruebas análisis estático NO: modelo preciso de cada estado posible espacio( abstracción ) == sistema ipazos@ieee.org 26-may-11 27
  • 28. aproximaciones soundness & completeness • encontramos todas las anomalías? análisis dinámico imposible análisis estático seguramente • anomalías reportadas son reales? análisis dinámico seguramente análisis estático imposible “Most practical techniques and tools are both unsound and incomplete!” (false positives, false negatives) ipazos@ieee.org 26-may-11 28
  • 29. aproximaciones comparación • nivel automatización apretar un botón vs. manual • tipo de anomalías encontrados complicadas de reproducir vs. fácil baja probabilidad vs. alta propiedades comunes vs. específicas • tipo de problemas (no) encontrados ipazos@ieee.org 26-may-11 29
  • 30. aproximaciones estado actual • ensayo -dinámico- se mantiene como aproximación más ampliamente usada para encontrar problemas • en la última década hay grandes progresos en análisis estático (de “sound” a práctico) y model checking (de hardware a software) • “Vibrant research in the area”, “Gap between research and practice”. ipazos@ieee.org 26-may-11 30
  • 31. aproximaciones “how-to” – bug dealing • eliminar - debug, test • prevenir - procesos de desarrollo software - diseño de lenguajes de programación • demostrar ausencia - prueba de teoremas - model checking, análisis de programas ipazos@ieee.org 26-may-11 31
  • 32. testing 3D (snapshot) • ensayo (dinámico) • análisis (estático) de programas • model checking ipazos@ieee.org 26-may-11 32
  • 33. testing Darko Marinov ensayo research: automate testing no hablamos de una persona que enseña a una máquina a reemplazar el trabajo manual de otra persona que hace pruebas es una persona que crea una máquina que crea artefactos de pruebas. ipazos@ieee.org 26-may-11 33
  • 34. testing Darko Marinov ensayo máquinas • Randoop: random generation of OO tests • Pex: dynamic symbolic generation of inputs • UDITA: generation of complex data inputs • ReAssert: repair of OO unit tests • JPF: systematic testing of Java code ipazos@ieee.org 26-may-11 34
  • 35. testing Darko Marinov Feedback-directed random test generation Randoop •by Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball generar test unitarios (ICSE 2007) • genera secuencias de invocaciones a métodos • elección aleatoria de métodos y parámetros • implementación java liberada (público) ipazos@ieee.org 26-may-11 35
  • 36. testing Darko Marinov Pex – White Box Test Generation for .NET PEX •by Nikolai Tillmann and Jonathan de Halleux generar test unitarios (TAP 2008) • describe test scenarios with parameterized unit tests (PUTs) • dynamic symbolic execution • implementación .NET Choose next path Code to generate inputs for: Solve Execute&Monitor void CoverMe(int[] a) Constraints to solve Data Observed constraints { if (a == null) return; null a==null if (a.Length > 0) a!=null && a!=null {} !(a.Length>0) if (a[0] == a!=null && 1234567890) throw new a!=null && Negated condition {0} a.Length>0 && a.Length>0 a[0]!=123456789 Exception("bug"); 0 } a==nul a!=null && {123 F l T a.Length>0 && …} a!=null && a[0]==12345678 a.Length>0 && a.Length> 90 a[0]==123456789 F 0 T 0 Done: There is no path left. a[0]==123… F T ipazos@ieee.org 26-may-11 36
  • 37. s2 red-black tree s1 s4 s5 testing 1 s3 web sites 0 3 Darko Marinov 2 Test Generation through Programming in UDITA UDITA •by Milos Gligoric, Tihomir Gvero, Vilas Jagannath, Sarfraz Khurshid, Viktor Kuncak, and Darko Marinov generate complex test inputs (ICSE 2010) • combines filtering approach (check validity) and generating approaches (valid by construction) • java-based language with non-determinism • tool for Java inputs outputs 1 2 0 3 0 3 2 pass test test code generation oracle 0 2 3 0 3 fail ipazos@ieee.org 26-may-11 37
  • 38. testing Darko Marinov ReAssert: Suggesting repairs for broken unit tests ReAssert •by Brett Daniel, Vilas Jagannath, Danny Dig, and Darko Marinov (ASE 2009) automate repair tests for software evolutioned versions • find small changes that make tests pass • ask the user to confirm proposed changes • tool for Java/Eclipse ipazos@ieee.org 26-may-11 38
  • 39. testing Darko Marinov Model Checking Programs JPF •by W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda (J-ASE, vol. 10, no. 2, April 2003) Java Path Finder : Model checking of real code • specialized Java Virtual Machine • supports backtracking, state comparison • many optimizations to make it scale • publicly available tool (Java PathFinder) ipazos@ieee.org 26-may-11 39
  • 40. testing 3D • ensayo (dinámico) • análisis (estático) de programas • model checking ipazos@ieee.org 26-may-11 40
  • 41. análisis de programas Diego Garbervetsky, Guido de Caso análisis estático • analiza código sin ejecutarlo • es la examinación sistemática de una abstracción del espacio de estados del programa. sistemática - examina en forma exhaustiva todos los caminos dentro de cada función ( loops!? ) abstracción - sólo mantenemos información relevante a la propiedad a inferir: signo de las variables (+,-), referenciamiento, .. ipazos@ieee.org 26-may-11 41
  • 42. análisis de programas Diego Garbervetsky, Guido de Caso técnicas más conocidas ipazos@ieee.org 26-may-11 42
  • 43. análisis de programas Diego Garbervetsky, Guido de Caso Static Analysis can reduce defects by up to a factor of six! Capers Jones, Software Productivity Group efecto en la industria: MICROSOFT • Todo desarrollo interno pasa por analizadores automáticos • Visual Studio + Code Contracts: Análisis estático + Generación de Test • Kit de aceptación de drivers que se entrega a los fabricantes ipazos@ieee.org 26-may-11 43
  • 44. análisis de programas Diego Garbervetsky, Guido de Caso en la industria • Java FindBugs: más de 1,5 millón downloads - usado en Google, Sun, Ebay, … - encuentra errores “mecánicos”o patrones de errores • En Google descubrieron automáticamente - > 4000 problemas de código en producción - más de 80 ciclos infinitos http://findbugs.sourceforge.net/ ipazos@ieee.org 26-may-11 44
  • 45. testing 3D • ensayo (dinámico) • análisis (estático) de programas • model checking ipazos@ieee.org 26-may-11 45
  • 46. model checking Carnegie Mellon • method for formally verifying finite-state concurrent systems. Specifications about the system are expressed as temporal logic formulas, and efficient symbolic algorithms are used to traverse the model defined by the system and check if the specification holds or not. Extremely large state-spaces can often be traversed in minutes. The technique has been applied to several complex industrial systems such as the Futurebus+ and the PCI local bus protocols Model Checking Group, Specification and Verification Center. Carnegie Mellon.www.cmu.edu ipazos@ieee.org 26-may-11 46
  • 47. model checking Joost-Pieter Katoen utilidad cuantificación • colas, tiempos de espera, QoS, MTBF,… • impresiciones en inputs, retrasos, deadlines ejemplos • IEEE 1394 (Firewire): “biased delay” óptimo • análisis protocolos de seguridad • sistemas biológicos: Enzyme-catalysed substrate conversion • software de satélites ipazos@ieee.org 26-may-11 47
  • 48. model checking Joost-Pieter Katoen contexto ipazos@ieee.org 26-may-11 48
  • 49. model checking Joost-Pieter Katoen alcance en modelado sólo una vista totalmente “brutal” • Quantitative and Qualitative Reachability, Probabilistic Computation Tree Logic (PCTL), PCTL Counterexamples, Continuous-Time Markov Chains (CMTC), Continuous Stochastic Logic (CSL) REACHABILITY PROBABILITIES ipazos@ieee.org 26-may-11 49
  • 50. model checking Joost-Pieter Katoen propiedades?, modelos? ipazos@ieee.org 26-may-11 50
  • 51. model checking Joost-Pieter Katoen estado actual y perspectivas ipazos@ieee.org 26-may-11 51
  • 52. testing 3D • ensayo (dinámico) • análisis (estático) de programas • model checking • epílogo & ultra-epílogo UY ipazos@ieee.org 26-may-11 52
  • 53. testing 3D testing test: P x E → C x { R } P procedimiento test E especificación C métrica de cumplimiento gestión R resultados gestión test: aplicación de un procedimiento a una proyecto especificación para obtener una métrica de cumplimiento y un conjunto de resultados P = (análisis estático U análisis dinámico U model checking) ipazos@ieee.org 26-may-11 53
  • 54. testing 3D testing en uruguay • industria: cursos abiertos (2007) • UDELAR/FIng INCO Taller de Verificación de Software CPAP Inspección de Software • CES – Lanzamiento de Carrera de Testing (2011) • Emprendimiento (InCo) especializado en proveer servicios de testing a empresas. • Apoyo UE, PNUD para proyecto de Desarrollo tecnológico (URY/2003/5906) ipazos@ieee.org 26-may-11 54
  • 55. testing 3D testing en uruguay horizonte … • cobertura universitaria para desarrollo de la industria software bugs cost US economy $60B/year Estimated savings from better testing $22B/year • monitor de calidad, compilando resultados de industria • recursos para I+D (apoyados por monitoreo ..) Randoop, Pex, UDITA, ReAsert, JPF ipazos@ieee.org 26-may-11 55
  • 56. testing 3D Testing Day TATA Consultancy Services Mayo, 2011. Knowledge Development Center (KDC) del LATU Av. Italia 6201, Montevideo.
  • 57. ipazos@ieee.org 26-may-11 57