Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

So bewältigen Sie Ihren Rückstand an statischen Analysewarnungen und technischen Schulden

Von Billy McMullin

19. September 2019

4  min lesen

Nachdem statische Analysewerkzeuge in den täglichen Arbeitsablauf des Entwicklungsteams integriert wurden, wird in der nächsten Phase daran gearbeitet, den Rückstand an Warnungen und technischen Schulden in einem Projekt zu verringern.

Im Fall eines Produkts, das sich in der Wartung oder in der Entwicklung befindet, ist wahrscheinlich ein beträchtlicher Rückstand zu bewältigen. Im Fall eines Greenfield-Projekts (siehe den ersten Beitrag in meiner statischen Analyseserie, um die Diskussion dieser verschiedenen Projektphasen zu sehen: Erste Schritte mit der statischen Analyse, ohne das Team zu überfordern) gibt es weniger Rückstand, obwohl die Empfehlungen für jeden Reifegrad gleich bleiben.

Der beste Ausgangspunkt für den Umgang mit einem Rückstand an Warnungen ist die Priorisierung und Filterung der Ergebnisse basierend auf dem gewünschten Ergebnis. Am Beispiel der Sicherheit ist es sinnvoll, den Rückstand anhand von Sicherheitswarnungen zu priorisieren, die nach Kritikalität geordnet sind. Dies ist eine Fortsetzung des Ansatzes, der beim erstmaligen Einführen einer statischen Analyse in ein Projekt verwendet wurde. Jetzt liegt der Schwerpunkt auf den nächsten verdaulichen Warnungen, die das Team analysieren muss. Dies wird auf verschiedene Arten gehandhabt Parasoft C / C ++ test, wie wir weiter unten sehen werden.

Dashboards für High-Level-Analysen

Die zentralisierten Berichts- und Analyse-Dashboards von Parasoft bieten Entwicklern und Managern die Möglichkeit, den aktuellen Status eines Projekts aus verschiedenen Blickwinkeln anzuzeigen und bei Bedarf detaillierter zu navigieren, um eine Reihe von Warnungen für weitere Untersuchungen zu erstellen. Betrachten Sie das folgende Dashboard, das die aktuelle Konformität eines Projekts mit dem CERT C-Codierungsstandard zeigt:

Abbildung 1: Ein Beispiel für ein Webportal-Dashboard. In diesem Fall eine Zusammenfassung der CERT C-Konformität.

Mithilfe dieses Webportals können Benutzer tiefer in die Analyse eintauchen, bei Bedarf bis auf Datei- und Codeebene, und Warnungen vollständig im Webportal oder in einer IDE untersuchen. Warnungen können zu diesem Zeitpunkt priorisiert, Entwicklern zugewiesen, unterdrückt oder als falsch positiv markiert werden. Siehe das folgende Beispiel aus dem Parasoft-Explorer:

Abbildung 2: Der Parasoft-Verstoß-Explorer.

Verwalten von Verstößen gegen Codierungsstandards

In den meisten Fällen werden bei der Analyse der Quelle zur Einhaltung der Kodierungsstandards Verstöße als statische Analysewarnungen gemeldet. In einem großen Projekt wird es zunächst viele Warnungen geben, und eine schnelle und effiziente Verwaltung ist von entscheidender Bedeutung. Der Verstoß-Explorer von Parasoft ist das Schlüsselwerkzeug zum Navigieren, Bewerten, Priorisieren und Zuweisen gemeldeter Fehler zur Behebung. Wenn sich ein Verstoß gegen eine statische Analyseregel als gültig, aber gerechtfertigt, als harmlos oder nicht zutreffend herausstellt, kann ein Entwickler den Fehler unterdrücken und eine Abweichung kann dokumentiert werden. Diese Abweichungen werden über jede Projektebene an das Dashboard und die Compliance-Dokumentation gemeldet.

Um die Einhaltung von Codierungsstandards für bestehende Projekte zu ermöglichen, ist es wichtig, dass sich die Teams auf die Regeln konzentrieren, die zuerst als verbindlich angesehen werden. Die Einhaltung basiert häufig auf der Erfüllung der verbindlichen Anforderungen bei Verstößen gegen empfohlene Regeln, wenn diese angemessen dokumentiert sind. Durch Standards können Regeln neu kategorisiert werden, wenn sie nicht vorgeschrieben sind, und Verstöße können berücksichtigt werden, wenn dies gerechtfertigt und dokumentiert ist. Ohne dies wird der Versuch, jeden Verstoß zu korrigieren, unmöglich.

Parasoft spart seinen Benutzern viele zusätzliche Arbeitsstunden, indem das Management über eine navigierbare Oberfläche verfügt, mit der Verstöße untersucht und bei Bedarf automatisch Berichte für Zertifizierungsnachweise erstellt werden können. Ein Beispiel für einen MISRA C-Abweichungsbericht ist unten dargestellt:

Abbildung 3: Ein Beispiel für einen Parasoft MISRA C-Abweichungsbericht.

Verwalten des Rückstands von Fehler- und Sicherheitswarnungen

Für Teams, die statische Analysen anwenden, ist es wichtig zu verstehen, dass nicht alle Warnungen behoben oder analysiert werden müssen. Da nicht alle Warnungen gleich sind, ist der Schweregrad der beste Indikator dafür, wie viel Aufwand für die Untersuchung und Behebung einer Warnung aufgewendet werden sollte. Fortsetzung des im ersten Beitrag diskutierten Ansatzes „Linie im Sand“ Wenn wir uns in dieser Reihe in den Rückstand der Warnungen vertiefen, bewegen wir die Linie im Sand jedes Mal ein bisschen weiter.

Mit Parasoft Jtest und Parasoft C / C ++ können Benutzer Warnungen innerhalb der IDE mithilfe von Konfigurationen priorisieren und filtern. Beispielsweise können Schweregrad und Kategorie (Art der Warnung, z. B. sicherheitsrelevant) verwendet werden, um eine Reihe von Warnungen zu erstellen, die für die Analyse geeignet sind. Ein Beispiel für eine neue Benutzerkonfiguration ist unten dargestellt:

Abbildung 4: Benutzerdefinierte Testkonfigurationseinstellungen in der IDE.

Diese Konfiguration kann verwendet werden, um die Warnungen in der IDE zu filtern:

Abbildung 5: Konfigurationen können in der Ansicht DTP-Ergebnisse in der IDE ausgewählt werden.

Das schrittweise Verschieben der „Linie im Sand“, um die nächsthöhere Priorität und Kategorie anzugehen, ist der beste Ansatz, um mit einem großen Rückstand an Warnungen umzugehen. Letztendlich wird aus Zeit- und Budgetgründen ein Grenzwert erreicht, aber Softwareteams sollten sich sicher fühlen, dass sie trotz des verbleibenden Rückstands an Warnungen die Qualität und Sicherheit erheblich verbessert haben.

Zusammenfassung

In einem großen Projekt wird es zunächst viele Warnungen geben, und eine schnelle und effiziente Verwaltung ist von entscheidender Bedeutung. Für Teams, die statische Analysen anwenden, ist es wichtig zu verstehen, dass nicht alle Warnungen behoben oder analysiert werden müssen. Wählen Sie jedoch ein Tool aus, mit dem Sie gemeldete Fehler zur Behebung navigieren, bewerten, priorisieren und zuweisen können. Das schrittweise Verschieben der „Linie im Sand“, um die nächsthöhere Priorität und Kategorie anzugehen, ist der beste Ansatz, um mit einem großen Rückstand an Warnungen umzugehen.

Neuer Handlungsaufruf
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.

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.