Bugs severely hurt blockchain system dependability. A thorough understanding of blockchain bug characteristics is required to design effective tools for preventing, detecting and mitigating bugs. We perform an empirical study on bug characteristics in eight representative open source blockchain systems. First, we manually examine 1,108 bug reports to understand the nature of the reported bugs. Second, we leverage card sorting to label the bug reports, and obtain ten bug categories in blockchain systems. We further investigate the frequency distribution of bug categories across projects and programming languages. Finally, we study the relationship between bug categories and bug fixing time. The findings include: (1) semantic bugs are the dominant runtime bug category, (2) frequency distributions of bug types show similar trends across different projects and programming languages, (3) security bugs take the longest median time to be fixed, (4) 35.71% performance bugs are fixed in more than one year, performance bugs take the longest average time to be fixed.
blockchain, Bug characteristics, Empirical study
Programming Languages and Compilers | Software Engineering
14th IEEE International Working Conference on Mining Software Repositories: MSR 2017, Buenos Aires, Argentina, 2017 May 20-21
City or Country
Buenos Aires, Argentina
WAN, Zhiyuan; LO, David; XIA, Xin; and CAI, Liang.
Bug characteristics in blockchain systems: A large-scale empirical study. (2017). 14th IEEE International Working Conference on Mining Software Repositories: MSR 2017, Buenos Aires, Argentina, 2017 May 20-21. Research Collection School Of Information Systems.
Available at: http://ink.library.smu.edu.sg/sis_research/3695
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.