Heute hat das Schweizer Start-up , das Künstliche Intelligenz und maschinelles Lernen zur Automatisierung der Analyse von Programmcode einsetzt, eine Investition von 4 Millionen Dollar von den Wagniskapitalfonds Earlybird, 3VC und Btov Partners bekannt gegeben. Das Unternehmen plant, diese Mittel für die Unterstützung neuer Programmiersprachen in seinem Service sowie für das Marketing des Produkts auf dem globalen IT-Markt zu verwenden.

Die Codeanalyse ist erforderlich, um Fehler, potenzielle Schwachstellen, Verstöße gegen allgemein akzeptierte Formatierungsrichtlinien und vieles mehr in den frühen Phasen der Softwareentwicklung zu erkennen, bevor der Code irgendwo eingesetzt wird. Diese Verfahren laufen typischerweise parallel zur Entwicklung neuer Codes und unmittelbar nach deren Abschluss, bevor die eigentliche Testphase beginnt. „Die Softwaretests betrachten den Code von außen, während die Codeanalyse es Ihnen ermöglicht, ihn von innen zu betrachten“, erklärt Boris Paskalev, Mitgründer und CEO von DeepCode, in einem Interview mit VentureBeat.
In der Regel wird der Code von seinen Autoren gemeinsam mit Kollegen und Managern überprüft, um offensichtliche Fehler zu identifizieren, bevor die nächsten Entwicklungsphasen begonnen werden. Je größer das Projekt ist, desto mehr Codezeilen müssen überprüft werden, was einen erheblichen Zeitaufwand für die Programmierer darstellt. Tools zur Beschleunigung dieses Prozesses gibt es schon seit geraumer Zeit, beispielsweise statische Code-Analyser wie Coverity und PVS-Studio. Diese sind jedoch meist in ihren Möglichkeiten begrenzt, da sie sich auf "ärgerliche und wiederkehrende stilistische Probleme, Formatierungen sowie kleinere logische Fehler" konzentrieren, erklärt Paschalew.
DeepCode hingegen deckt ein breiteres Spektrum an Problemen ab, indem es Schwachstellen wie Cross-Site-Scripting und SQL-Injection erkennt. Die implementierten Algorithmen analysieren den Code nicht nur als eine Ansammlung von Zeichen, sondern versuchen, den Sinn und das Ziel des geschriebenen Programms zu verstehen. Im Kern basiert dies auf einem Machine-Learning-System, das Milliarden von Codezeilen aus öffentlich zugänglichen Open-Source-Projekten nutzt, um zu lernen. DeepCode analysiert frühere Versionen des Codes sowie die nachfolgenden Änderungen, die daran vorgenommen wurden, um zu ermitteln, welche Fehler reale Entwickler in ihrer Arbeit behoben haben, und schlägt dann ähnliche Lösungen für seine Benutzer vor. Darüber hinaus verwendet das System auch traditionelle Prognosealgorithmen, um mögliche Probleme im Code, wie die oben genannten statischen Analyzer, zu identifizieren.
Eine der zentralen Fragen zur Nutzung von DeepCode ist: Wie zuverlässig ist die automatische Codeprüfung? Eine Analysegenauigkeit von weniger als 100 % bedeutet, dass Entwickler ihren Code dennoch manuell überprüfen müssen. Wie viel Zeit kann die Nutzung von Automatisierungstools in diesem Fall tatsächlich einsparen? Laut Paschalev kann DeepCode Entwicklern etwa 50 % der Zeit sparen, die sie derzeit selbst mit der Fehlersuche verbringen, was eine durchaus signifikante Zahl ist.
Entwickler können DeepCode mit ihren GitHub- oder Bitbucket-Konten verbinden; das Tool unterstützt zudem lokale GitLab-Konfigurationen. Darüber hinaus bietet das Projekt eine spezielle API, die es Entwicklern ermöglicht, DeepCode in ihre eigenen Entwicklungssysteme zu integrieren. Nach der Anbindung an das Repository analysiert DeepCode jede Codeänderung und kennzeichnet potenzielle Probleme.

„Im Durchschnitt verbringen Entwickler etwa 30 % ihrer Zeit mit der Fehlersuche und -behebung, aber DeepCode kann bereits jetzt die Hälfte dieser Zeit einsparen und in Zukunft noch mehr“, erklärt Boris. „Da DeepCode direkt von der weltweiten Gemeinschaft der Entwickler lernt, ist es in der Lage, mehr Probleme zu erkennen, als jemals ein einzelner Mensch oder eine gesamte Gruppe von Gutachtern finden konnte.“
Neben der heutigen Nachricht über die erhaltenen Investitionen hat DeepCode auch eine neue wertvolle Produktpolitik angekündigt. Bisher war DeepCode nur kostenlos für Open-Source-Softwareprojekte erhältlich. Ab sofort wird es auch für alle Bildungszwecke kostenlos nutzbar sein und sogar für kommerzielle Unternehmen mit weniger als 30 Entwicklern. Offensichtlich möchten die Entwickler von DeepCode mit diesem Schritt ihr Produkt bei kleinen Teams beliebter machen. Zusätzlich erhebt DeepCode 20 US-Dollar pro Entwickler und Monat für die Bereitstellung der Lösung in der Cloud und 50 US-Dollar pro Entwickler für lokale Unterstützung.
Das Team von DeepCode hat zuvor bereits 1 Million Dollar an Investitionen erhalten. Mit weiteren 4 Millionen hat das Unternehmen angekündigt, die Unterstützung für Programmiersprachen über Java, JavaScript und Python hinaus auszubauen, einschließlich der Unterstützung von C#, PHP und C/C++. Sie haben zudem bestätigt, dass sie an einer eigenen integrierten Entwicklungsumgebung arbeiten.
Quelle: 3dnews.ru
