Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

Statische Analysetools: Wenn weniger mehr ist

Statische Analysetools: Wenn weniger mehr ist Lesezeit: 3 Minuten

Statische Code-Analyse (oder statische Analyse) ist eine Softwaretestaktivität in der Softwareentwicklung, bei der der Quellcode auf Konstrukte analysiert wird, von denen bekannt ist, dass sie mit Softwarefehlern oder Sicherheitslücken verbunden sind. Wenn ein Konstrukt mit hohem Risiko erkannt wird, meldet das statische Analysetool einen Verstoß, den der Entwickler anzeigen und beheben kann.

Das Ausführen statischer Analysen auf dem Desktop bietet einige Vorteile und kann für kleine Teams oder Projekte funktionieren. In großen Organisationen sollte die statische Analyse jedoch auch als Teil nächtlicher Builds und kontinuierlicher Integration automatisiert werden. Bei der Implementierung als integraler Bestandteil des Entwicklungsprozesses bietet die Analyse Ihres Codes mit statischer Analyse eine Reihe von Vorteilen. Durch die konsequente Durchführung statischer Analysen in den frühen Phasen des Projekts können Sie systemische Fehler finden und beheben, wenn die Kosten für die Behebung am niedrigsten sind. Die statische Codeanalyse hilft Ihnen, Fehler frühzeitig zu finden und zu beheben, wodurch das Wiederauftreten systemischer Fehler nachgelagerter Prozesse verhindert werden kann. Mit einer Richtlinie zur Früherkennung können Sie einfacher eine Richtlinie zur Fehlervermeidung implementieren, die die Fehlerrate über den Entwicklungslebenszyklus reduziert.

Während der Übernahme der statischen Analyse in ein Projekt kann dies jedoch manchmal überwältigend sein. Wenn Sie über eine große Codebasis verfügen, können statische Analysetools eine große Anzahl von Verstößen melden. In diesem Beitrag wurden zwei Tipps zum Abnehmen von Berichten über Verstöße gegen statische Analysen erläutert.

Tipp 1: Verwenden Sie die Unterdrückung statischer Analysewerkzeuge für Ausnahmen in bestimmten Situationen

In einigen Fällen müssen Sie möglicherweise eine statische Analyseregel befolgen, möchten jedoch unter bestimmten Umständen Ausnahmen zulassen. Möglicherweise haben Sie eine Regel, für die eine zusätzliche Validierungsstufe im Code erforderlich ist. Angenommen, Sie haben eine bestimmte Methode mit leistungskritischem Code, die hunderte Male pro Minute aufgerufen wird - und Sie haben bereits überprüft, ob eine angemessene Validierungsstufe durchgeführt wurde, bevor diese bestimmte Methode aufgerufen wird. Oder nehmen Sie an, dass die flussbasierte Analyse Sie vor einem schwerwiegenden Problem auf einem Pfad warnt, von dem Sie zu 100% sicher sind, dass er nicht in der integrierten Anwendung verwendet werden kann. Hier bieten sich Unterdrückungen für statische Analysen an.

Unterdrückungen sind ideal für Situationen, in denen Sie nach etwas suchen möchten, sich aber nicht um gemeldete Probleme in Ausnahmesituationen kümmern. Mit Unterdrückungen können Sie weiterhin nach einem kritischen Problem suchen, ohne wiederholt Nachrichten über Ihre absichtlichen Verstöße gegen statische Analyseregeln zu erhalten. Wenn Sie keine Fehlermeldungen für Verstöße gegen eine bestimmte Regel erhalten möchten, empfehlen wir, die Regel vollständig zu deaktivieren (siehe oben) Blog über das Bereinigen Ihres statischen Analyseregelsatzes).

Sie können Unterdrückungen normalerweise über die grafische Benutzeroberfläche des statischen Analysetools, eine Konfigurationsdatei oder den Quellcode selbst definieren. Wenn im Quellcode Unterdrückungen definiert sind:

  • Sie stellen sicher, dass dieselben Unterdrückungen angewendet werden, wenn Sie oder ein Teammitglied diesen Code analysieren.
  • Sie können Codekommentare hinzufügen, die jede Unterdrückung erläutern, sodass der Grund für jede Unterdrückung immer klar ist, wenn Sie oder Teammitglieder den Code überprüfen oder ändern.
  • Sie erhalten eine genaue Kontrolle darüber, welche Regeln auf Datei-, Klassen- oder Zeilenebene durchgesetzt werden.

Sie können normalerweise Verstöße gegen eine bestimmte Regel, eine Reihe von Regeln oder alle Verstöße gegen eine bestimmte Kategorie unterdrücken. Sie können auch bestimmte Codeabschnitte von allen statischen Analysen ausnehmen (mehr dazu im nächsten Tipp).

Tipp 2: Verhindern Sie, dass Ihr statisches Analysetool problematische Dateien oder Codestücke überprüft

Manchmal ist es einfach nicht sinnvoll, statische Analysetools für bestimmte Dateien auszuführen, z. B. automatisch generierte Dateien oder Legacy-Dateien, die Sie nicht berühren möchten. In diesen Fällen sollten Sie verhindern, dass diese Dateien analysiert werden. Dies ist eine weitere Möglichkeit, um sicherzustellen, dass Ihre Ergebnisse nicht mit einer Reihe von Verstößen überfüllt sind, die Sie nicht beheben möchten.

Es gibt einige Möglichkeiten, dies zu tun. Sie können Pfadfilter einrichten, um Dateien auszuschließen, die Sie nicht überprüfen möchten, oder nur diejenigen einschließen, die Sie überprüfen möchten. Sie können Ihr Tool auch so konfigurieren, dass Dateien mit einem bestimmten Kommentar übersprungen werden, z. B. ein Kommentar, der automatisch generierten Code angibt.

Weitere Möglichkeiten, die Überprüfung Ihres statischen Analysetools zu fokussieren, sind:

  • Hinzufügen von Markierungen, um bestimmte Codeblöcke anzuzeigen, die in ansonsten ausgenommenen Dateien überprüft werden sollen.
  • Ausschluss bestimmter Methoden in Dateien, die anderweitig analysiert werden.
  • Überprüfen Sie nur Dateien, die seit einem bestimmten Stichtag nicht mehr hinzugefügt oder geändert wurden.
  • Überprüfen Sie nur Dateien, die nach einem „Stichtag“ oder innerhalb einer bestimmten Anzahl von Tagen hinzugefügt oder geändert wurden.

Um mehr über die statische Analyse von Parasoft zu erfahren, gehen Sie zu: https://www.parasoft.com/solutions/static-code-analysis

Geschrieben von

Parasoft

Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.

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