Using Hypotheses as a Debugging Aid

@article{Alaboudi2020UsingHA,
  title={Using Hypotheses as a Debugging Aid},
  author={Abdulaziz Alaboudi and Thomas D. LaToza},
  journal={2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)},
  year={2020},
  pages={1-9}
}
As developers debug, developers formulate hypotheses about the cause of the defect and gather evidence to test these hypotheses. To better understand the role of hypotheses in debugging, we conducted two studies. In a preliminary study, we found that, even with the benefit of modern internet resources, incorrect hypotheses can cause developers to investigate irrelevant information and block progress. We then conducted a controlled experiment where 20 developers debugged and recorded their… 

Figures and Tables from this paper

Debugging with Stack Overflow: Web Search Behavior in Novice and Expert Programmers
TLDR
Significant differences between all three levels of expertise are observed in their ability to find posts helpful for debugging a given error, with both general and language-specific expertise facilitating Stack Overflow search efficacy and debugging success.
Helping Developers Find and Share Debugging Hypotheses
  • Abdulaziz Alaboudi
  • Computer Science
    2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
  • 2020
TLDR
This chapter discusses debugging tools, which help developers inspect program states through logging and breakpoints or attempt to localize defects through automated or interactive program analysis techniques.
Edit - Run Behavior in Programming and Debugging
TLDR
A analysis of 28 hours of programming and debugging work from 11 professional developers which encompassed over three thousand development activities found that edit-run cycles are frequent and design recommendations for tools to enable more fluidity in edit- run cycles are discussed.
Edit-Run Behavior in Programming and Debugging
TLDR
A analysis of 28 hours of programming and debugging work from 11 professional developers which encompassed over three thousand development activities found that edit-run cycles are frequent and design recommendations for tools to enable more fluidity in edit- run cycles are discussed.
Error Identification Strategies for Python Jupyter Notebooks
TLDR
An exploratory, observational study on how Python Jupyter notebook users understand and understand potential errors in notebooks and indicates that while the notebook programming environment is different from the environ-ments used for traditional programming, debugging strategies re-main quite similar.
An Exploratory Study of Debugging Episodes
TLDR
It is found that, in terms of the activities developers did, programming and debugging were remarkably similar, particularly in the frequency of editing and browsing code.

References

SHOWING 1-10 OF 39 REFERENCES
Are automated debugging techniques actually helping programmers?
TLDR
The overall goal of this research is to investigate how developers use and benefit from automated debugging tools through a set of human studies by providing initial evidence that several assumptions made by automated debugging techniques do not hold in practice.
Studying the Advancement in Debugging Practice of Professional Software Developers
TLDR
This study investigates the current state of debugging in a new comprehensive study and observes several professional developers while debugging and creates a questionnaire that should serve as the basis for a large-scale online debugging survey later on.
Debugging Revisited: Toward Understanding the Debugging Needs of Contemporary Software Developers
TLDR
Several debugging challenges faced by professionals are revealed, including the interaction of hypothesis instrumentation and software environment as a source of debugging difficulty, the impact of log file information on accurate debugging of web services, and the mismatch between the sequential human thought process and the non-sequential execution of multithreaded environments as source of difficulty.
Where is the bug and how is it fixed? an experiment with practitioners
TLDR
A dataset named DBGBENCH --- the correct fault locations, bug diagnoses, and software patches of 27 real errors in open-source C projects that were consolidated from hundreds of debugging sessions of professional software engineers are collected.
Debugging reinvented
  • Amy J. Ko, B. Myers
  • Computer Science
    2008 ACM/IEEE 30th International Conference on Software Engineering
  • 2008
TLDR
The Whyline is a new kind of debugging tool that enables 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.
Critical slicing for software fault localization
TLDR
It is concluded that a debugger equipped with the proposed fault localization method can reduce human interaction time significantly and aid in the debugging of complex software.
A Qualitative Study on Framework Debugging
TLDR
Two human studies investigating how developers fix applications that use a framework API incorrectly found that participants benefited from the structure of frameworks and the pre-made solutions to common problems in the domain.
Expertise in Debugging Computer Programs: A Process Analysis
  • I. Vessey
  • Computer Science
    Int. J. Man Mach. Stud.
  • 1985
An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks
TLDR
A study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes, suggesting a new model of program understanding grounded in theories of information foraging.
How do professional developers comprehend software?
TLDR
An observational study of 28 professional developers from seven companies, investigating how developers comprehend software finds that developers put themselves in the role of end users by inspecting user interfaces and that face-to-face communication is preferred to documentation.
...
1
2
3
4
...