A Study of Single Statement Bugs Involving Dynamic Language Features
Dynamic language features are widely available in programming languages to implement functionality that can adapt to multiple usage contexts, enabling reuse. Functionality such as data binding, object-relational mapping and user interface builders can be heavily dependent on these features. However, their use has risks and downsides as they affect the soundness of static analyses and techniques that rely on such analyses (such as bug detection and automated program repair). They can also make software more error-prone due to potential difficulties in understanding reflective code, loss of compile-time safety and incorrect API usage. In this paper, we set out to quantify some of the effects of using dynamic language features in Java programs – that is, the error-proneness of using those features with respect to a particular type of bug known as single statement bugs. By mining 2,024 GitHub projects, we found 139 single statement bug instances (falling under 10 different bug patterns), with the highest number of bugs belonging to three specific patterns: Wrong Function Name, Same Function More Args and Change Identifier Used. These results can help practitioners to quantify the risk of using dynamic techniques over alternatives (such as code generation) We hope this classification raises attention on choosing dynamic APIs that are likely to be error-prone, and provides developers a better understanding of the causes.
Tue 17 MayDisplayed time zone: Eastern Time (US & Canada) change
02:00 - 02:50 | Session 11: Debugging 2Research / Early Research Achievements (ERA) / Tool Demonstration at ICPC room Chair(s): Fernanda Madeiral KTH Royal Institute of Technology | ||
02:00 7mTalk | Context-based Cluster Fault Localization Research Junji Yu Chongqing University, Yan Lei School of Big Data & Software Engineering, Chongqing University, Huan Xie Chongqing University, Lingfeng Fu Chongqing University, Chunyan Liu Chongqing University Pre-print Media Attached | ||
02:07 4mTalk | A Study of Single Statement Bugs Involving Dynamic Language Features Early Research Achievements (ERA) Li Sui Massey University, New Zealand, Shawn Rasheed Massey University, Amjed Tahir Massey University, Jens Dietrich Victoria University of Wellington Pre-print Media Attached | ||
02:11 7mTalk | XAI4FL: Enhancing Spectrum-Based Fault Localization with Explainable Artificial Intelligence Research Ratnadira Widyasari Singapore Management University, Singapore, Gede Artha Azriadi Prana Singapore Management University, Stefanus Agus Haryono Singapore Management University, Yuan Tian Queens University, Kingston, Canada, Hafil Noer Zachiary Singapore Management University, David Lo Singapore Management University Pre-print | ||
02:18 4mTalk | Do Visual Issue Reports Help Developers Fix Bugs? – A Preliminary Study of Using Videos and Images to Report Issues on GitHub – Early Research Achievements (ERA) Hiroki Kuramoto Kyushu University, Masanari Kondo Kyushu University, Yutaro Kashiwa Kyushu University, Yuta Ishimoto Kyushu University, Kaze Shindo Kyushu University, Yasutaka Kamei Kyushu University, Naoyasu Ubayashi Kyushu University Media Attached | ||
02:22 7mTalk | Find Bugs in Static Bug Finders Research Junjie Wang Institute of Software at Chinese Academy of Sciences, Yuchao Huang Institute of Software Chinese Academy of Sciences, Song Wang York University, Qing Wang Institute of Software at Chinese Academy of Sciences Pre-print Media Attached | ||
02:29 4mTalk | didiffff: A Viewer for Comparing Changes in both Code and Execution Trace Tool Demonstration Tetsuya Kanda Osaka University, Kazumasa Shimari Nara Institute of Science and Technology, Katsuro Inoue Osaka University Pre-print Media Attached | ||
02:33 17mLive Q&A | Q&A-Paper Session 11 Research |