Debugging remains one of the most challenging activities for developers. This has motivated the invention of numerous debugging tools, which help developers inspect program states through logging and breakpoints or attempt to localize defects through automated or interactive program analysis techniques.
But while these tools offer important support for debugging, they do not align with how developers debug in practice. A recent study found that professional developers still use a simple and ``intuitive'' debugging method in which they observe program behavior, hypothesize a potential cause of the defect, and then test their hypothesis. A debugging hypothesis is a verifiable speculation about a possible cause of incorrect behavior. For example, a developer who sees that clicking a button did not, as expected, open a window, might hypothesize that it was caused by the click handler being incorrectly registered. Working from this hypothesis, she might test it by gathering evidence, searching for possible locations that might implement the click handler registration, or use the debugger to gather information about the run-time state of the program to determine if the registration occurred correctly.
Abdulaziz is a fourth-year Ph.D. student in software engineering at Goerge Mason University. His recent research has been on the area of human-centric debugging.
Tue 11 AugDisplayed time zone: Pacific Time (US & Canada) change
15:00 - 16:00 | |||
15:00 20mTalk | Promoting Meaningful Learning By Supporting Interplay within Abstraction Ladder Graduate Consortium Sangho Suh University of Waterloo Authorizer link | ||
15:20 20mTalk | Interactive Computer Tutors as a Programming Educator: Improving Learners’ Experiences Graduate Consortium Ruiqi Shen New Jersey Institute of Technology Authorizer link | ||
15:40 20mTalk | Helping Developers Find and Share Debugging Hypotheses Graduate Consortium Abdulaziz Alaboudi George Mason University Authorizer link |