Facebook разработала SapFix, инструмент для генерирования и внедрения патчей

SapFix

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

Порядок работы SapFix

Чтобы исправить баг, система частично или полностью «откатывает» ту часть кода, которая ее вызывает. Для решения наиболее сложных проблем SapFix обращается к базе готовых шаблонов, созданных людьми, и подбирает нужное из них. Если шаблон не подходит, система модифицирует его до тех пор, пока код не заработает.

SapFix генерирование патча

Определившись с конкретным патчем, SapFix генерирует несколько потенциальных решений для каждого бага и оценивает их качество по трем параметрам:

  • вызывает ли оно ошибки компиляции;
  • продолжаются ли сбои;
  • вызывает ли решение новые сбои.

Чтобы определить последние два параметра, система прогоняет модифицированные сборки по существующим тестам, а также по тем, что созданы Sapienz. Это процесс автоматический, но протекает изолированно от остального кода. SapFix не запустит код в продакшн, пока его не проверят разработчики-люди.

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

SapFix Patch Approval

Развитие инструмента

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

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

Технологию Sapienz Facebook представила в мае 2018 года на конференции F8, но для тестирования Android-клиента Facebook ее применяли с осени 2017 года. По словам разработчиков, система уменьшает время на исправление ошибок до нескольких часов и даже минут.

Source: блог Facebook Code

Подобрали три теста для вас:
— А здесь можно применить блокчейн?
Серверы для котиков: выберите лучшее решение для проекта и проверьте себя.
Сложный тест по C# — проверьте свои знания.

Также рекомендуем: