What we can learn from how programmers debug their code

Research output: Chapter in Book/Report/Conference proceedingConference paperpeer-review

Abstract

Researchers have developed numerous debugging approaches to help programmers in the debugging process, but these approaches are rarely used in practice. In this paper, we investigate how programmers debug their code and what researchers should consider when developing debugging approaches. We conducted an online questionnaire where 102 programmers provided information about recently fixed bugs. We found that the majority of bugs (69.6 %) are semantic bugs. Memory and concurrency bugs do not occur as frequently (6.9 % and 8.8 %), but they consume more debugging time. Locating a bug is more difficult than reproducing and fixing it. Programmers often use only IDE build-in tools for debugging. Furthermore, programmers frequently use a replication-observation-deduction pattern when debugging. These results suggest that debugging support is particularly valuable for memory and concurrency bugs. Furthermore, researchers should focus on the fault localization phase and integrate their tools into commonly used IDEs.
Original languageEnglish
Title of host publicationProceedings - 2021 IEEE/ACM 8th International Workshop on Software Engineering Research and Industrial Practice, SER and IP 2021
PublisherIEEE Computer Society
Pages37-40
Number of pages4
ISBN (Electronic)9781665444767
DOIs
Publication statusPublished - Jun 2021

Publication series

NameProceedings - 2021 IEEE/ACM 8th International Workshop on Software Engineering Research and Industrial Practice, SER and IP 2021

Keywords

  • debugging in practice
  • user questionnaire

ASJC Scopus subject areas

  • Software
  • Decision Sciences (miscellaneous)

Fields of Expertise

  • Information, Communication & Computing

Treatment code (Nähere Zuordnung)

  • Basic - Fundamental (Grundlagenforschung)

Fingerprint

Dive into the research topics of 'What we can learn from how programmers debug their code'. Together they form a unique fingerprint.

Cite this