Proceedings Article10.1145/2950290.2950308
Discovering bug patterns in JavaScript
Quinn Hanam,Fernando Brito,Ali Mesbah +2 more
- 01 Nov 2016
- pp 144-156
105
TL;DR: A novel semi-automatic technique, called BugAID, is proposed, for discovering the most prevalent and detectable bug patterns in JavaScript, based on unsupervised machine learning using language-construct-based changes distilled from AST differencing of bug fixes in the code.
read more
Abstract: JavaScript has become the most popular language used by developers for client and server side programming. The language, however, still lacks proper support in the form of warnings about potential bugs in the code. Most bug finding tools in use today cover bug patterns that are discovered by reading best practices or through developer intuition and anecdotal observation. As such, it is still unclear which bugs happen frequently in practice and which are important for developers to be fixed. We propose a novel semi-automatic technique, called BugAID, for discovering the most prevalent and detectable bug patterns. BugAID is based on unsupervised machine learning using language-construct-based changes distilled from AST differencing of bug fixes in the code. We present a large-scale study of common bug patterns by mining 105K commits from 134 server-side JavaScript projects. We discover 219 bug fixing change types and discuss 13 pervasive bug patterns that occur across multiple projects and can likely be prevented with better tool support. Our findings are useful for improving tools and techniques to prevent common bugs in JavaScript, guiding tool integration for IDEs, and making developers aware of common mistakes involved with programming in JavaScript.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
CoCoNuT: combining context-aware neural translation models using ensemble for program repair
Thibaud Lutellier,Hung Viet Pham,Lawrence Pang,Yitong Li,Moshi Wei,Lin Tan +5 more
- 18 Jul 2020
TL;DR: A new G&V technique—CoCoNuT, which uses ensemble learning on the combination of convolutional neural networks (CNNs) and a new context-aware neural machine translation (NMT) architecture to automatically fix bugs in multiple programming languages.
376
DeepBugs: a learning approach to name-based bug detection
Michael Pradel,Koushik Sen +1 more
- 24 Oct 2018
TL;DR: DeepBugs is presented, a learning approach to name-based bug detection, which reasons about names based on a semantic representation and which automatically learns bug detectors instead of manually writing them.
325
Why do developers use trivial packages? an empirical case study on npm
Rabe Abdalkareem,Olivier Nourry,Sultan Wehaibi,Suhaib Mujahid,Emad Shihab +4 more
- 21 Aug 2017
TL;DR: It is found that trivial packages are common and are increasing in popularity, making up 16.8% of the studied npm packages and 38,000 JavaScript applications, and that developers should be careful about which trivial packages they decide to use.
174
FixMiner: Mining relevant fix patterns for automated program repair
Anil Koyuncu,Kui Liu,Tegawendé F. Bissyandé,Dongsun Kim,Jacques Klein,Martin Monperrus,Yves Le Traon +6 more
TL;DR: In this paper, the authors propose a systematic and automated approach to mine relevant and actionable fix patterns based on an iterative clustering strategy applied to atomic changes within patches, which can be leveraged to extract generic fix actions.
DeepDelta: learning to repair compilation errors
Ali Mesbah,Andrew Rice,Emily Johnston,Nick Glorioso,Edward Aftandilian +4 more
- 12 Aug 2019
TL;DR: A novel approach that automatically learns patterns with a deep neural network and suggests program repairs for the most costly classes of build-time compilation failures, namely missing symbols and mismatched method signatures is proposed.
140
References
The WEKA data mining software: an update
TL;DR: This paper provides an introduction to the WEKA workbench, reviews the history of the project, and, in light of the recent 3.6 stable release, briefly discusses what has been added since the last stable version (Weka 3.4) released in 2003.
•Proceedings Article
A density-based algorithm for discovering clusters a density-based algorithm for discovering clusters in large spatial databases with noise
Martin Ester,Hans-Peter Kriegel,Jörg Sander,Xiaowei Xu +3 more
- 02 Aug 1996
TL;DR: In this paper, a density-based notion of clusters is proposed to discover clusters of arbitrary shape, which can be used for class identification in large spatial databases and is shown to be more efficient than the well-known algorithm CLAR-ANS.
20.3K
•Proceedings Article
A density-based algorithm for discovering clusters in large spatial Databases with Noise
Martin Ester,Hans-Peter Kriegel,Jörg Sander,Xiaowei Xu +3 more
- 01 Jan 1996
TL;DR: DBSCAN, a new clustering algorithm relying on a density-based notion of clusters which is designed to discover clusters of arbitrary shape, is presented which requires only one input parameter and supports the user in determining an appropriate value for it.
Finding bugs is easy
David Hovemeyer,William Pugh +1 more
- 23 Oct 2004
TL;DR: It is found that even well tested code written by experts contains a surprising number of obvious bugs and that simple automatic techniques can be effective at countering the impact of both ordinary mistakes and misunderstood language features.
Bugs as deviant behavior: a general approach to inferring errors in systems code
Dawson Engler,David Yu Chen,Seth Hallem,Andy Chou,Benjamin Chelf +4 more
- 21 Oct 2001
TL;DR: Six checkers are developed that extract beliefs by tailoring rule "templates" to a system --- for example, finding all functions that fit the rule template "a must be paired with b."
836