A Replication Study in JavaScript Projects
Comprehensive analysis of the relationship between code smells and fault-proneness across 50 JavaScript projects, expanding on previous research with enhanced datasets and methodologies.
Investigation of code smell lifespan across JavaScript projects, revealing significant variations in removal patterns and persistence rates across different project types.
Comparative analysis between smelly and non-smelly files showing mixed results: 18 projects favor smelly files, 21 show opposite behavior, 11 show no difference.
Assessment of specific code smells' contributions to fault-proneness, identifying Variable Re-assign, Complex Code, and Assignment in Conditionals as top risk factors.
Variable Re-assign: 34.60% increased fault risk
Complex Code: 31.40% increased fault risk
Assignment in Conditionals: 30.00% increased fault risk
Most prevalent smells: Variable Re-assign (3.4M instances), Lengthy Lines (3.1M), and Chained Methods (1.4M) represent the majority across analyzed codebases.
32 projects show high removal rates (>70%), 10 show low removal (<45%), 8 show moderate removal. Mean survivability ranges from 59 days to 3,350 days.
Click on different code smells to see their associated fault-proneness risk levels
We analyzed 50 JavaScript projects selected from GitHub using systematic criteria:
Complete dataset with smell instances, project metadata, and fault information for all 50 projects
Download CSVFull research paper with detailed methodology, results, discussion, and threats to validity
Read Paper