Новый инструмент Microsoft использует искусственный интеллект для поиска багов в коде

24.12.2021      16664

Microsoft представила новый инструмент на базе искусственного интеллекта. BugLab использует технологии глубокого обучения, чтобы находить баги в коде и давать советы по их исправлению.

Зачем это нужно

Компания Rollbar провела исследование, в котором приняли участие более 950 разработчиков. Эксперты установили, что 38% опрошенных уделяют исправлению ошибок более четверти рабочего времени, 26% – более половины.

В Microsoft предложили ускорить багфикс. На конференции NeurIPS 2021 специалисты представили статью «Самоконтролируемое обнаружение и устранение ошибок» и модель глубокого обучения для поиска и исправления багов в коде.

Исследователи пояснили: на создание BugLab их вдохновила игра в прятки. Модель обходится без использования размеченных данных, а значит, ее легко адаптировать практически для любого кода на любом языке программирования.

Чтобы находить ошибки, нужно не только понимать структуру кода. Модель также должна понимать суть комментариев, которые нередко оставляют разработчики.

Например, в этом фрагменте программист создал функцию, которая должна обрезать имя до длины в 22 символа. Но по ошибке он использовал не ту операцию сравнения. BugLab нашла проблему и предложила исправление:

 

 

При этом стандартные средства вроде синтаксических анализаторов не увидели бы проблемы. Людям также сложно найти подобные ошибки и опечатки. А существующим системам искусственного интеллекта трудно обучаться, потому что наборов данных с явно аннотированными ошибками не так уж и много.

Как работает BugLab

В BugLab используются две конкурирующие модели, которые учатся, играя в своеобразный аналог игры «прятки». В его основе – генеративные состязательные сети (GAN).

Первая модель, селектор ошибок, обучается на примерах кода, который считает верным. Затем она решает, в каком месте программы добавить ошибку – например, где заменить «+» на «-». А после этого вторая модель, детектор ошибок, пытается определить, есть ли в коде баг, и если да, то как его исправить.

 

 

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

Разработчики отметили, что теоретически BugLab можно научить обнаруживать даже самые сложные ошибки. Но это долго и затратно, к тому же чтобы добиться высокой точности, нужны дополнительные исследования. Вместо этого в Microsoft сконцентрировались на наиболее часто возникающих ошибках: это неправильные сравнения (например, использование «<=» вместо «<» или «>»), неверные логические операторы (использование «и» вместо «или» и наоборот), некорректное использование переменных (например, неправильное использование «i» вместо «j») и некоторые другие.

Какие результаты выдает BugLab

Для тестирования BugLab рассматривали код на Python. Его брали из открытых репозиториев на GitHub.

В ходе экспериментов разработчики установили, что BugLab справляется с задачей на 30% лучше других систем, например, детекторов, обученных на случайно вставленных ошибках. При этом найти и автоматически исправить уже получается около 26% ошибок.

Интересный факт: детектор смог обнаружить как минимум 19 ранее неизвестных ошибок в реальных проектах GitHub с открытым исходным кодом. Правда, и ложных срабатываний было немало, поэтому до промышленного внедрения инструмента пока далеко.


Автор:
Обозреватель


В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

«Сбер» начнет использовать российские TLS-сертификаты для платежного шлюза

Новость Безопасность ИТ-новость Минцифры

Банк запланировал переход на сертификаты, выпущенные Национальным удостоверяющим центром (НУЦ) Минцифры, на 30 января 2023 года. Клиентам необходимо добавить на свои серверы корневой сертификат ведомства.

30.01.2023    1605    VKuser24342747    1       

Минцифры подготовило правила отказа от передачи биометрических данных

Новость ИТ-новость Минцифры

Гражданин имеет право отказаться от сбора и распространения своих биометрических данных. Отказ можно оформить в МФЦ только при личном присутствии.

24.01.2023    1109    VKuser24342747    0       

Банки смогут получить право на передоверие полномочий по электронной подписи

Новость ИТ-новость Цифровая подпись Цифровая экономика

Комитет Госдумы рекомендует принять соответствующий законопроект. Документ позволит компаниям финансового сектора использовать электронную подпись наравне с другими организациями.

20.01.2023    957    VKuser24342747    0       

«ВКонтакте» начал поддерживать получение уведомлений от Госуслуг

Новость Госуслуги ИТ-новость Мессенджеры Налоги

Оповещения с Единого портала госуслуг будут отображаться в Вконтакте и приложении «VK Мессенджер». Кроме того, стала доступна оплата штрафов ГИБДД прямо в VK.

19.01.2023    1079    VKuser24342747    0       

Минцифры подготовило правила аккредитации госорганов на владение информсистемами для биометрии

Новость Законодательство ИТ-новость Минцифры

Проект постановления содержит требования к Цетробанку и госорганам, а также к сторонним организациям, которые будут привлекаться ведомствами в качестве операторов. Требования согласованы с ФСБ.

19.01.2023    1038    VKuser24342747    0       

Утвержден профстандарт специалиста по информационной безопасности

Новость Безопасность ИТ-новость

Новый профстандарт вступит в силу 1 сентября 2023 года. А пока у работодателей в кредитно-финансовой сфере есть время проанализировать трудовой функционал специалистов по ИБ и при необходимости уточнить его.

17.01.2023    1706    user1816563    0       

Национальная система пространственных данных начала работу в России

Новость ИТ-новость Цифровая экономика

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

12.01.2023    1891    VKuser24342747    0       

Госдума рассмотрит законопроект о цифровом рубле

Новость Законодательство ИТ-новость Цифровая экономика

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

11.01.2023    3782    VKuser24342747    2       

Оператором Единой биометрической системы стал «Центр Биометрических Технологий»

Новость ИТ-новость

Ранее за работу платформы отвечал «Ростелеком». На «Центр Биометрических Технологий» возложены задачи по развитию в России цифровых технологий идентификации и аутентификации, в том числе на основе биометрических персональных данных.

22.12.2022    2486    VKuser24342747    2       

GitHub бесплатно проверит репозитории на наличие секретных токенов

Новость GitHub Безопасность ИТ-новость

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

22.12.2022    1843    VKuser24342747    1       

GitHub к концу 2023 года введет обязательную двухфакторную аутентификацию

Новость GitHub Безопасность ИТ-новость

Веб-хостинг потребует от всех пользователей, загружающих код, включить двухфакторную аутентификацию (2FA) для дополнительной защиты своих аккаунтов.

21.12.2022    2137    VKuser24342747    0       

Госдума рассмотрит законопроект о провайдере для госсайтов

Новость Государственные, бюджетные структуры Законодательство ИТ-новость

Документ предусматривает запрет на размещение государственных информационных ресурсов на хостингах, не включенных в специальный реестр. Сейчас около 20% ресурсов госорганов размещены на иностранных площадках.

20.12.2022    1760    VKuser24342747    1       

«Яндекс» открыл доступ к фреймворку Yatagan для сборки Android-приложений

Новость ИТ-новость Яндекс Разработка

Инструмент свободно распространяется через GitHub. Перед публикацией в открытом доступе фреймворк долгое время применялся во внутренних проектах компании. Решение основано на API Dagger.

16.12.2022    2601    VKuser24342747    1       

В России появится национальная издательская система вместо иностранных аналогов

Новость Импортозамещение ИТ-новость

Программный комплекс будет создан на базе существующего отечественного решения Axiocat. Сейчас это приложение не внесено в Единый реестр российского ПО, хотя применяется некоторыми компаниями.

15.12.2022    1803    VKuser24342747    0       

Google рассказала о проблемах и преимуществах поддержки разработки на Rust в Android 13

Новость Google ИТ-новость Языки программирования

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

14.12.2022    1875    VKuser24342747    0       

Банки обяжут принимать оплату по картам «Мир» с QR-кодом в смартфоне

Новость Банки ИТ-новость

Оператор платежной системы «Мир» разослал российским банкам документ с требованием обеспечить прием платежей по новой технологии. Первый этап внедрения завершится в апреле 2023 года.

14.12.2022    2102    VKuser24342747    1       

Госдума рассмотрит законопроект о создании Национального удостоверяющего центра

Новость Законодательство Интернет ИТ-новость

Информационная система позволит российским сайтам получать сертификаты безопасности без участия иностранных организаций. Для их выдачи будет применяться отечественная криптография.

09.12.2022    1926    VKuser24342747    0       

Госдума планирует отложить срок обязательного перехода на машиночитаемые доверенности

Новость Законодательство ИТ-новость

Госдума в первом чтении одобрила законопроект, который продлевает переходный период для машиночитаемых доверенностей. Еще полгода организации смогут не применять МЧД при использовании электронных подписей.

08.12.2022    2014    VKuser24342747    0       

GitHub опубликовал статистику по языкам и проектам за 2022 год

Новость ИТ-новость Языки программирования Разработка

В статистическом отчете репозитория названы самые популярные языки программирования среди пользователей платформы, а также данные об активности аудитории сервиса.

01.12.2022    2460    VKuser24342747    11       

Инспекторы смогут проводить дистанционные проверки через смартфон

Новость ИТ-новость Мобильные приложения

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

28.11.2022    2389    VKuser24342747    0       

«Яндекс» представил бесплатный сервис для быстрого поиска в облаке

Новость ИТ-новость Облачные технологии

Сервис Managed Service for OpenSearch от платформы Yandex Cloud предназначен для оптимизации поисковых систем и проверки стабильности и безопасности работы приложений. Услуга доступа в режиме Public Preview.

24.11.2022    3139    VKuser24342747    1       

В декабре начнут действовать новые правила регистрации доменов .RU и .РФ

Новость ИТ-новость Роскомнадзор

С 12 декабря Роскомнадзор получит право прекращать делегирование домена, если он оформлен нелегально, или на сайте содержится запрещенная в России информация.

23.11.2022    2296    VKuser24342747    1       

Stack Overflow запустил проект для оффлайн-доступа к форуму

Новость ИТ-новость Разработка

Проект под названием Overflow Offline позволяет скачать актуальную версию архива вопросов и ответов по разработке ПО. По объему данных база форума уступает только «Википедии».

02.11.2022    2235    VKuser24342747    1       

Минцифры запустило магазин российского ПО из реестра ИТ-решений

Новость Импортозамещение ИТ-новость

Маркетплейс «Руссофт» стал доступен для всех пользователей. С его помощью можно подобрать программы от отечественных разработчиков для решения корпоративных задач бизнеса.

21.10.2022    2562    VKuser24342747    4       

В ноябре начнется создание российского государственного аналога GitHub

Новость ИТ-новость

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

19.10.2022    3458    VKuser24342747    14