Разработчики Facebook рассказали об инструменте для автоисправлений кода Getafix
Новости Отредактировано
ИИ инструмента использует опыт тысяч предыдущих правок, а также учитывает контекст фрагмента кода и может предложить различные решения для похожих багов.
1К открытий1К показов
Facebook описала принцип работы инструмента Getafix. Разработчики компании создали его с целью автоматизации процесса исправления кода. Getafix предлагает исправления для багов, найденных статическим анализатором Infer, а также через ИИ инструмент Sapfix рекомендует правки для ошибок, обнаруженных Sapienz, системой тестирования приложений.
Структура и работа Getafix
Инструмент создан с целью перекладывания рутинных обязанностей инженеров по поиску и исправлению багов на ИИ. При этом конечное решение о внесении изменений принимает человек. Нейросеть использует инструменты для учёта предыдущих внесённых инженерами правок, сверяет новый код и контекст фрагмента. После этих действий она предлагает вариант исправления инженеру:
Отличия от других инструментов автоисправлений
Инструменты, которые автоматически исправляют код, по большей части рассчитаны на простые задачи, без учёта контекста. Getafix же, даже в случае схожих багов, может предложить различные решения:
Применение на практике
Компания сравнила изменения, внесённые человеком и ИИ, при исправлении примерно двухсот багов. Четверть предложенных нейросетью вариантов совпадала с написанными человеком решениями.
Другой эксперимент предполагал исправление 2 тыс. багов вызова метода нулевого указателя. Getafix автоматически исправил 53 % ошибок.
Facebook разработала инструмент на основе ИИ для генерирования и внедрения патчей Sapfix в середине сентября 2018 года. Компания представила его на конференции @Scale 2018. Sapfix может работать сам по себе либо в сочетании с Sapienz — это «умное» тестировочное ПО от Facebook для поиска ошибок в коде.
1К открытий1К показов