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

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

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

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

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

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

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

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

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

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

Источник: tproger.ru

Понравилась статья? Поделиться с друзьями:
datsun-car
Добавить комментарий