2011
DOI: 10.1016/j.advengsoft.2011.05.024
|View full text |Cite
|
Sign up to set email alerts
|

A survey on algorithmic debugging strategies

Abstract: Algorithmic debugging is a debugging technique that has been extended to practically all programming paradigms. Roughly speaking, the technique constructs an internal representation of all (sub)computations performed during the execution of a buggy program; and then, it asks the programmer about the correctness of such computations. The answers of the programmer guide the search for the bug until it is isolated by discarding correct parts of the program. After twenty years of research in algorithmic debugging … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
64
0

Year Published

2013
2013
2023
2023

Publication Types

Select...
5
1

Relationship

2
4

Authors

Journals

citations
Cited by 53 publications
(64 citation statements)
references
References 16 publications
0
64
0
Order By: Relevance
“…Roughly, traceable buggy nodes are those buggy nodes that may be directly responsible of the wrong behavior of the program (their effects are visible in the root of the tree). This property makes them debuggable by all AD strategies that are variants of Top-Down (see [29]). …”
Section: Definition 7 (Execution Nodes Dependency)mentioning
confidence: 99%
See 1 more Smart Citation
“…Roughly, traceable buggy nodes are those buggy nodes that may be directly responsible of the wrong behavior of the program (their effects are visible in the root of the tree). This property makes them debuggable by all AD strategies that are variants of Top-Down (see [29]). …”
Section: Definition 7 (Execution Nodes Dependency)mentioning
confidence: 99%
“…During many years, the main goal of most AD researchers has been the definition of better strategies to reduce the search space after every answer, and to reduce the complexity of the questions. A survey of search strategies for AD can be found in [29]. In our formalization, a search strategy is just a function that analyzes the ET and returns an execution node (either the next node to ask, or a buggy node).…”
Section: Search Strategies For Admentioning
confidence: 99%
“…Although these nodes could be omitted, if they are kept, the ET becomes more balanced. Balanced ETs are very convenient for strategies such as Divide and Query [16], because it is possible to prune almost half of the tree after every answer, thus obtaining a logarithmic number of questions with respect to the number of nodes in the ET. This approach is related to our technique, but it has some drawbacks: it can only be applied where transitivity inferences took place while creating the ET, and thus most of the parts of the tree cannot be balanced, and even in these cases the balancing only affects two nodes.…”
Section: Related Workmentioning
confidence: 99%
“…In both cases, we will always implicitly refer to the most efficient version of both strategies, respectively named, (i) Heaviest First [1], which always traverses the ET from the root to the leaves selecting always the heaviest node; and (ii) Hirunkitti's Divide and Query [6], which always selects the node in the ET that better divides the number of nodes in the ET by the half. A comparative study of these techniques can be found in [16].…”
Section: Definition 1 (Execution Treementioning
confidence: 99%
See 1 more Smart Citation