Насколько эффективно Github Copilot?

Насколько эффективно Github Copilot?

6 июня 2025 г.

Аннотация и 1. Введение

2. Методология и 2.1. Исследовательские вопросы

2.2. Сбор данных

2.3. Маркировка данных

2.4. Извлечение данных

2.5. Анализ данных

3. Результаты и интерпретация и 3.1. Тип проблем (RQ1)

3.2. Тип причин (RQ2)

3.3. Тип решений (RQ3)

4. Последствия

4.1. Последствия для пользователей Copilot

4.2. Последствия для команды Copilot

4.3. Последствия для исследователей

5. Угрозы достоверности

6. Связанная работа

6.1. Оценка качества кода, генерируемого Copilot

6.2. Влияние Копилота на практическое развитие и 6.3. Окончательное резюме

7. Выводы, доступность данных, подтверждения, заявление о вкладе и ссылки на кредит

6.1. Оценка качества кода, генерируемого Copilot

Несколько исследований были сосредоточены на различных аспектах качества кода, генерируемых Copilot. Siddiq et al. (2022) проанализировал распространенность запахов кода в наборах данных, используемых для обучения инструментов генерации кода, таких как Copilot, и наблюдал наличие 18 типов запахов кода в предложениях, предоставленных Copilot. Netistiren et al. (2022) оценить достоверность, правильность и эффективность сгенерированного кода, и их результаты показывают, что Copilot способен генерировать допустимый код с уровнем успеха 91,5%. Pearce et al. (2022) побудил Copilot для создания кода, связанного с уязвимостью сетевой безопасности Highrisk, чтобы исследовать условия, которые могут привести к тому, что Copilot предлагает небезопасенный код. Они обнаружили, что уязвимости присутствовали в 40% случаев. Нгуен и Нади (2022) провели исследование с использованием 33 задач LeetCode, чтобы оценить правильность и понятность Copilot на четырех различных языках программирования. Они обнаружили, что предложения Copilot имели низкую цикломатическую и когнитивную сложность и не проявляли значительных различий между языками программирования. Moradi Dakhel et al. (2023) исследовали возможности копилота в двух разных задачах по программированию и обнаружили, что он смог предоставить решения практически для всех основных алгоритмических проблем, но некоторые из решений были глюми и не воспроизводимыми. Исследование, проведенное Asare et al. (2023) предполагает, что Copilot не будет генерировать код с теми же уязвимостями, что и те, которые были ранее представлены человеческими разработчиками в целом. Sobania et al. (2022) оценил эффективность копировального уровня по стандартным задачам синтеза программы и сравнил его с результатами литературы по генетическому программированию. Они обнаружили, что Copilot продемонстрировал более зрелую производительность. Mastropaolo et al. (2023) направлены на изучение того, приведут ли разные, но семантически эквивалентные описания естественного языка к генерации тех же рекомендуемых функций. Их результаты показывают, что различия между семантически эквивалентными описаниями могут повлиять на правильность сгенерированного кода. Аль Мади (2023) исследовал читабельность и визуальный осмотр кода, сгенерированного Copilot. Они раскрыли важность того, чтобы разработчики были осторожны и бдительны при работе с инструментами генерации кода, такими как Copilot. Gustavo et al. (2023) исследовали влияние программирования с помощью LLM, которые поддерживают копилот. Они обнаружили, что пользователи, помогающие LLMS, производят критические ошибки безопасности со скоростью не более на 10% больше, чем тех, кто не помогает.

6.2. Влияние Копилота на практическое развитие

Несколько исследований были сосредоточены на изучении эффективности Copilot в реальной разработке программного обеспечения, а также на мнениях практикующих программного обеспечения. Wang et al. (2023a) провел интервью с 15 практикующими, а затем опросили 599 практикующих из 18 ИТ -компаний в отношении их ожиданий завершения кода. Они обнаружили, что 13% участников использовали Copilot в качестве инструмента завершения кода. Jaworski и Piotrkowski (2023) подготовили опросную анкету, состоящую из 18 вопросов, чтобы исследовать отношение разработчиков к копированию. Результаты исследований показывают, что большинство людей имеют позитивное отношение к инструменту, но немногие участники проявили обеспокоенность по поводу проблем безопасности, связанных с использованием Copilot. Imai (2022) провел эксперименты с 21 участниками, чтобы сравнить эффективность Copilot в паре с программистами человека с точки зрения производительности и качества кода. Результаты показывают, что, хотя Copilot может повысить производительность, добавляя больше строк кода, сгенерированное качество кода ниже из -за необходимости удаления большего количества строк кода во время тестирования. Barke et al. (2023) наблюдали 20 участников, которые сотрудничали с Copilot для выполнения различных задач по программированию на четырех языках, и обнаружили, что взаимодействие с помощником по программированию было бимодальным в различном режиме сотрудничества. Bird et al. (2023) провели три исследования, направленные на понимание того, как разработчики используют копилот. Их выводы показывают, что разработчики потратили много времени на оценку предложений, полученных Copilot, вместо выполнения своих задач кодирования. Peng et al. (2023) представили результаты контролируемого эксперимента с использованием Copilot в качестве программиста AI. Они обнаружили, что экспериментальная группа, которая имела доступ к копированию, выполнила задачи на 55,8% быстрее, чем контрольная группа. Zhang et al. (2023) исследовали языки программирования, IDE, связанные технологии, внедренные функции, преимущества, ограничения и проблемы при использовании Copilot. Vaithilingam et al. (2022) провел пользовательское исследование с участием 24 участников для оценки удобства использования Copilot и его интеграции в рабочий процесс программирования. Они обнаружили, что, хотя Copilot не может напрямую повысить эффективность выполнения задач программирования, он служит ценной отправной точкой для программистов, экономя время, потраченное на поиск. Liang et al. (2024) провел опрос между разработчиками программного обеспечения и обнаружил, что основной мотивацией для разработчиков использование помощников по программированию ИИ является быстрое сокращение клавишных, выполнение задач программирования и синтаксиса отзывов. Однако влияние использования этих инструментов для создания потенциальных решений не является значительным. Gustavo et al. (2023) проанализировали использование копилота для программирования и сравнили его с более ранними формами помощи программиста. Они также исследовали потенциальные проблемы, которые могут возникнуть при применении LLMS для программирования. Ziegler et al. (2024) стремились оценить влияние Copilot на производительность пользователей посредством тематического исследования, направленного на согласование восприятия пользователя с эмпирическими данными. Их исследования подчеркивают аспекты, в которых Copilot повышает производительность кодирования пользователей и то, как он достигает этих улучшений.

6.3. Окончательное резюме

В большинстве предыдущих исследований использовались контролируемые эксперименты или опросы для оценки эффективности филота. Наше исследование основано на перспективе разработчиков программного обеспечения, сосредотачиваясь на реальных проблемах, с которыми они сталкиваются при использовании Copilot, исследуя основные причины и жизнеспособные решения. Анализируя результаты исследования, мы стремились предоставить информацию для пользователей Copilot, команды Copilot и исследователей. Кроме того, мы собрали данные с трех популярных платформ разработки программного обеспечения и форумов, то есть, выпуски GitHub, дискуссии GitHub и, следовательно, для обеспечения полноценной нашего набора данных.

Авторы:

(1) Xiyu Zhou, Школа компьютерных наук, Университет Ухан, Ухан, Китай (xiyuzhou@whu.edu.cn);

(2) Пенг Лян (автор -корреспондент), Школа компьютерных наук, Университет Ухан, Ухан, Китай (liangp@whu.edu.cn);

(3) Beiqi Zhang, Школа компьютерных наук, Университет Ухан, Ухан, Китай (zhangbeiqi@whu.edu.cn);

(4) Зенгьян Ли, Школа компьютерных наук, Центральный Китайский Университет, Ухан, Китай (Zengyangli@ccnu.edu.cn);

(5) Аакаш Ахмад, Школа компьютеров и коммуникаций, Университет Ланкастера Лейпциг, Лейпциг, Германия (ahmad.aakash@gmail.com);

(6) Mojtaba Shahin, Школа компьютерных технологий, Университет RMIT, Мельбурн, Австралия (mojtaba.shahin@rmit.edu.au);

(7) Мухаммед Васим, факультет информационных технологий, Университет Цзиваскила, Jyväskylä, Финляндия (muhammad.m.waseem@jyu.fi).


Эта статья естьДоступно на ArxivПод CC по лицензии 4.0.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE