Написать пост

Разработчики Facebook рассказали об инструменте для автоисправлений кода Getafix

Аватар Артем Гаврилов

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

Обложка поста Разработчики Facebook рассказали об инструменте для автоисправлений кода Getafix

Facebook описала принцип работы инструмента Getafix. Разработчики компании создали его с целью автоматизации процесса исправления кода. Getafix предлагает исправления для багов, найденных статическим анализатором Infer, а также через ИИ инструмент Sapfix рекомендует правки для ошибок, обнаруженных Sapienz, системой тестирования приложений.

Структура и работа Getafix

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

Разработчики Facebook рассказали об инструменте для автоисправлений кода Getafix 1

Отличия от других инструментов автоисправлений

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

Разработчики Facebook рассказали об инструменте для автоисправлений кода Getafix 2

Применение на практике

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

Другой эксперимент предполагал исправление 2 тыс. багов вызова метода нулевого указателя. Getafix автоматически исправил 53 % ошибок.

Facebook разработала инструмент на основе ИИ для генерирования и внедрения патчей Sapfix в середине сентября 2018 года. Компания представила его на конференции @Scale 2018. Sapfix может работать сам по себе либо в сочетании с Sapienz — это «умное» тестировочное ПО от Facebook для поиска ошибок в коде.

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов