Искусственный интеллект Facebook поможет программистам быстрее выявлять ошибки и выпускать корректные обновления. Новая система получила название SapFix и уже показала себя в разработке приложений для Android.
Как известно, наиболее трудоемкой частью работы программистов является отладка программ и выявление различных багов, которые незаметны на первом этапе, но могут сыграть роковую роль в дальнейшем. Выявить сразу все последствия, которые несет очередное обновление, практически невозможно, делая это вручную.
Компания Facebook, плотно занимающаяся проблемами искусственного интеллекта (AI), уже начала на практике применять его возможности для оптимизации приложений. AI SapFix пока что работает в комплексе с технологией автоматизированного проектирования текстов Sapienz, также разработанной Facebook, но, в дальнейшем, предполагается самостоятельная работа каждой из систем.
Sapienz, который приступил к тестированию текстов еще в 2017 году, продемонстрировал свою потрясающую эффективность, проводя десятки тысяч тестов ежедневно и помогая решать проблемы с работой приложений Facebook очень быстро, нередко, в течение нескольких минут.
Искусственный интеллект SapFix не просто анализирует найденные аномалии в программном коде, он тут же создает не менее трех новых вариантов обновлений и тестирует каждый из них, выявляя наиболее оптимальный вариант, после чего предлагает изменения разработчикам. Такой подход позволяет автоматизировать исправление ошибок и создать предпосылки к быстрому развитию и изменению приложений.
В настоящее время идет обучение системы искусственного интеллекта и наращивание его возможностей. Ведь в качестве первого шага после выявления ошибки, SapFix пытается использовать библиотеку шаблонных решений, которые уже применялись в аналогичных или похожих случаях. Если же шаблон отсутствует, искусственный интеллект начинает применять метод мутаций, создавая варианты программного кода и тестируя их результаты.
Работа SapFix поможет избежать рисков размножения багов при установке новых обновлений, поскольку выявление ошибок и тестирование патчей будет производиться до момента их внедрения.