Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior
A. Ko, and B. Myers. Proceedings of the 30th International Conference on Software Engineering, page 301--310. New York, NY, USA, ACM, (2008)
DOI: 10.1145/1368088.1368130
Abstract
When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.
%0 Conference Paper
%1 Ko:2008:DRA:1368088.1368130
%A Ko, Andrew J.
%A Myers, Brad A.
%B Proceedings of the 30th International Conference on Software Engineering
%C New York, NY, USA
%D 2008
%I ACM
%K debugging programming why-not-what
%P 301--310
%R 10.1145/1368088.1368130
%T Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior
%U http://doi.acm.org/10.1145/1368088.1368130
%X When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.
%@ 978-1-60558-079-1
@inproceedings{Ko:2008:DRA:1368088.1368130,
abstract = {When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.},
acmid = {1368130},
added-at = {2014-09-24T14:26:38.000+0200},
address = {New York, NY, USA},
author = {Ko, Andrew J. and Myers, Brad A.},
biburl = {https://www.bibsonomy.org/bibtex/26be305bd888ae46a70b656f78c6de4f3/ji},
booktitle = {Proceedings of the 30th International Conference on Software Engineering},
description = {Debugging reinvented},
doi = {10.1145/1368088.1368130},
interhash = {5782e9b419b5dbd3132d9dabecdaf6b3},
intrahash = {6be305bd888ae46a70b656f78c6de4f3},
isbn = {978-1-60558-079-1},
keywords = {debugging programming why-not-what},
location = {Leipzig, Germany},
numpages = {10},
pages = {301--310},
publisher = {ACM},
series = {ICSE '08},
timestamp = {2014-09-24T14:26:38.000+0200},
title = {Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior},
url = {http://doi.acm.org/10.1145/1368088.1368130},
year = 2008
}