Machine Learning for Software Engineering: A Tertiary Study
This study synthesizes existing research to identify gaps and propose future directions for applying machine learning in software engineering, though it is incremental as a review of reviews.
This tertiary study analyzed 83 reviews covering 6,117 primary studies on machine learning applications in software engineering from 2009-2022, finding that ML is most commonly used for software quality and testing while human-centered areas remain challenging.
Machine learning (ML) techniques increase the effectiveness of software engineering (SE) lifecycle activities. We systematically collected, quality-assessed, summarized, and categorized 83 reviews in ML for SE published between 2009-2022, covering 6,117 primary studies. The SE areas most tackled with ML are software quality and testing, while human-centered areas appear more challenging for ML. We propose a number of ML for SE research challenges and actions including: conducting further empirical validation and industrial studies on ML; reconsidering deficient SE methods; documenting and automating data collection and pipeline processes; reexamining how industrial practitioners distribute their proprietary data; and implementing incremental ML approaches.