[論文レビュー] Practices and Challenges of Using GitHub Copilot: An Empirical Study
本研究では、169件のStack Overflow投稿および655件のGitHub Discussionsを分析することで、GitHub Copilotの実世界における実践的使用法と課題を実証的に調査した。調査結果から、開発者は主にJavaScriptおよびPythonをVisual Studio Codeで使用し、データ処理タスクにCopilotを活用していることが明らかになった。コード生成の有用性は認められるが、統合およびコード品質の面での課題もあり、Copilotは慎重な採用意思決定を要する二面性を持つツールであることが示された。
With the advances in machine learning, there is a growing interest in AI-enabled tools for autocompleting source code. GitHub Copilot, also referred to as the "AI Pair Programmer", has been trained on billions of lines of open source GitHub code, and is one of such tools that has been increasingly used since its launch on June 2021. However, little effort has been devoted to understanding the practices and challenges of using Copilot in programming with auto-completed source code. To this end, we conducted an empirical study by collecting and analyzing the data from Stack Overflow (SO) and GitHub Discussions. More specifically, we searched and manually collected 169 SO posts and 655 GitHub discussions related to the usage of Copilot. We identified the programming languages, IDEs, technologies used with Copilot, functions implemented, benefits, limitations, and challenges when using Copilot. The results show that when practitioners use Copilot: (1) The major programming languages used with Copilot are JavaScript and Python, (2) the main IDE used with Copilot is Visual Studio Code, (3) the most common used technology with Copilot is Node.js, (4) the leading function implemented by Copilot is data processing, (5) the significant benefit of using Copilot is useful code generation, and (6) the main limitation encountered by practitioners when using Copilot is difficulty of integration. Our results suggest that using Copilot is like a double-edged sword, which requires developers to carefully consider various aspects when deciding whether or not to use it. Our study provides empirically grounded foundations and basis for future research on the role of Copilot as an AI pair programmer in software development.
研究の動機と目的
- ソフトウェア開発者が実世界のプログラミング文脈で実際にGitHub Copilotをどのように使用しているかを理解すること。
- Copilotと最も頻繁に使用されるプログラミング言語、IDE、および技術を特定すること。
- Copilotを使用する際に開発者が直面する主な利点、制限および課題を特定すること。
- AI支援プログラミング分野における今後の研究およびツール改善のための、実証的根拠に基づいた知見を提供すること。
提案手法
- 『copilot』を検索キーワードとして使用し、169件のStack Overflow投稿および655件のGitHub Discussionsを収集・分析した。
- 複数名による手動によるデータラベリング、抽出、分析を実施し、一貫性を確保しバイアスを低減した。
- インターアノテーター間合意度を検証するために、ピLOTラベル付けフェーズを実施し、CohenのKappa係数(0.773)を用いた。
- プログラミング言語、IDE、技術、実装された関数、利点、制限、課題のカテゴリに応じて応答を分類した。
- 著者間での反復的レビューおよび議論を通じて、不一致を解消し、結果の信頼性を確保した。
- 再現性および検証性を高めるために、全データセットを公開した。

実験結果
リサーチクエスチョン
- RQ1GitHub Copilotと最も頻繁に使用されるプログラミング言語、IDE、技術は何か?
- RQ2Copilotのコード提案を用いて最も頻繁に実装される関数の種類は何か?
- RQ3開発者が報告する主な利点は何か?
- RQ4開発者がCopilotを使用する際に直面する主な制限および課題は何か?
- RQ5実際の使用において、Copilotの利点と制限はどのように相互作用しているか?
主な発見
- JavaScriptおよびPythonが、GitHub Copilotと最も頻繁に使用されるプログラミング言語である。
- Visual Studio Codeが、Copilotと併用して使用される主要なIDEである。
- Node.jsが、開発ワークフローにおいてCopilotと最も頻繁に併用される技術である。
- データ処理が、Copilotのコード提案を用いて最も頻繁に実装される関数である。
- 開発者が報告する最も顕著な利点は、特にボイラープレートや繰り返し作業向けの有用なコード生成である。
- 主な制限は、既存の開発ワークフローへの統合が困難であることであり、しばしばイライラを引き起こし生産性の低下を招く。

より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。