peer reviewedA program fails. Under which circumstances does the failure occur? Starting with a single failure-inducing input ("The input ((4)) fails") and an input grammar, the DDSET algorithm uses systematic tests to automatically generalize the input to an abstract failure-inducing input that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammar - for instance, "((⟨expr⟩))", which represents any expression ⟨expr⟩ in double parentheses. Such an abstract failure-inducing input can be used (1) as a debugging diagnostic, characterizing the circumstances under which a failure occurs ("The error occurs whenever an expression is enclosed in double parentheses"); (2) as a producer of additional failure-ind...
One of the main reasons debugging is hard and time con-suming is that existing debugging tools do no...
The result of a Prolog execution can simply be "no", when the programmer is expecting some...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...
A program fails. Under which circumstances does the failure occur? Starting with a single failure-in...
peer reviewedWe introduce Alhazen — an approach that automatically determines the circumstances unde...
Program failures are often caused by invalid inputs, for instance due to input corruption. To obtain...
Which is the defect that causes a software failure? By comparing the program states of a failing and...
Given some test case, a program fails. Which circumstances of the test case are responsible for the ...
We introduce Alhazen—an approach that automatically determines the circumstances under which a parti...
Abstract—Consider the execution of a failing program as a sequence of program states. Each state ind...
peer reviewedWhen a program fails to process an input, it need not be the program code that is at fa...
Why does my program fail? We present a novel and general technique to automatically determine failur...
“Why does my program crash?”—This ever recurring ques-tion of software debugging drives the develope...
Abstract—A failed test reveals a potential bug in the tested code. Developers need to understand whi...
Avicenna is a debugging tool designed to automatically determine the causes and conditions of progra...
One of the main reasons debugging is hard and time con-suming is that existing debugging tools do no...
The result of a Prolog execution can simply be "no", when the programmer is expecting some...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...
A program fails. Under which circumstances does the failure occur? Starting with a single failure-in...
peer reviewedWe introduce Alhazen — an approach that automatically determines the circumstances unde...
Program failures are often caused by invalid inputs, for instance due to input corruption. To obtain...
Which is the defect that causes a software failure? By comparing the program states of a failing and...
Given some test case, a program fails. Which circumstances of the test case are responsible for the ...
We introduce Alhazen—an approach that automatically determines the circumstances under which a parti...
Abstract—Consider the execution of a failing program as a sequence of program states. Each state ind...
peer reviewedWhen a program fails to process an input, it need not be the program code that is at fa...
Why does my program fail? We present a novel and general technique to automatically determine failur...
“Why does my program crash?”—This ever recurring ques-tion of software debugging drives the develope...
Abstract—A failed test reveals a potential bug in the tested code. Developers need to understand whi...
Avicenna is a debugging tool designed to automatically determine the causes and conditions of progra...
One of the main reasons debugging is hard and time con-suming is that existing debugging tools do no...
The result of a Prolog execution can simply be "no", when the programmer is expecting some...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...