SlideShare una empresa de Scribd logo
1 de 28
HDD
Hierarchical Delta Debugging




                      Alumno:
                      Jorge Soro Doménech

                      Máster:
                      ISMFSI (UPV)

                      Asignatura:
                      Técnicas Avanzadas de Depuración
                                                         1
INDICE
1.   MOTIVACIÓN
2.   INTRODUCCIÓN
3.   ALGORITHM HIERARCHICAL DELTA
     DEBUGGING
4.   EJEMPLO CON HDD
5.   TRABAJOS RELACIONADOS
6.   FUTUROS TRABAJOS
7.   CONCLUSIÓN
8.   BIBLIOGRAFÍA

                                    2
1.MOTIVACIÓN




               3
1. MOTIVACIÓN
 Hierarchical Delta Debugging (HDD) esta
  basado principalmente en el algoritmo Delta
  Debugging (DD) que en rasgos generales es
  una técnica aplicable para minimizar todos
  los fallos inducidos por entradas para una
  depuración efectiva.
 HDD es simple pero efectivo, más rápido
  que Delta Debugging y incrementa la calidad.
 En resumen, HDD es una herramienta útil
  para automatizar el proceso de depuración
  de programas que tienen como entrada
  estructuras.
                                             4
2.INTRODUCCIÓN




                 5
2. INTRODUCCIÓN
   Los programadores han de demostrar de alguna
    forma que partes del programa inducen a que
    este falle.

   Esta fase de búsqueda se denomina “proceso de
    depuración” el cual es lento y arduo.

   Se presenta Delta Debugging y Hierarchical
    Delta Debugging.


                                                    6
2. INTRODUCCIÓN
    Delta Debugging es una técnica que logra
     automatizar el proceso de depuración mediante la
     minimización (ignora las estructuras de entradas).
     Consiste en los siguientes algoritmos:

1. Simplification                       2. Isolation
La entrada es simplificada para         Este algoritmo intenta encontrar el
realizar un análisis con pequeños       conjunto de datos el cual alguno de
conjuntos de datos. Este algoritmo es   sus elementos produce el fallo. Trabaja
recursivo, hasta que no se puede        en ambas direcciones desde el caso
reducir más los datos en conjuntos.     mas grande a el que menos
                                        (subconjuntos). Produce salidas las
                                        cuales son poco intuitivas para el
                                        programador.
                                                                             7
2. INTRODUCCIÓN
   Hierarchical Delta Debugging, a diferencia
    de Delta Debugging, considera las entradas
    como estructuras de datos, ya que pueden ser
    explotadas (por su semántica) para generar
    conjuntos y simplificar los casos de entrada.
   Diferentes escenarios dónde HDD es
    aplicable:
    ◦   Programming Languages
    ◦   HTML/XML
    ◦   Video Codecs (compressor/decompresser)
    ◦   UI Interactions


                                                    8
3. ALGORITHM
HIERARCHICAL DELTA
DEBUGGING



                     9
3. ALGORITHM HDD
   Antes que nada, se genera a partir del código de
    un programa, (con la extensión ELSA de HDD)
    un árbol AST (árbol de sintaxis abstracta).




                                                   10
 El algoritmo empieza en el nivel más alto (0), primero etiqueta
  los nodos del primer nivel y los guarda en una lista “nodes”.
 Ya etiquetados, se pasa la lista de nodos al algoritmo DDMIN
  para que obtenga la configuración mínima.
 Se eliminan los nodos que son irrelevantes para el análisis
 Y se incrementa el nivel, para seguir bajando por el árbol y
  realizar un bucle hasta que no queden nodos por analizar.

HIERARCHICAL DELTA DEBUGGING
         ALGORITHM                                                  11
3. ALGORITHM HDD
   El resultado del árbol AST después de aplicar el
    algoritmo HDD.




                                                       12
4. EJEMPLO CON HDD




                     13
4. EJEMPLO CON HDD
   The C Programming Language




                                 14
4. EJEMPLO CON HDD
Antes de procesar el código, previamente se ha realizado un árbol AST con la
extensión ELSA.
 HDD con el algoritmo DDMIN detecta que la función que interesa
   analizar es la “mult” ya que contiene el bucle “for” que posiblemente
   produzca un bloqueo en el GCC.
 Lo primero que hace es eliminar lo que no es necesario, (función PRUNE)
   es decir el “return”.
 Luego se elimina también la inicialización, condición y incremento del bucle
   “for”.
 Una vez se llega a este punto, no se puede producir una configuración
   mínima de estas expresiones ya que son parte de la deducción al fallo. El
   algoritmo HDD termina.




                                                                             15
5.TRABAJOS
RELACIONADOS




               16
5. TRABAJOS RELACIONADOS
   El trabajo más relevante de Zeller es “Delta Debugging”,
    que se trata de la idea de reducir el número de casos de
    prueba a partir de un algoritmo (como ya se ha comentado
    anteriormente).

   El trabajo de Sterling and Olsson's también esta
    relacionado con Delta Debugging, “Program Chipping”
    que se trata de un simple árbol, en el cual se aplican técnicas
    para producir casos de prueba. También “Program Slicing”
    se utiliza para separar partes del programa que son
    necesarias para su ejecución.

   Estas técnicas facilitan la depuración, pero no la eliminación
    de partes irrelevantes de un programa. Destacar que Delta
    Debugging y Program Slicing pueden ser utilizadas de manera
    conjunta.

                                                                  17
5. TRABAJOS RELACIONADOS
   “PSE” (R. Manevich, M. Sridharan, and S. Adams) es
    una técnica de análisis para el diagnóstico de
    fallos de programa, la cual se puede considerar
    como una técnica de Program Slicing (sin embargo,
    esta es mas precisa, ya que tiene en cuenta los
    errores condicionales).

   “Bug Isolation” (Whalley's) se puede resumir
    en la simplificación de los posibles fallos de
    entrada de un programa intentando conseguir una
    buena optimización. No se centra en la
    minimización de la entrada si no se centra en la
    búsqueda que produce el fallo.

                                                     18
5. TRABAJOS RELACIONADOS
   Muchas de las herramientas cuando producen un
    error muestra una traza de dónde se encuentra
    este. Sin embargo, entender el error y localizarlo
    puede ser complicado. Para intentar apoyar a la
    localización del error, se han desarrollado varias
    técnicas:
    ◦ Ball sugiere intentar encontrar transiciones en la
      traza de error dónde no aparezca una traza correcta.
    ◦ Groce and Visser sugieren un enfoque distinto para
      el mismo problema. Dado un error en la traza, se
      realiza el cálculo de otras trazas de error para realizar
      una comparación.


                                                              19
6. FUTUROS TRABAJOS




                      20
6. FUTUROS TRABAJOS
Se va a describir las distintas limitaciones con la actual
implementación y las posibles direcciones para mejorar el algoritmo.
 La “Extension Elsa” esta limitada de muchas formas. Cuando
   múltiples variables se declaran en la misma instrucción, Elsa las
   divide en varias sentencias. El trabajo de mejora, esta enfocado a si
   hay varias dependencias entre la información y los distintos niveles
   de entrada. Si existe una excesiva dependencia ,la entrada de un
   programa debería ser evaluada para decidir si usar HDD o no.

   Otra limitación es, que el programador debe proporcionar
    infraestructura para el procesamiento de árbol. Esta infraestructura
    es la responsable para analizar la entrada. Esto puede no ser trivial
    para algunos lenguajes de programación. Por eso, utilizar XML
    simplifica la implementación.


                                                                           21
6. FUTUROS TRABAJOS
   Las gramáticas libres de contextos utilizan recursión para tratar
    con listas de datos. Si el árbol generado refleja la recursión, el árbol
    no sería ideal para HDD, ya que aumentaría el numero de
    iteraciones del algoritmo. Esto se podría solucionar poniendo
    simples anotaciones en lo que sea irrelevante.

   Otro problema que surge en el procesamiento del árbol, es la
    validación sintáctica de la salida para configuraciones particulares,
    que no pueden ser aseguradas cuando tienen un contexto libre de
    gramática. Esto puede producir casos de prueba erróneos.

   Para terminar, decir que la ejecución de DDMIN sobre todos los
    nodos en el mismo nivel no es necesario. Si este es el caso, se
    puede llamar DDMIN en sólo los hijos de los padres.



                                                                            22
7. CONCLUSIÓN




                23
7.CONCLUSIÓN
    Se ha presentado Hierarchical Delta Debugger, un algoritmo
     basado en Delta Debugger jerárquico que realiza una explotación
     de las entradas de programa utilizando su estructura para optimizar
     el algoritmo y minimizar los fallos.

    Todas las pruebas realizadas, tienen como resultado que HDD
     puede reducir de forma significativa el numero de casos de prueba.

    Aquí hay algunas direcciones interesantes para el futuro trabajo:
1.    Existe la intención de examinar las técnicas alternativas de
      optimización para la simplificación mediante la explotación de los
      nodos de forma independiente.
       Un posible enfoque es la técnica antes mencionada para limitar DDMIN a los hijos de
       un nodo primario en particular. Esto puede producir significativas aceleraciones en el
       algoritmo.
2.     También es interesante para proporcionar un contexto libre de
       gramática, facilitar la aplicación de esta técnica.


                                                                                                24
8.BIBLIOGRAFÍA




                 25
8.BIBLIOGRAFÍA
   Yesterday, my program worked. Today, it does not. Why?. Andreas
    Zeller:
    http://www.clinicaltrialspotlight.com/tools/local/imageupload/conte
    nt/FileName/size1/68810ba38aa3c7856f61f3a188da9757.pdf

   M. Das, S. Lerner, and M. Seigle. ESP: path-sensitive program
    verication in polynomial time. In Proceedings of the ACM
    SIGPLAN 2002 Conference on Programming Language Design and
    Implementation.

   A. Groce and W.Visser. What went wrong: Explaining
    Counterexample.

   R. M. Karp. Reducibility among combinatorial problems. In
    Complexity of Computer Computations.

   B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via
    remote program sampling.
                                                                            26
8.BIBLIOGRAFÍA
   H. Agrawal, R. A. DeMillo, and E. H. Spafford. Debugging with dynamic
    slicing and backtracking. Software – Practice and Experience,
    23(6):589.616, 1993.

   H. Agrawal and J. R. Horgan. Dynamic program slicing. In Proceedings
    of the ACM SIGPLAN '90 Conference on Programming Language Design and
    Implementation.

   T. Ball, M. Naik, and S. K. Rajamani. From symptom to cause:
    Localizing errors in counterexample traces. In Proceedings of 30th
    ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.

   J.-D. Choi and A. Zeller. Isolating failure-inducing thread schedules. In
    ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on
    Software testing and analysis.

   H. Cleve and A. Zeller. Locating causes of program failures. In
    Proceedings of the 27th International Conference on Software Engineering.


                                                                                27
HIERARCHICAL DELTA DEBUGGING
Técnicas Avanzadas de Depuración




                             GRACIAS



                                       Jorge Soro Doménech

                                                             28

Más contenido relacionado

La actualidad más candente

Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasLuis Ortiz
 
Programacion web introduccion 11 3
Programacion web introduccion 11 3Programacion web introduccion 11 3
Programacion web introduccion 11 3Garcia-12
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariMaribelPechaLamprea
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónIng Cabrera
 
Metodos calcular raices
Metodos calcular raicesMetodos calcular raices
Metodos calcular raicesnanaperdomo
 
Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc)   Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc) Angel1309
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)PiXeL16
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IJacinto Cabrera Rodríguez
 

La actualidad más candente (15)

Presentación1
Presentación1Presentación1
Presentación1
 
Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: Subprogramas
 
Programacion web introduccion 11 3
Programacion web introduccion 11 3Programacion web introduccion 11 3
Programacion web introduccion 11 3
 
Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]
 
Practica 09
Practica 09Practica 09
Practica 09
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Turbo Pascal 7
Turbo Pascal 7Turbo Pascal 7
Turbo Pascal 7
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mari
 
P R O L O G Practica01
P R O L O G  Practica01P R O L O G  Practica01
P R O L O G Practica01
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Metodos calcular raices
Metodos calcular raicesMetodos calcular raices
Metodos calcular raices
 
Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc)   Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc)
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)
 
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN IENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
ENTORNOS DE DESARROLLO: FUNDAMENTOS DE PROGRAMACIÓN I
 
Turbo pascal
Turbo pascalTurbo pascal
Turbo pascal
 

Destacado

Practica de word
Practica de wordPractica de word
Practica de wordLORENA
 
Formulario futbol 1
Formulario futbol 1Formulario futbol 1
Formulario futbol 1clasederafa
 
Catalogo 2011
Catalogo 2011Catalogo 2011
Catalogo 2011daxiel
 
Computación básica.
Computación básica.Computación básica.
Computación básica.dixiejael
 
面向对象的CSS
面向对象的CSS面向对象的CSS
面向对象的CSSJerry Xie
 
Online quiz2
Online quiz2Online quiz2
Online quiz2faithlin
 
Matheus Leitão revela privilégios em emissão de passaportes diplomáticos
 Matheus Leitão revela privilégios em emissão de passaportes diplomáticos  Matheus Leitão revela privilégios em emissão de passaportes diplomáticos
Matheus Leitão revela privilégios em emissão de passaportes diplomáticos Matheus Leitão
 

Destacado (14)

Practica de word
Practica de wordPractica de word
Practica de word
 
2 theory learning
2 theory learning2 theory learning
2 theory learning
 
Вирус Бешенства
Вирус БешенстваВирус Бешенства
Вирус Бешенства
 
Formulario futbol 1
Formulario futbol 1Formulario futbol 1
Formulario futbol 1
 
Catalogo 2011
Catalogo 2011Catalogo 2011
Catalogo 2011
 
Computacion
ComputacionComputacion
Computacion
 
Watchmen GS 112009
Watchmen GS 112009Watchmen GS 112009
Watchmen GS 112009
 
Computación básica.
Computación básica.Computación básica.
Computación básica.
 
面向对象的CSS
面向对象的CSS面向对象的CSS
面向对象的CSS
 
Online quiz2
Online quiz2Online quiz2
Online quiz2
 
Matheus Leitão revela privilégios em emissão de passaportes diplomáticos
 Matheus Leitão revela privilégios em emissão de passaportes diplomáticos  Matheus Leitão revela privilégios em emissão de passaportes diplomáticos
Matheus Leitão revela privilégios em emissão de passaportes diplomáticos
 
U
UU
U
 
Sierra de gata
Sierra de gataSierra de gata
Sierra de gata
 
T1 - Comm 202
T1 - Comm 202T1 - Comm 202
T1 - Comm 202
 

Similar a HDD: Hierarchical Delta Debugging

502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx
502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx
502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptxCarlosArias360707
 
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdfPRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdfpitechu
 
Presentac..
Presentac..Presentac..
Presentac..Leyda
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 
Introduccion a las técnicas de programación
Introduccion a las técnicas de programaciónIntroduccion a las técnicas de programación
Introduccion a las técnicas de programaciónMarionCastro
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLfelipeforero72
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programaciónErika Sánchez
 
Paradigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxParadigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxsantiagojoseu4
 
Solución de un problema mediante el computador
Solución de un problema mediante el computadorSolución de un problema mediante el computador
Solución de un problema mediante el computadorMarlonss008
 

Similar a HDD: Hierarchical Delta Debugging (20)

502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx
502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx
502-Prog-P1-Act5-Expo-AlcudiaMendezMoyses.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdfPRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Presentac..
Presentac..Presentac..
Presentac..
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Informatica
InformaticaInformatica
Informatica
 
Tap04 poo
Tap04 pooTap04 poo
Tap04 poo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introduccion a las técnicas de programación
Introduccion a las técnicas de programaciónIntroduccion a las técnicas de programación
Introduccion a las técnicas de programación
 
Laboratorio iii
Laboratorio iiiLaboratorio iii
Laboratorio iii
 
Unidad ii. tdd
Unidad ii. tddUnidad ii. tdd
Unidad ii. tdd
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
 
Informatica
InformaticaInformatica
Informatica
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programación
 
Paradigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptxParadigmas de programacion de computadoras FP.pptx
Paradigmas de programacion de computadoras FP.pptx
 
Solución de un problema mediante el computador
Solución de un problema mediante el computadorSolución de un problema mediante el computador
Solución de un problema mediante el computador
 

Más de Jorge Soro

Introducción Bussines Intelligence
Introducción Bussines IntelligenceIntroducción Bussines Intelligence
Introducción Bussines IntelligenceJorge Soro
 
Guia farmacoterapeutica cartel
Guia farmacoterapeutica cartelGuia farmacoterapeutica cartel
Guia farmacoterapeutica cartelJorge Soro
 
Guía farmacoterapéutica
Guía farmacoterapéuticaGuía farmacoterapéutica
Guía farmacoterapéuticaJorge Soro
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 
Mobility and security
Mobility and  securityMobility and  security
Mobility and securityJorge Soro
 
Gene classification
Gene classificationGene classification
Gene classificationJorge Soro
 
The human gene mutation database
The human gene mutation databaseThe human gene mutation database
The human gene mutation databaseJorge Soro
 

Más de Jorge Soro (8)

6. SPARK.pdf
6. SPARK.pdf6. SPARK.pdf
6. SPARK.pdf
 
Introducción Bussines Intelligence
Introducción Bussines IntelligenceIntroducción Bussines Intelligence
Introducción Bussines Intelligence
 
Guia farmacoterapeutica cartel
Guia farmacoterapeutica cartelGuia farmacoterapeutica cartel
Guia farmacoterapeutica cartel
 
Guía farmacoterapéutica
Guía farmacoterapéuticaGuía farmacoterapéutica
Guía farmacoterapéutica
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Mobility and security
Mobility and  securityMobility and  security
Mobility and security
 
Gene classification
Gene classificationGene classification
Gene classification
 
The human gene mutation database
The human gene mutation databaseThe human gene mutation database
The human gene mutation database
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (16)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

HDD: Hierarchical Delta Debugging

  • 1. HDD Hierarchical Delta Debugging Alumno: Jorge Soro Doménech Máster: ISMFSI (UPV) Asignatura: Técnicas Avanzadas de Depuración 1
  • 2. INDICE 1. MOTIVACIÓN 2. INTRODUCCIÓN 3. ALGORITHM HIERARCHICAL DELTA DEBUGGING 4. EJEMPLO CON HDD 5. TRABAJOS RELACIONADOS 6. FUTUROS TRABAJOS 7. CONCLUSIÓN 8. BIBLIOGRAFÍA 2
  • 4. 1. MOTIVACIÓN  Hierarchical Delta Debugging (HDD) esta basado principalmente en el algoritmo Delta Debugging (DD) que en rasgos generales es una técnica aplicable para minimizar todos los fallos inducidos por entradas para una depuración efectiva.  HDD es simple pero efectivo, más rápido que Delta Debugging y incrementa la calidad.  En resumen, HDD es una herramienta útil para automatizar el proceso de depuración de programas que tienen como entrada estructuras. 4
  • 6. 2. INTRODUCCIÓN  Los programadores han de demostrar de alguna forma que partes del programa inducen a que este falle.  Esta fase de búsqueda se denomina “proceso de depuración” el cual es lento y arduo.  Se presenta Delta Debugging y Hierarchical Delta Debugging. 6
  • 7. 2. INTRODUCCIÓN  Delta Debugging es una técnica que logra automatizar el proceso de depuración mediante la minimización (ignora las estructuras de entradas). Consiste en los siguientes algoritmos: 1. Simplification 2. Isolation La entrada es simplificada para Este algoritmo intenta encontrar el realizar un análisis con pequeños conjunto de datos el cual alguno de conjuntos de datos. Este algoritmo es sus elementos produce el fallo. Trabaja recursivo, hasta que no se puede en ambas direcciones desde el caso reducir más los datos en conjuntos. mas grande a el que menos (subconjuntos). Produce salidas las cuales son poco intuitivas para el programador. 7
  • 8. 2. INTRODUCCIÓN  Hierarchical Delta Debugging, a diferencia de Delta Debugging, considera las entradas como estructuras de datos, ya que pueden ser explotadas (por su semántica) para generar conjuntos y simplificar los casos de entrada.  Diferentes escenarios dónde HDD es aplicable: ◦ Programming Languages ◦ HTML/XML ◦ Video Codecs (compressor/decompresser) ◦ UI Interactions 8
  • 10. 3. ALGORITHM HDD  Antes que nada, se genera a partir del código de un programa, (con la extensión ELSA de HDD) un árbol AST (árbol de sintaxis abstracta). 10
  • 11.  El algoritmo empieza en el nivel más alto (0), primero etiqueta los nodos del primer nivel y los guarda en una lista “nodes”.  Ya etiquetados, se pasa la lista de nodos al algoritmo DDMIN para que obtenga la configuración mínima.  Se eliminan los nodos que son irrelevantes para el análisis  Y se incrementa el nivel, para seguir bajando por el árbol y realizar un bucle hasta que no queden nodos por analizar. HIERARCHICAL DELTA DEBUGGING ALGORITHM 11
  • 12. 3. ALGORITHM HDD  El resultado del árbol AST después de aplicar el algoritmo HDD. 12
  • 13. 4. EJEMPLO CON HDD 13
  • 14. 4. EJEMPLO CON HDD  The C Programming Language 14
  • 15. 4. EJEMPLO CON HDD Antes de procesar el código, previamente se ha realizado un árbol AST con la extensión ELSA.  HDD con el algoritmo DDMIN detecta que la función que interesa analizar es la “mult” ya que contiene el bucle “for” que posiblemente produzca un bloqueo en el GCC.  Lo primero que hace es eliminar lo que no es necesario, (función PRUNE) es decir el “return”.  Luego se elimina también la inicialización, condición y incremento del bucle “for”.  Una vez se llega a este punto, no se puede producir una configuración mínima de estas expresiones ya que son parte de la deducción al fallo. El algoritmo HDD termina. 15
  • 17. 5. TRABAJOS RELACIONADOS  El trabajo más relevante de Zeller es “Delta Debugging”, que se trata de la idea de reducir el número de casos de prueba a partir de un algoritmo (como ya se ha comentado anteriormente).  El trabajo de Sterling and Olsson's también esta relacionado con Delta Debugging, “Program Chipping” que se trata de un simple árbol, en el cual se aplican técnicas para producir casos de prueba. También “Program Slicing” se utiliza para separar partes del programa que son necesarias para su ejecución.  Estas técnicas facilitan la depuración, pero no la eliminación de partes irrelevantes de un programa. Destacar que Delta Debugging y Program Slicing pueden ser utilizadas de manera conjunta. 17
  • 18. 5. TRABAJOS RELACIONADOS  “PSE” (R. Manevich, M. Sridharan, and S. Adams) es una técnica de análisis para el diagnóstico de fallos de programa, la cual se puede considerar como una técnica de Program Slicing (sin embargo, esta es mas precisa, ya que tiene en cuenta los errores condicionales).  “Bug Isolation” (Whalley's) se puede resumir en la simplificación de los posibles fallos de entrada de un programa intentando conseguir una buena optimización. No se centra en la minimización de la entrada si no se centra en la búsqueda que produce el fallo. 18
  • 19. 5. TRABAJOS RELACIONADOS  Muchas de las herramientas cuando producen un error muestra una traza de dónde se encuentra este. Sin embargo, entender el error y localizarlo puede ser complicado. Para intentar apoyar a la localización del error, se han desarrollado varias técnicas: ◦ Ball sugiere intentar encontrar transiciones en la traza de error dónde no aparezca una traza correcta. ◦ Groce and Visser sugieren un enfoque distinto para el mismo problema. Dado un error en la traza, se realiza el cálculo de otras trazas de error para realizar una comparación. 19
  • 21. 6. FUTUROS TRABAJOS Se va a describir las distintas limitaciones con la actual implementación y las posibles direcciones para mejorar el algoritmo.  La “Extension Elsa” esta limitada de muchas formas. Cuando múltiples variables se declaran en la misma instrucción, Elsa las divide en varias sentencias. El trabajo de mejora, esta enfocado a si hay varias dependencias entre la información y los distintos niveles de entrada. Si existe una excesiva dependencia ,la entrada de un programa debería ser evaluada para decidir si usar HDD o no.  Otra limitación es, que el programador debe proporcionar infraestructura para el procesamiento de árbol. Esta infraestructura es la responsable para analizar la entrada. Esto puede no ser trivial para algunos lenguajes de programación. Por eso, utilizar XML simplifica la implementación. 21
  • 22. 6. FUTUROS TRABAJOS  Las gramáticas libres de contextos utilizan recursión para tratar con listas de datos. Si el árbol generado refleja la recursión, el árbol no sería ideal para HDD, ya que aumentaría el numero de iteraciones del algoritmo. Esto se podría solucionar poniendo simples anotaciones en lo que sea irrelevante.  Otro problema que surge en el procesamiento del árbol, es la validación sintáctica de la salida para configuraciones particulares, que no pueden ser aseguradas cuando tienen un contexto libre de gramática. Esto puede producir casos de prueba erróneos.  Para terminar, decir que la ejecución de DDMIN sobre todos los nodos en el mismo nivel no es necesario. Si este es el caso, se puede llamar DDMIN en sólo los hijos de los padres. 22
  • 24. 7.CONCLUSIÓN  Se ha presentado Hierarchical Delta Debugger, un algoritmo basado en Delta Debugger jerárquico que realiza una explotación de las entradas de programa utilizando su estructura para optimizar el algoritmo y minimizar los fallos.  Todas las pruebas realizadas, tienen como resultado que HDD puede reducir de forma significativa el numero de casos de prueba.  Aquí hay algunas direcciones interesantes para el futuro trabajo: 1. Existe la intención de examinar las técnicas alternativas de optimización para la simplificación mediante la explotación de los nodos de forma independiente. Un posible enfoque es la técnica antes mencionada para limitar DDMIN a los hijos de un nodo primario en particular. Esto puede producir significativas aceleraciones en el algoritmo. 2. También es interesante para proporcionar un contexto libre de gramática, facilitar la aplicación de esta técnica. 24
  • 26. 8.BIBLIOGRAFÍA  Yesterday, my program worked. Today, it does not. Why?. Andreas Zeller: http://www.clinicaltrialspotlight.com/tools/local/imageupload/conte nt/FileName/size1/68810ba38aa3c7856f61f3a188da9757.pdf  M. Das, S. Lerner, and M. Seigle. ESP: path-sensitive program verication in polynomial time. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation.  A. Groce and W.Visser. What went wrong: Explaining Counterexample.  R. M. Karp. Reducibility among combinatorial problems. In Complexity of Computer Computations.  B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. 26
  • 27. 8.BIBLIOGRAFÍA  H. Agrawal, R. A. DeMillo, and E. H. Spafford. Debugging with dynamic slicing and backtracking. Software – Practice and Experience, 23(6):589.616, 1993.  H. Agrawal and J. R. Horgan. Dynamic program slicing. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation.  T. Ball, M. Naik, and S. K. Rajamani. From symptom to cause: Localizing errors in counterexample traces. In Proceedings of 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.  J.-D. Choi and A. Zeller. Isolating failure-inducing thread schedules. In ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis.  H. Cleve and A. Zeller. Locating causes of program failures. In Proceedings of the 27th International Conference on Software Engineering. 27
  • 28. HIERARCHICAL DELTA DEBUGGING Técnicas Avanzadas de Depuración GRACIAS Jorge Soro Doménech 28