Искусственный интеллект

Copilot улучшает качество кода

Copilot улучшает качество кода

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

Год назад исследование GitHub показало, что 85 % разработчиков чувствовали себя увереннее в своем коде, а 88 % - в потоке, когда использовали GitHub Copilot, см. Copilot Chat Improves Confidence and Enjoyment

Совсем недавно Statista.com сообщила, что 44 % разработчиков используют GitHub Copilot на регулярной основе. Такой уровень использования говорит о том, что нам необходимо изучить вопрос о том, лучше или хуже качество кода, написанного с использованием Copilot, чем без него.

Чтобы ответить на этот вопрос, команда GitHub Customer Research провела рандомизированное контролируемое исследование, чтобы понять, насколько функциональным, читаемым, надежным, сопровождаемым, лаконичным и заслуживающим одобрения является код, написанный с помощью GitHub Copilot.

Для исследования ученые GitHub привлекли 202 разработчика с опытом работы на Python не менее пяти лет. Половине из них случайным образом был предоставлен доступ к GitHub Copilot, а другой половине было предписано не использовать никаких инструментов искусственного интеллекта. Всем участникам было предложено выполнить одно и то же задание по написанию конечных точек API для веб-сервера, а полученный код был оценен с помощью модульных тестов. С точки зрения функциональности юнит-тесты показали, что код, написанный с помощью Copilot, был явно лучше: 61 % кода разработчиков прошел все 10 юнит-тестов по сравнению с 39 % среди тех, кто не использовал Copilot.

Следующей частью исследования была экспертная оценка, которую проводили разработчики, чей код прошел все 10 модульных тестов. Им было поручено в случайном порядке провести слепую экспертизу анонимных материалов, как написанных с использованием GitHub Copilot, так и без него. Рецензенты обнаружили, что в коде, написанном с использованием GitHub Copilot, было меньше ошибок в читабельности кода. В частности, при использовании GitHub Copilot на одну ошибку в коде приходилось 18,2 строки кода, а без него - только 16,0.

В блоге, где обсуждаются эти результаты, Джаред Бауэр пишет

Это равносильно тому, что с GitHub Copilot в среднем на 13,6 % больше строк кода без ошибок в коде (p=0,002). Это может привести к экономии в реальном времени, поскольку каждая из этих ошибок в коде требует действий со стороны разработчика. Например, без использования GitHub Copilot команды могут столкнуться с увеличением количества комментариев или предложений на 13 %, что накапливается со временем.

Рецензенты также оценили код, написанный с использованием GitHub Copilot, как более читабельный на 3,62 %, более надежный на 2,94 %, более поддерживаемый на 2,47 % и более лаконичный на 4,16 %. Хотя эти различия были небольшими, они были статистически значимыми и способствовали улучшению кодовой базы.

На заключительном этапе рецензенты проверили, насколько велика вероятность одобрения кода, написанного с помощью Copilot, по сравнению с кодом, написанным без такой помощи, и обнаружили, что это так:

Эксперты на 5 % чаще одобряли код, написанный с помощью GitHub Copilot, прокомментировал Бауэр:

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

Расшифровывая результаты исследования, Бауэр пишет:

Хотя количество коммитов и измененных строк кода было значительно выше в группе GitHub Copilot, средний размер коммита был немного меньше. Это говорит о том, что GitHub Copilot позволил разработчикам проводить итерации кода для улучшения его качества.

Исследовательская группа пришла к выводу, что, поскольку разработчики тратили меньше времени на приведение кода в функциональное состояние, они могли больше сосредоточиться на улучшении его качества. Этот вывод согласуется с предыдущими результатами исследования, согласно которым разработчики чувствовали себя более уверенно, используя Copilot.

Читайте также

ИИ не бьется о стену, он просто становится слишком умным для эталонов, считает Anthropic

По мере совершенствования самокоррекции и самообоснования новейшие LLM обнаруживают новые возможности с такой скоростью, что измерить все, на что они способны, становится все труднее.

Ген ИИ может ускорить кодирование, но предприятиям все равно следует учитывать риски

Организации, желающие финансировать разработку программного обеспечения на основе искусственного интеллекта ради ожидаемых преимуществ, должны также понимать, что это может привести к негативным последствиям.

Тестирование программного обеспечения с помощью искусственного интеллекта завоевывает все больше сторонников, но опасения сохраняются

Вопрос уже не в том, приведет ли генный ИИ и новые технологии к автоматизации тестирования ПО, а в том, когда и как. Однако сторонникам этой идеи необходимо преодолеть сопротивление организации.