What is a "bug"? On subjectivity, epistemic power, and implications for software research
David Gray Widder, Claire Le Goues

TL;DR
This paper critically examines the ambiguous and subjective nature of defining 'bugs' in software, highlighting the epistemic and practical challenges in establishing a clear, universally accepted understanding of what constitutes a bug.
Contribution
It offers a philosophical and analytical perspective on the concept of bugs, questioning traditional definitions and exploring implications for software research and practice.
Findings
Definitions of bugs are highly subjective and context-dependent.
Formal specifications rarely fully capture intended software behavior.
Current bug detection methods rely on imperfect proxies and assumptions.
Abstract
Considerable effort in software research and practice is spent on bugs. Finding, reporting, tracking, triaging, attempting to fix them automatically, detecting "bug smells" -these comprise a substantial portion of large projects' time and development cost, and are of significant interest to researchers in Software Engineering, Programming Languages, and beyond. But, what is a bug, exactly? While segmentation faults rarely spark joy, most bugs are not so clear cut. Per the Oxford English Dictionary, the word "bug" has been a colloquialism for an engineering "defect" at least since the 1870s. Most modern software-oriented definitions speak to a disconnect between what a developer intended and what a program actually does. Formal verification, from its inception, has developed means to identify deviations from a formal specification, expected to more or less fully encode desired…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEthics and Social Impacts of AI · Scientific Computing and Data Management
