Statische Codeanalyse

Schneller Testen mit KI und ML

2. Mai 2023, 6:00 Uhr | Von Igor Kirilenko, Vice President Development bei Parasoft
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Netflix für die statische Analyse

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:

  • Klassifiziert wichtige oder kritische Verstöße für deren frühere Korrektur.
  • Filtert Störgeräusche oder unkritische Probleme heraus für eine spätere Behebung.
  • Fasst Verstöße in semantisch ähnlichem Code in derselben Gruppe zusammen.
  • Identifiziert Hotspots und Grundursachen, die multiple Verstöße nach sich ziehen.
  • Verringert den Zeitaufwand des Entwicklungsteams für die manuelle Einstufung von Fehlern.

Priorisierung & Clustering:

  • Priorisiert Hotspots nach Anzahl der von ihnen verursachten Verstöße.
  • Identifiziert, welcher Entwickler aufgrund seiner Fähigkeiten am besten mit Verstößen umgehen kann.
  • Schlägt den Entwicklern Verstöße auf Basis ihrer Vertrautheit mit dem Code vor.

passend zum Thema

Parasoft
Bild 3: Mithilfe von AI/ML-Techniken lassen sich die Leistung der Entwickler steigern und zugleich wichtige Code-Probleme beheben.
© Parasoft

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:

  • Gruppiert künftige Verstöße entsprechend der Historie von zuvor behobenen oder unterdrückten Problemen.
  • Sortiert Verstöße passend zu den Fertigkeiten der Entwickler.
  • Schlägt vor, Verstöße innerhalb von semantisch ähnlichem Code zu beheben, um den Korrekturprozess zu beschleunigen.
  • Reduziert redundante Arbeit, indem ein einzelner Entwickler viele Verstöße beseitigt, die auf demselben Hotspot oder ähnlichen Verstößen basieren.
  • Erhöht die Produktivität und damit die Moral des Teams durch eine effektivere Klassifizierung und Einstufung.

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. 


  1. Schneller Testen mit KI und ML
  2. Netflix für die statische Analyse

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Parasoft

Weitere Artikel zu Entwicklungswerkzeuge