Zhang, J;
Li, F;
Hao, D;
Wang, M;
Tang, H;
Zhang, L;
Harman, M;
(2019)
A Study of Programming Languages and Their Bug Resolution Characteristics.
IEEE Transactions on Software Engineering
10.1109/TSE.2019.2961897.
(In press).
Preview |
Text
PLStudy_arXiv.pdf - Accepted Version Download (2MB) | Preview |
Abstract
IEEE Bug resolution is an essential part of software development. The impact of programming language on bug resolution has been a topic of much debate. Taking Python as an example, some hold the view that bugs in the language are easy to handle because its code is easy to read and understand, while others believe that the absence of static typing leads to more bug-handling effort. This paper presents the first large-scale study that investigates the connection between programming language and bug resolution characteristics. It follows the recent trend of empirical scientific reformulation of long-standing, but hitherto anecdotal, `great debates' about the influence of programming language and paradigm on software engineering concerns. We analyse bug resolution data from over 70 million SLOC drawn from 3 million commits to 600 GitHub projects in 10 languages. The results suggest that statistically significant differences in resolution time and patch size exist between different languages and language categories. In particular, Java bug resolution consumes less elapsed time from raise to resolve, while Ruby consumes more. We also found that patches tend to touch significantly more files for strongly typed and for static languages (as one might expect given the need to maintain type annotations). However, despite this apparent extra effort, we found evidence for a significantly lower elapsed resolution time for bug resolution committed to projects constructed from statically typed languages. This finding sheds further empirical light on the debate about the importance of static typing. Indeed, more generally, we found no evidence for any correlation between bug-resolution time and size (lines or files touched), nor any evidence for correlation with other potential confounding factors, such as problem features (e.g., size, age, and commit number) and target domain.
Type: | Article |
---|---|
Title: | A Study of Programming Languages and Their Bug Resolution Characteristics |
Open access status: | An open access version is available from UCL Discovery |
DOI: | 10.1109/TSE.2019.2961897 |
Publisher version: | http://dx.doi.org/10.1109/TSE.2019.2961897 |
Language: | English |
Additional information: | This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions. |
Keywords: | Computer bugs, Software engineering, Java, Correlation, Software, Data mining |
UCL classification: | UCL UCL > Provost and Vice Provost Offices > UCL BEAMS UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science |
URI: | https://discovery.ucl.ac.uk/id/eprint/10099088 |
Archive Staff Only
View Item |