Towards Understanding Bugs in Go Programming Language

Yaping Feng, Ziyuan Wang · 2024

Go programming language is a powerful tool for modern software development. Ensuring the correct functionality of language features is paramount for the seamless execution of Go programs. Despite meticulous design and development efforts, bugs are an unavoidable aspect of any software, and Go is no exception. This paper presents a comprehensive empirical study based on an extensive analysis of 51,020 issue reports from Go’s repositories on GitHub, providing a panoramic view of the bug landscape within the Go ecosystem and its core packages. Our investigation reveals that: (1) Bugs are more prevalent in components such as Documentation, compiler/runtime, and builder. Windows OS and WebAssembly (WASM) exhibit a higher number of bugs compared to other system architectures. (2) Compilation and Building, Gocommand are the most affected language features by bugs. (3) Behavioral, compiler and runtime errors, and documentation are the three most common types of bug symptoms. (4) Approximately $35 \%$ of bugs are fixed within a day, and about $80 \%$ of bugs are fixed within a year. Roughly $5 \%$ are labeled as soon or release-blockers, statistics indicates that there’s a moderate positive correlation between bug priority and resolution time. (5) Incorrect code logic, improper condition checks, and documentation errors are the three most prevalent root causes of bugs.

Read the paper · More papers on PaperTik