Skip to main content
QUICK REVIEW

[論文レビュー] A Survey on Machine Learning Techniques for Source Code Analysis

Tushar Sharma, Maria Kechagia|arXiv (Cornell University)|Oct 18, 2021
Software Engineering Research参考文献 350被引用数 11
ひとこと要約

本サーベイは、2011年から2021年までの機械学習を用いたソースコード解析に関する479件の一次研究を統合し、12のソフトウェア工学タスクに分類し、主な機械学習技術、ツール、データセットを特定するとともに、再現可能性やハードウェア要件といった課題を浮き彫りにした。本調査は、成長著しいML4SE分野における研究者および実務家を支援する包括的かつ構造的な概要を提供する。

ABSTRACT

The advancements in machine learning techniques have encouraged researchers to apply these techniques to a myriad of software engineering tasks that use source code analysis, such as testing and vulnerability detection. Such a large number of studies hinders the community from understanding the current research landscape. This paper aims to summarize the current knowledge in applied machine learning for source code analysis. We review studies belonging to twelve categories of software engineering tasks and corresponding machine learning techniques, tools, and datasets that have been applied to solve them. To do so, we conducted an extensive literature search and identified 479 primary studies published between 2011 and 2021. We summarize our observations and findings with the help of the identified studies. Our findings suggest that the use of machine learning techniques for source code analysis tasks is consistently increasing. We synthesize commonly used steps and the overall workflow for each task and summarize machine learning techniques employed. We identify a comprehensive list of available datasets and tools useable in this context. Finally, the paper discusses perceived challenges in this area, including the availability of standard datasets, reproducibility and replicability, and hardware resources.

研究の動機と目的

  • 多様なソフトウェア工学タスクにわたるソースコード解析における機械学習応用の包括的かつ最新の統合的概要を提供すること。
  • 本分野で最も一般的に使用されている機械学習技術、ツール、データセットを特定および分類すること。
  • 再現性の欠如、標準データセットの不足、高いハードウェア要件といった継続的な課題を浮き彫りにすること。
  • 利用可能なリソースを統合し、今後の手法の改善を導くことで、研究者および実務家を支援すること。
  • 継続的関連性とコミュニティによる拡張を保証する、動的でオープンソースの文献リポジトリを確立すること。

提案手法

  • 包括的な検索語と段階的クエリ最適化を用いて、主要なデジタル図書館を対象に広範な文献検索を実施した。
  • 機械学習技術をソフトウェア工学タスクのソースコード解析に適用した479件の一次研究を選定するため、厳密な含む・除外基準を適用した。
  • 研究を12のソフトウェア工学タスクカテゴリに体系的に分類し、各カテゴリにサブカテゴリとワークフロー手順を設定した。
  • 各研究から、機械学習技術、ツール、データセット、実験設定などのメタデータを抽出・統合した。
  • 2名以上の著者による二重レビューを実施し、データ抽出の正確性と一貫性を検証した。
  • 公開・オープンソースのウェブサイトおよびスプレッドシート(https://github.com/tushartushar/ML4SCA)を構築し、動的かつ拡張可能な文献リポジトリとして提供した。

実験結果

リサーチクエスチョン

  • RQ1ソースコード解析における機械学習技術の応用が最も顕著に見られるソフトウェア工学タスクは何か?
  • RQ2本分野で最も一般的に使用されている機械学習モデル、ツール、データセットは何か?
  • RQ3さまざまなソースコード解析タスク間で繰り返し見られるワークフローとメソドロジー的パターンは何か?
  • RQ4機械学習ベースのソースコード解析研究における再現性、スケーラビリティ、アクセス可能性を阻害する主な課題は何か?
  • RQ5コミュニティは、標準化、ツール化、リソースの可用性をどのように向上させ、分野を前進させることができるか?

主な発見

  • 2011年から2021年の間に、ソースコード解析における機械学習の応用は一貫して増加傾向にあり、479件の一次研究が同定された。
  • 深層学習モデル、特にニューラルネットワークに基づくものが多く、脆弱性検出、コード要約、欠陥予測などのタスクで広く使用されている。
  • 多くの研究が、コード表現としてコード埋め込み(例:CodeBERT、GraphCodeBERT)に依存しており、事前学習モデルの強力なトレンドがうかがえる。
  • 研究が急増しているにもかかわらず、ツールやデータセットを体系的に文書化しているサーベイは少数にとどまり、本サーベイがそのギャップを埋めている。
  • 再現性と再現可能性は依然として大きな課題であり、データセットの不一致使用や標準化された評価プロトコルの欠如が原因である。
  • 特に大規模な深層学習モデルではハードウェアリソースの要件が高く、機関インfraを備えていない研究者にとってはアクセスが制限される。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。