stringtranslate.com

Depuración delta

La depuración delta es una metodología para automatizar la depuración de programas mediante un enfoque científico de bucle hipótesis-ensayo-resultado. Esta metodología fue desarrollada por primera vez por Andreas Zeller de la Universidad del Sarre en 1999. [1]

En la práctica, el algoritmo de depuración Delta se basa en pruebas unitarias para aislar las causas de los fallos de forma automática, reduciendo sistemáticamente las circunstancias que los provocan hasta que quede un conjunto mínimo. Por ejemplo, si puede proporcionar un caso de prueba que produzca el error que está buscando, puede pasarlo al algoritmo de depuración Delta, que simplemente intentará recortar las funciones inútiles y las líneas de código que no son necesarias para reproducir el error, hasta que encuentre un programa mínimo.

La depuración delta se ha aplicado para aislar entradas de programa que inducen fallos (por ejemplo, una página HTML que hace que un navegador web falle), interacciones del usuario que inducen fallos (por ejemplo, las pulsaciones de teclas que hacen que un programa se bloquee) o cambios en el código del programa que inducen fallos (por ejemplo, después de una prueba de regresión fallida).

Más tarde, algunas herramientas de desarrollo de software se han inspirado en la depuración delta, como los comandos bisect de los sistemas de control de revisiones (por ejemplo, git-bisect, svn-bisect, hg-bisect, etc.), que, en lugar de trabajar sobre el código del programa, aplican la metodología de depuración delta sobre el historial del código comparando varias versiones hasta encontrar el cambio defectuoso.

Recientemente, se propuso la minimización del diálogo de red , una técnica basada en la depuración delta para encontrar el subconjunto más pequeño del tráfico de red del diálogo original, que cuando se reproduce aún logra el mismo objetivo que el diálogo original [2].

Software

Véase también

Referencias

  1. ^ Zeller, Andreas (1999). "Ayer, mi programa funcionó. Hoy, no. ¿Por qué?". Ingeniería de software — ESEC/FSE '99 . Apuntes de clase en informática. Vol. 1687. Springer. págs. 253–267. doi :10.1007/3-540-48166-4_16. ISBN 978-3-540-66538-0.
  2. ^ M. Zubair Rafique; et al. "Minimización de diálogos de red y diferenciación de diálogos de red: dos primitivas novedosas para aplicaciones de seguridad de red" (PDF) . En Actas de la 30.ª Conferencia anual sobre aplicaciones de seguridad informática (ACSAC 2014) . ACM.
  3. ^ danielwilkerson.com
  4. ^ DustMite, la herramienta de reducción de datos de propósito general
  5. ^ "Detección de errores de software mediante algoritmos genéticos". 2014-03-05 . Consultado el 22 de julio de 2015 .

Enlaces externos