• DocumentCode
    5
  • Title

    How Programmers Debug, Revisited: An Information Foraging Theory Perspective

  • Author

    Lawrance, Joseph ; Bogart, Christopher ; Burnett, Margaret ; Bellamy, Rachel ; Rector, Kyle ; Fleming, Scott D.

  • Author_Institution
    Wentworth Institute of Technology, Boston
  • Volume
    39
  • Issue
    2
  • fYear
    2013
  • fDate
    Feb. 2013
  • Firstpage
    197
  • Lastpage
    215
  • Abstract
    Many theories of human debugging rely on complex mental constructs that offer little practical advice to builders of software engineering tools. Although hypotheses are important in debugging, a theory of navigation adds more practical value to our understanding of how programmers debug. Therefore, in this paper, we reconsider how people go about debugging in large collections of source code using a modern programming environment. We present an information foraging theory of debugging that treats programmer navigation during debugging as being analogous to a predator following scent to find prey in the wild. The theory proposes that constructs of scent and topology provide enough information to describe and predict programmer navigation during debugging, without reference to mental states such as hypotheses. We investigate the scope of our theory through an empirical study of 10 professional programmers debugging a real-world open source program. We found that the programmers´ verbalizations far more often concerned scent-following than hypotheses. To evaluate the predictiveness of our theory, we created an executable model that predicted programmer navigation behavior more accurately than comparable models that did not consider information scent. Finally, we discuss the implications of our results for enhancing software engineering tools.
  • Keywords
    cognition; program debugging; public domain software; software maintenance; topology; complex mental constructs; human debugging theories; information foraging theory; information scent constructs; navigation theory; open source code program debugging; programmer navigation behavior prediction; programmer verbalizations; programming environment; software engineering tool enhancement; topology constructs; Approximation methods; Debugging; Navigation; Predictive models; Programming environments; Topology; Information foraging theory; debugging; empirical software engineering; information scent; programmer navigation; software maintenance;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2010.111
  • Filename
    5674060