Für maximale Produktivität gehen Entwickler oft ähnliche Verstöße gleichzeitig an. KI mit ML soll diese sinnvolle Strategie verbessern (Bild 2). Hier kommt so etwas wie ein »Netflix-Ansatz« ins Spiel: Der Algorithmus einer Streaming-Plattform lernt auf Grundlage der Sehgewohnheiten jedes einzelnen Nutzers. Das ML für die KI der statischen Analyse funktioniert ganz ähnlich. Auf der Grundlage früherer Verstöße, die ein Entwickler behoben hat, schlägt ihm das System ähnliche Verstöße vor – wie bei der Plattform von Netflix. Mit diesem Ansatz verbringen Entwickler weniger Zeit mit der Suche nach ähnlichen Verstößen und befassen sich mit Verstößen, die sie am besten beheben können.
Verfahren des ML für die KI der statischen Analyse
Die Einflussnahme künstlicher Intelligenz und maschinellen Lernens auf die statische Analyse lässt sich wie folgt kategorisieren: Alle diese Verfahren arbeiten zusammen, um den Entwicklungsprozess zu verbessern – von der Vereinheitlichung des Quellcodes bis hin zur Identifizierung von Sicherheitsschwachstellen und der Verringerung von Fehlalarmen.
Identifizierung und Rauschunterdrückung:
Priorisierung & Clustering:
Nutzen von KI und ML für die statische Analyse
Der Grundgedanke des maschinellen Lernens ist, dass KI auf der Grundlage der Beobachtung von Nutzeraktionen lernt. Sie kann darauf trainiert werden, bestimmte Muster zu erkennen und sich daran anzupassen. In Übereinstimmung mit dieser Methodik werden durch das Identifizieren von Clustern und Verstößen die Ergebnisse der statischen Analyse für die Entwickler verbessert (Bild 3). Die Vorteile auf einen Blick:
Die technische Entwicklung und agile Methoden treiben die heutige Welt der Softwareentwicklung immer schneller voran. Testansätze müssen mit den Fortschritten Schritt halten oder sogar einen Schritt voraus sein. Der beste Weg, dies zu erreichen, sind Test-Tools, die Automatisierung und maschinelles Lernen für KI einbeziehen. Mit maschinellem Lernen und KI können Entwickler Statische-Analyse-Tests mit maximalem Nutzen einsetzen – und dabei noch ihre Fertigkeiten ausbauen.
Darum sind Unternehmen und Entwicklungsteams gut beraten, auf erfahrene Anbieter von innovativen Analyse-Tools zu setzen. Die Tools von Parasoft beispielsweise nutzen KI, um Verstöße mit hoher Priorität zu erkennen und zu priorisieren; sie können zudem nahtlos in den jeweiligen CI/CD-Workflow integriert werden. Mit den Tools C/C++test, Jtest und dotTEST lassen sich viele Testverfahren abdecken. Sie liefern ein Fundament, um maschinelles Lernen und KI zielgerichtet anzuwenden, damit die Statische-Analyse-Tests maximalen Nutzen für alle bringen.