Enhanced Bug Prediction in JavaScript Programs with Hybrid Call-Graph Based Invocation Metrics
G\'abor Antal, Zolt\'an T\'oth, P\'eter Heged\H{u}s, Rudolf Ferenc

TL;DR
This paper introduces a hybrid static and dynamic call-graph based metric for bug prediction in JavaScript, demonstrating that combining these metrics improves machine learning model performance in identifying buggy functions.
Contribution
The paper proposes a novel hybrid invocation metric for JavaScript bug prediction, combining static and dynamic analysis to enhance model accuracy over static metrics alone.
Findings
Hybrid metrics improve prediction performance by 2-10%.
Replacing static metrics with hybrid ones enhances model accuracy.
Using all metrics together yields the best results.
Abstract
Bug prediction aims at finding source code elements in a software system that are likely to contain defects. Being aware of the most error-prone parts of the program, one can efficiently allocate the limited amount of testing and code review resources. Therefore, bug prediction can support software maintenance and evolution to a great extent. In this paper, we propose a function level JavaScript bug prediction model based on static source code metrics with the addition of a hybrid (static and dynamic) code analysis based metric of the number of incoming and outgoing function calls (HNII and HNOI). Our motivation for this is that JavaScript is a highly dynamic scripting language for which static code analysis might be very imprecise; therefore, using a purely static source code features for bug prediction might not be enough. Based on a study where we extracted 824 buggy and 1943…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software Engineering Techniques and Practices
