DeepCode найдет ошибки в исходном коде ПО при помощи ИИ
Сегодня швейцарский стартап DeepCode, использующий искусственный интеллект и машинное обучение для автоматизации анализа программного кода, объявил о получении инвестиций в размере 4 миллионов долларов от венчурных фондов Earlybird, 3VC и Btov Partners. Компания планирует потратить данные средства для внедрения поддержки в свой сервис новых языков программирования, а также маркетинг продукта на глобальном ИТ-рынке.
Анализ кода необходим для обнаружения ошибок, потенциальных уязвимостей, нарушений общепринятого стиля форматирования и многого другого на ранних этапах разработки программного обеспечения, прежде чем код будет где-либо использован. Обычно эта процедура проводится параллельно с разработкой нового кода и сразу после того, как он будет завершен, предваряя этап непосредственно тестирования. "Тестирование программного обеспечения смотрит на код извне, но анализ кода позволяет вам взглянуть на него изнутри", - объясняет сооснователь и генеральный директор DeepCode Борис Паскалев (Boris Paskalev) в интервью изданию VentureBeat.
Чаще всего проверка кода выполняется его авторами совместно с коллегами и менеджерами с целью выявления очевидных ошибок, прежде чем переходить к следующим этапам разработки. И чем крупнее проект, тем больше строк кода необходимо проверить, что занимает значительный объем времени программистов. Инструменты, которые должны ускорить данный процесс, существуют уже достаточно давно, например, статические анализаторы кода, такие как Coverity и PVS-Studio, но они, как правило, ограничены в своих возможностях, так как сосредоточены на "раздражающих и повторяющихся стилистических проблемах, форматировании и небольших логических ошибках", - объясняет Паскалев.
DeepCode, в свою очередь, охватывает более широкий круг проблем, например, обнаруживая такие уязвимости, как возможности для межсайтового скриптинга и SQL-инъекций, так как заложенные в него алгоритмы не просто анализируют код как набор символов, но пытаются понять смысл и цель работы написанной программы. В основе этого лежит система машинного обучения, которая использует для своего обучения миллиарды строк кода из общедоступных проектов с открытым исходным кодом. DeepCode анализирует предшествующие версии кода и последующие изменения, которые были в него внесены, чтобы изучить, какие ошибки и как исправляли реальные программисты в своей работе, а затем предложить подобные решения для своих пользователей. Кроме того, система использует и традиционные алгоритмы прогнозирования для поиска возможных проблем в коде наподобие упомянутых выше статических анализаторов.
Один из ключевых вопросов при использовании DeepCode: насколько надежной является автоматическая проверка кода? Точность анализа менее 100 % означает, что разработчикам все равно придется анализировать свой код вручную. В таком случае, сколько времени на самом деле освободит использование инструментов для автоматизации этой задачи? По словам Паскалева, DeepCode сможет сэкономить разработчикам около 50 % времени, которое они в настоящее время тратят на поиск ошибок самостоятельно, что является достаточно весомой цифрой.
Разработчики могут подключить DeepCode к своим учетным записям GitHub или Bitbucket, а также инструмент поддерживает локальные конфигурации GitLab. Дополнительно у проекта есть специальный API, который позволяет разработчикам интегрировать DeepCode в собственные системы для разработки. После подключения к репозиторию DeepCode будет анализировать каждое изменение кода и отмечать потенциальные проблемы.
"В среднем разработчики тратят около 30 % своего времени на поиск и устранение ошибок, но DeepCode может сэкономить половину от этого времени уже сейчас, а в будущем еще больше", - утверждает Борис. "Поскольку DeepCode учится непосредственно у мирового сообщества разработчиков, он способен обнаружить больше проблем, чем когда-либо мог найти один человек или целая группа рецензентов".
Помимо сегодняшней новости о получении инвестиций, DeepCode также объявила о новой ценной политике своего продукта. До сих пор DeepCode был бесплатным только для проектов по разработке программного обеспечения с открытым исходным кодом. Теперь же он будет бесплатным для использования в любых образовательных целях и даже для коммерческих компаний, имеющих менее 30 разработчиков. Очевидно, что этим шагом создатели DeepCode хотят сделать свой продукт более популярным у небольших команд. Дополнительно DeepCode взимает 20 долларов с разработчика в месяц при развертывании решения в облаке и 50 долларов с разработчика за локальную поддержку.
Ранее команда DeepCode уже получала инвестиции в размере 1 миллиона долларов. Имея еще 4 миллиона, компания заявила, что планирует расширить поддерживаемые ими языки программирования помимо Java, JavaScript и Python, в том числе добавить поддержку C, PHP и C/C++. Они также подтвердили, что работают над собственной интегрированной средой разработки.