Danes je švicarski startup , ki uporablja umetno inteligenco in strojno učenje za avtomatizacijo analize programske kode, napovedal prejem investicij v višini 4 milijone dolarjev od podjetij za tvegan kapital Earlybird, 3VC in Btov Partners. Podjetje načrtuje porabiti ta sredstva za uvedbo podpore novim programskim jezikan v svoji storitvi ter za trženje izdelka na globalnem IT trgu.

Analiza kode je potrebna za odkrivanje napak, potencialnih ranljivosti, kršitev splošno sprejetih stilskih smernic in še mnogo več v zgodnjih fazah razvoja programske opreme, preden se koda kjerkoli uporabi. Običajno se ta postopek izvaja hkrati z razvojem nove kode in takoj po končanju, še preden se začne testiranje. "Testiranje programske opreme gleda na kodo od zunaj, medtem ko analiza kode omogoča, da jo pogledate znotraj," pojasnjuje soustanovitelj in izvršni direktor DeepCode Boris Paskalev v intervjuju za VentureBeat.
Najpogosteje analizo kode opravljajo njeni avtorji skupaj s sodelavci in menedžerji z namenom odkriti očitne napake, preden preidejo na naslednje faze razvoja. In večji kot je projekt, več vrstic kode je treba preveriti, kar zahteva znatno količino časa programerjev. Orodja, ki bi morala pospešiti ta proces, že dolgo obstajajo, na primer, statični analizatorji kode, kot sta Coverity in PVS-Studio, vendar so ponavadi omejena v svojih sposobnostih, saj se osredotočajo na "motivacijske in ponavljajoče se stilistične težave, formatiranje in manjše logične napake," pojasnjuje Paskalev.
DeepCode zajema širši spekter težav, na primer odkrivanje ranljivosti, kot so možnosti medstranskega skriptiranja in SQL napadi, saj algoritmi, vgrajeni vanj, ne analizirajo kode le kot niza znakov, ampak poskušajo razumeti pomen in namen delovanja napisanega programa. V jedru deluje sistem strojnega učenja, ki za svoje usposabljanje uporablja milijarde vrstic kode iz javno dostopnih projektov z odprto kodo. DeepCode analizira prejšnje različice kode in naslednje spremembe, ki so bile v njej uvedene, da se nauči, katere napake so in kako so jih popravili pravi programerji, nato pa ponuja podobne rešitve svojim uporabnikom. Poleg tega sistem uporablja tudi tradicionalne algoritme napovedovanja za iskanje morebitnih težav v kodi, podobno kot zgoraj omenjeni statični analizatorji.
Ena ključnih vprašanj pri uporabi DeepCode je, kako zanesljiva je avtomatska preverba kode? Natančnost analize je manjša od 100 %, kar pomeni, da bodo razvijalci še vedno morali ročno analizirati svojo kodo. V tem primeru, koliko časa bo dejansko prihranilo uporabljanje orodij za avtomatizacijo te naloge? Po besedah Paskeleva bo DeepCode lahko razvijalcem prihranil približno 50 % časa, ki ga trenutno porabijo za iskanje napak samostojno, kar je precejšnja številka.
Razvijalci lahko povežejo DeepCode s svojimi računi GitHub ali Bitbucket, prav tako pa orodje podpira lokalne konfiguracije GitLab. Dodatno ima projekt poseben API, ki omogoča razvijalcem integracijo DeepCode v lastne razvojne sisteme. Po povezavi z repozitorijem bo DeepCode analiziral vsako spremembo kode in označil morebitne težave.

„Povprečno razvijalci porabijo približno 30 % svojega časa za iskanje in odpravljanje napak, vendar lahko DeepCode zdaj prihrani polovico tega časa, v prihodnje pa še več,“ trdi Boris. „Ker se DeepCode uči neposredno od svetovne skupnosti razvijalcev, je sposoben odkriti več težav, kot bi jih kdaj lahko našel en sam človek ali cela skupina recenzentov.“
Poleg današnje novice o prejetju naložb, je DeepCode prav tako objavil novo vrednotno politiko svojega proizvoda. Do sedaj je bil DeepCode brezplačen le za projekte razvoja programske opreme z odprtim kodom. Zdaj pa bo brezplačen za uporabo tudi v izobraževalne namene in celo za komercialna podjetja, ki imajo manj kot 30 razvijalcev. Očitno je, da želijo ustvarjalci DeepCode s tem korakom svoj izdelek narediti bolj priljubljen med manjšimi ekipami. Dodatno, DeepCode zaračunava 20 dolarjev na razvijalca na mesec pri uvajanju rešitve v oblaku in 50 dolarjev na razvajalca za lokalno podporo.
Ekipa DeepCode je že prej prejela naložbe v višini 1 milijon dolarjev. S še 4 milijoni je podjetje napovedalo, da namerava razširiti podprte jezike programiranja poleg Jave, JavaScript in Pythona, vključno z dodajanjem podpore za C#, PHP in C/C++. Potrdili so tudi, da delajo na svojem integriranem razvojnem okolju.
Izvor: 3dnews.ru
