arrow
返回

Towards understanding bugs in Python interpreters

delete2022-12-13
delete8
PRE
AI
D
Di Liu
Y
Yang Feng *
闫
闫艳燕 (Yanyan Yan)
B
Baowen Xu
DOI:10.1007/s10664-022-10239-xdelete
delete原文链接
delete分享
delete收藏
摘要

摘要

En 中文
Python has been widely used to develop large-scale software systems such as distributed systems, cloud computing, artificial intelligence, and Web platforms due to its flexibility and versatility. As a kind of complex software, Python interpreter could also suffer from software bugs and thus fundamentally threaten the quality of all Python program applications. Since the first release of Python, more than 30,000 bugs have been discovered. While modern interpreters often consist of many modules, built-in libraries, extensions, etc, they could reach millions of code lines. The large size and high complexity of interpreters bring substantial challenges to their quality assurance. To characterize the interpreter bugs and provide empirical supports, this paper conducts a large-scale empirical study on the two most popular Python interpreters - CPython and PyPy. We have comprehensively investigated the maintenance log information and collected 30,069 fixed bugs and 20,334 confirmed revisions. We further manually characterized and taxonomized 1200 bugs to investigate their representative symptoms and root causes deeply. Finally, we identified nine findings by comprehensively investigating bug locations, symptoms, root causes, and bug revealing & fixing time. The key findings include (for both interpreters): (1) the Library, object model, and interpreter back-end are the most buggy components; (2) unexpected behavior, crash, and performance are the most common symptoms; (3) incorrect algorithm logic, configuration, and internal call are the most common general root causes; incorrect object design is the most common Python-specific root cause; (4) some test-program triggering bugs are tiny (less than ten lines), and most bug fixes only involve slight modifications. Depending on these findings, we discuss the lessons learned and practical implications that can support the research on interpreters' testing, debugging, and improvements.
Keyword:
Bugs
Python interpreter
Empirical software engineering

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

N
Nanjing University
学者数:
4.9K
论文数: 1.4K
被引数: 0
引用论文

引用论文

err分享
err收藏
Using eDNA and SCUBA surveys for detection and monitoring of a threatened marine cryptic fish
err2023-04-11
err0
errOAAI
errTyson J. Bessell; Sharon A. Appleyard; Rick D. Stuart‐Smith; Olivia J. Johnson; Scott D. Ling; Freddie J. Heather; Tim P. Lynch; Neville S. Barrett; Jemina Stuart‐Smith
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
Psychometric properties of the Chinese version of the Infertility Self-Efficacy Scale
err2016-09-01
err0
errOAAI
errBing Fu; Pingping Yan; Hang Yin; Shujuan Zhu; Qing Liu; Yulan Liu; Chanyuan Dai; Guanxiu Tang; Chunli Yan; Jun Lei
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
学者 查看更多内容