Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Integration der statischen Analyse in alltägliche Workflows

Von Billy McMullin

20. Juni 2019

4  min lesen

Um statische Analysen erfolgreich in Ihr Projekt zu integrieren, ist es wichtig sicherzustellen, dass Ihr statisches Analysetool einfach zu verwenden und für Entwickler leicht zugänglich ist und nützliche, umsetzbare Informationen im Voraus bereitstellt. Dann was? In diesem Beitrag erfahren Sie, wie Sie die Akzeptanz Ihrer statischen Analyse mit einem effektiven täglichen Workflow maximieren können.

Wenn Sie den Blog der letzten Woche noch nicht gelesen haben Erste Schritte mit der statischen AnalyseIch empfehle Ihnen, dies zu tun, um zu verstehen, wie Sie Ihre ersten Berichte mit statischen Analysetools interpretieren und mit den ersten Analysen umgehen können, ohne das Team zu überfordern.

Im zweiten Teil dieser kleinen Einstiegsreihe geht es darum, wie Sie statische Analysewerkzeuge in Ihre täglichen Arbeitsabläufe integrieren können. Wie integrieren Sie jeden Tag statische Analysen?

Wie sich herausstellt, ist dies der Schlüssel. Um sicherzustellen, dass Ihre statische Analyse in Ihrem Projekt erfolgreich ist, müssen Sie sicherstellen, dass die Tools einfach zu verwenden und für Entwickler leicht zugänglich sind und nützliche, umsetzbare Informationen im Voraus bereitstellen. Dies wird am besten in der Umgebung erreicht, in der der Entwickler arbeitet (IDE), wie z. B. Eclipse oder Visual Studio. Statische Analysewarnungen werden auf die gleiche Weise wie Compilerfehler in der IDE übermittelt. Diese Warnungen werden im Code hervorgehoben, um die Analyse und Korrektur erheblich zu vereinfachen. Sehen Sie sich beispielsweise diesen Screenshot der in Eclipse integrierten statischen Analysewarnungen von Parasoft Jtest an:

Wie Sie im obigen Beispiel einer Java-Anwendung in Eclipse sehen können, ergibt sich die statische Analyse aus Parasoft Jtest werden in einer Warn- / Fehleransicht (1) geliefert und können wie jede andere Fehlermeldung bearbeitet werden. Durch Auswahl eines Fehlers wird der Editorbereich (2) zu der betreffenden Codezeile weitergeleitet, in der auch die Kontrollflussablaufverfolgung im Code angezeigt wird, mit der die Hauptursachen der Warnung ermittelt werden können. Wenn eine Korrektur erforderlich ist, kann der Code wie gewohnt über die Projektnavigationsansicht (3) übermittelt werden.

Was macht ein Entwickler, wenn er jede Warnung analysiert? Dies lässt sich am besten in einem unten gezeigten Prozessdiagramm beschreiben:

Schritt 1: Aggregat- und Filterwarnungen

Es beginnt mit der Aggregation und Filterung der statischen Analyseergebnisse, einem wichtigen ersten Schritt, um wichtige Warnungen zu priorisieren und sich darauf zu konzentrieren. In der Regel entscheiden QS- und Teamleiter über das Qualitätsziel und strukturieren die Konfiguration der Analyse um dieses Ziel herum. Um beispielsweise die Sicherheit zu verbessern, würden Sicherheitsprüfer zusammen mit einem sicheren Codierungsstandard wie CERT C aktiviert.

Schritte 2-4: Warnungen untersuchen, priorisieren und beheben

Die Entwickler untersuchen und korrigieren dann die Warnungen, die sie finden, basierend auf den Richtlinien des Teams und der Reife des Produkts. Wie in erklärt meinem letzten BeitragIn einem Greenfield-Projekt würden die meisten Warnungen untersucht und priorisiert, da die Codemenge relativ gering wäre, während in späteren Reifegraden die Filterung und Priorisierung strenger wäre, sodass Entwickler nur wirklich kritische Warnungen ansprechen würden. In beiden Fällen ist der Prozess der gleiche.

Schritt 5: Source Check-In

Nachdem Änderungen als Reaktion auf eine statische Analysewarnung vorgenommen wurden, wird der Code in die Versionskontrolle eingecheckt und beim nächsten Build erneut analysiert. Diese kurze und enge Rückkopplungsschleife verbessert die Qualität und Sicherheit des Codes zum Zeitpunkt des Schreibens und Änderns erheblich.

Integration in Build-Systeme und Pipelines für die kontinuierliche Integration

Der Hauptintegrationspunkt für statische Analysetools und Build-Systeme ist eine Befehlszeilenschnittstelle. Die auf diese Weise verwendete statische Analyse verhält sich ähnlich wie ein Compiler in der Build-Struktur. Dateien werden auf die gleiche Weise verarbeitet, obwohl die Ausgabe keine ausführbare Datei ist, sondern Ergebnisse, die in einem Repository gespeichert und nach Datei und Build-Nummer indiziert werden.

Mit Parasoft C / C ++ testDies wird beispielsweise vom Berichts- und Analysesystem von Parasoft (Parasoft DTP) erledigt, das sowohl ein Repository als auch eine Intelligence-Engine ist, die die Ergebnisse analysiert. Diese Analyse und die dazugehörigen Informationen werden an jeden Entwickler an seine IDE zurückgesendet und über das Parasoft-Webportal für Manager und Teamleiter verfügbar gemacht.

In der obigen Abbildung sehen Sie, wie wir statische Analysetools von Parasoft in eine Pipeline für die kontinuierliche Integration integrieren. Parasoft DTP ist das zentrale Repository und die Analyse-Engine für Warnungen.

Zusammenfassung

Für die Integration der statischen Analyse in die täglichen Arbeitsabläufe muss der Entwickler sowohl direkt in der IDE auf die statische Analyse zugreifen als auch projektweit analysieren, berichten und verwalten können. Die Unterstützung von Entwicklern direkt dort, wo sie mit Code arbeiten, sowie von Teamleitern und Managern, die Zugriff auf dieselben Informationen mit ihren eigenen Trendinformationen und Berichten haben, ist entscheidend, um die statische Analyse in einem Projekt vollständig nutzen zu können.

Hungrig auf mehr? Komm bald zurück für den nächsten Teil dieser kleinen Serie. Ich werde erklären, wie mit statischen Analysen umgegangen wird, die Rückstände und technische Schulden warnen.

Erste Schritte mit der statischen Analyse

Von Billy McMullin

Als Solution Architect bei Parasoft unterstützt Billy Teams bei der Strategieplanung und Priorisierung, wenn sie moderne Softwareentwicklungs- und Testpraktiken in ihre Organisation übernehmen.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.