Dziś szwajcarski startup , wykorzystujący sztuczną inteligencję i uczenie maszynowe do automatyzacji analizy kodu źródłowego, ogłosił pozyskanie inwestycji w wysokości 4 milionów dolarów od funduszy venture capital Earlybird, 3VC i Btov Partners. Firma planuje przeznaczyć te środki na wprowadzenie wsparcia dla nowych języków programowania w swoim serwisie oraz marketing produktu na globalnym rynku IT.

Analiza kodu jest niezbędna do wykrywania błędów, potencjalnych luk w zabezpieczeniach, naruszeń powszechnie uznawanych stylów formatowania i wielu innych kwestii na wczesnych etapach rozwoju oprogramowania, zanim kod zostanie gdziekolwiek użyty. Zazwyczaj ta procedura jest przeprowadzana równolegle z tworzeniem nowego kodu i od razu po jego zakończeniu, poprzedzając etap samego testowania. "Testowanie oprogramowania patrzy na kod z zewnątrz, ale analiza kodu pozwala spojrzeć na niego od wewnątrz," wyjaśnia współzałożyciel i dyrektor generalny DeepCode, Boris Paskalev, w wywiadzie dla VentureBeat.
Najczęściej weryfikację kodu przeprowadzają jego autorzy wspólnie z kolegami i menedżerami w celu wykrycia oczywistych błędów, zanim przejdą do następnych etapów rozwoju. Im większy projekt, tym więcej linii kodu należy sprawdzić, co zajmuje znaczny czas programistów. Narzędzia, które mają przyspieszyć ten proces, istnieją już od dłuższego czasu, na przykład statyczne analizatory kodu, takie jak Coverity i PVS-Studio, ale zazwyczaj są ograniczone w swoich możliwościach, ponieważ koncentrują się na "irytujących i powtarzalnych problemach stylistycznych, formatowaniu i drobnych błędach logicznych," wyjaśnia Paskalev.
DeepCode obejmuje znacznie szerszy zakres problemów, na przykład wykrywanie takich luk, jak ataki typu cross-site scripting i SQL injection, ponieważ zaimplementowane w nim algorytmy nie tylko analizują kod jako zestaw symboli, ale także starają się zrozumieć znaczenie i cel działania napisanego programu. U podstaw leży system uczenia maszynowego, który uczy się na podstawie miliardów linii kodu z ogólnodostępnych projektów o otwartym kodzie źródłowym. DeepCode analizuje poprzednie wersje kodu i późniejsze zmiany wprowadzone do niego, aby uczyć się, jakie błędy i jak naprawiali rzeczywiści programiści w swojej pracy, a następnie proponować podobne rozwiązania swoim użytkownikom. Dodatkowo system wykorzystuje tradycyjne algorytmy prognozowania do wyszukiwania potencjalnych problemów w kodzie podobnych do wspomnianych powyżej statycznych analizatorów.
Jednym z kluczowych pytań przy korzystaniu z DeepCode jest: jak niezawodna jest automatyczna weryfikacja kodu? Dokładność analizy poniżej 100 % oznacza, że programiści wciąż będą musieli ręcznie analizować swój kod. W takim przypadku, ile czasu naprawdę zaoszczędzi korzystanie z narzędzi do automatyzacji tego zadania? Zdaniem Paszkalwa, DeepCode może zaoszczędzić programistom około 50 % czasu, który obecnie poświęcają na wyszukiwanie błędów samodzielnie, co jest dość znaczną liczbą.
Programiści mogą połączyć DeepCode ze swoimi kontami GitHub lub Bitbucket, a także narzędzie wspiera lokalne konfiguracje GitLab. Dodatkowo projekt ma specjalne API, które pozwala programistom integrować DeepCode z własnymi systemami do tworzenia oprogramowania. Po podłączeniu do repozytorium DeepCode będzie analizować każdą zmianę w kodzie i zaznaczać potencjalne problemy.

"Średnio programiści spędzają około 30 % swojego czasu na wyszukiwaniu i eliminowaniu błędów, ale DeepCode może zaoszczędzić połowę tego czasu już teraz, a w przyszłości jeszcze więcej," twierdzi Boris. "Ponieważ DeepCode uczy się bezpośrednio od światowej społeczności programistów, jest w stanie wykryć więcej problemów, niż kiedykolwiek mógłby znaleźć jeden człowiek lub cała grupa recenzentów."
Oprócz dzisiejszej wiadomości o pozyskaniu inwestycji, DeepCode ogłosiło również nową cenową politykę swojego produktu. Do tej pory DeepCode był darmowy tylko dla projektów związanych z otwartym kodem źródłowym. Teraz będzie darmowy do użytku w celach edukacyjnych, a nawet dla firm komercyjnych zatrudniających mniej niż 30 programistów. Oczywiście twórcy DeepCode chcą tym krokiem uczynić swój produkt bardziej popularnym wśród małych zespołów. Dodatkowo, DeepCode pobiera 20 dolarów od programisty miesięcznie przy wdrażaniu rozwiązania w chmurze oraz 50 dolarów od programisty za wsparcie lokalne.
Wcześniej zespół DeepCode pozyskał już inwestycje w wysokości 1 miliona dolarów. Mając jeszcze 4 miliony, firma ogłosiła, że planuje rozszerzyć wspierane przez siebie języki programowania poza Java, JavaScript i Python, w tym dodać wsparcie dla C#, PHP i C/C++. Potwierdzili również, że pracują nad własnym zintegrowanym środowiskiem programistycznym.
Źródło: 3dnews.ru
