Днес швейцарският стартъп , използващ изкуствен интелект и машинно обучение за автоматизиране на анализа на софтуерния код, обяви, че е получил инвестиции в размер на 4 милиона долара от венчурните фондове Earlybird, 3VC и Btov Partners. Компанията планира да използва средствата за внедряване на поддръжка на нови програмни езици в своя сервис, както и за маркетинг на продукта на глобалния ИТ пазар.

Анализът на кода е необходим за откриването на грешки, потенциални уязвимости, нарушения на общоприетия стил на форматиране и много други в ранните етапи на разработка на софтуер, преди кодът да бъде използван някъде. Обикновено тази процедура се провежда паралелно с разработката на нов код и веднага след като той бъде завършен, предхождайки етапа на директно тестване. „Тестването на софтуера разглежда кода отвън, но анализът на кода позволява да го разгледате отвътре“, обяснява съоснователят и главен изпълнителен директор на DeepCode Борис Паскалев (Boris Paskalev) в интервю за VentureBeat.
Най-често проверката на кода се извършва от неговите автори заедно с колеги и мениджъри с цел откриване на очевидни грешки, преди да преминат към следващите етапи на разработка. И колкото по-голям е проектът, толкова повече редове код трябва да се проверят, което изисква значителен обем времe на програмистите. Инструменти, които трябва да ускорят този процес, съществуват от доста време, например, статични анализатори на код, като 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++. Те също така потвърдиха, че работят върху собствена интегрирана среда за разработка.
Източник: 3dnews.ru
