Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Zum Abschnitt springen
Wenn Sie Schwierigkeiten haben, mit Ihrem Rückstand an statischen Analysewarnungen und technischen Schulden umzugehen, lesen Sie diesen Beitrag, um zu erfahren, wie Sie dieses Problem lösen können.
Zum Abschnitt springen
Zum Abschnitt springen
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.
Bei einem Produkt, das gewartet oder entwickelt wird, ist wahrscheinlich ein erheblicher Rückstand zu bewältigen. Bei einem Greenfield-Projekt gibt es weniger Rückstand. Die Empfehlungen bleiben jedoch für jede Reifestufe gleich.
Der beste Ausgangspunkt für die Bewältigung eines Rückstaus an Warnungen besteht darin, die Ergebnisse entsprechend dem gewünschten Ergebnis zu priorisieren und zu filtern. Am Beispiel der Sicherheit ist es sinnvoll, den Rückstand in Bezug auf Sicherheitswarnungen nach Kritizität zu priorisieren.
Dies ist eine Fortsetzung des ersten Ansatzes Einführung der statischen Analyse in ein Projekt, aber jetzt liegt der Fokus auf der nächsten verdaulichen Reihe von Warnungen, die das Team analysieren muss. Dies wird von Parasoft C/C++test auf verschiedene Weise gehandhabt, worauf wir weiter unten eingehen werden.
Technische Schulden sind die Kosten, die durch die Verzögerung wesentlicher Arbeiten oder die Inanspruchnahme von Abkürzungen während der Softwareentwicklung entstehen. Bei dieser Form der Verschuldung fallen, wie bei Finanzschulden, mit der Zeit Zinsen an und die Behebung kann teuer werden, wenn sie nicht gelöst wird.
Beispiele für technische Schulden sind:
Leider sind technische Schulden ein häufiges Problem, da Softwareentwicklungsteams häufig der schnellen Bereitstellung von Funktionen Vorrang vor der Erstellung einer robusten Codebasis geben.
Der Abbau technischer Schulden ist aus mehreren Gründen von entscheidender Bedeutung. Es kann:
Die Lösung technischer Schulden ist für die Entwicklung nachhaltiger und wartbarer Softwareprodukte, die sich an sich ändernde Geschäfts- und Kundenanforderungen anpassen können, von entscheidender Bedeutung.
Wenn es um technische Schulden geht, gibt es zwei große Kategorien.
Absichtliche technische Schulden entstehen, wenn ein Team bewusst Abstriche macht, um eine Frist einzuhalten oder ein bestimmtes Ziel zu erreichen. Diese Art technischer Schulden entsteht häufig aus geschäftlichen Gründen, beispielsweise aufgrund des Marktdrucks, und wird als notwendiges Übel angesehen. Der Nachteil besteht darin, dass später zusätzliche Arbeiten erforderlich sein können, beispielsweise eine Umgestaltung, die kostspielig sein kann.
Andererseits entstehen unbeabsichtigte technische Schulden, wenn sich ein Team der Auswirkungen der Entscheidungen, die es während der Entwicklung trifft, nicht bewusst ist. Dies kann auf mangelndes Verständnis oder Fachwissen in einem bestimmten Bereich, mangelnde Ressourcen oder Zeit oder einfach auf mangelnde Disziplin oder Genauigkeit zurückzuführen sein.
Diese Art technischer Schulden ist oft heimtückischer, da sie schwer zu erkennen und zu diagnostizieren ist und später unvorhergesehene Folgen haben kann. Unabhängig von der Art der technischen Schulden ist es wichtig, sich ihrer Existenz bewusst zu sein und Maßnahmen zu ihrer effektiven Bewältigung zu ergreifen, um die langfristige Gesundheit und den Erfolg eines Softwareprojekts sicherzustellen.
Unbeabsichtigte technische Schulden können sich im Laufe der Zeit ansammeln, wenn sie nicht behoben werden, was letztendlich die Wartung und Weiterentwicklung der Software erschwert. Einige Beispiele für unbeabsichtigte technische Schulden sind:
Absichtlich werden technische Schulden mit der Einsicht aufgenommen, dass sie irgendwann in der Zukunft zurückgezahlt werden müssen. Einige Beispiele für absichtliche technische Schulden sind:
Die beste Vorgehensweise bei technischen Schulden besteht darin, einen proaktiven Ansatz zur Verwaltung der Codequalität zu verfolgen, damit Softwareentwickler in der Lage sind reduzieren Sie das Risiko Vermeiden Sie es, zu viele technische Schulden anzuhäufen, und stellen Sie sicher, dass Ihre Software langfristig gesund und nachhaltig bleibt, indem Sie qualitativ hochwertigen Code- und Designpraktiken Priorität einräumen und technische Schulden regelmäßig tilgen. Das bedeutet, in Codequalität, Tests und Dokumentation zu investieren und sicherzustellen, dass die Software im Laufe der Zeit wartbar, skalierbar und sicher bleibt.
Die statische Analyse ist eine automatisierte Methode zur Überprüfung des Quellcodes auf Qualitäts- und Compliance-Probleme. Dies kann nützlich sein, um Sicherheitsprobleme, Sicherheitslücken und Zuverlässigkeitsbedenken zu identifizieren oder Bereiche zu identifizieren, in denen Code in Zukunft möglicherweise schwieriger zu warten oder zu erweitern ist.
Durch die frühzeitige Erkennung technischer Schulden können Teams Maßnahmen ergreifen, um diese zu beheben, bevor sie zu einem größeren Problem werden. Dies kann dazu beitragen, die Codequalität zu verbessern, die Entwicklungszeit zu verkürzen, die Arbeitskosten zu senken und den Gesamtwert von Softwareprodukten zu steigern.
Parasoft ist zentralisiert Berichts- und Analyse-Dashboards Geben Sie Entwicklern und Managern die Möglichkeit, den aktuellen Status eines Projekts aus verschiedenen Blickwinkeln zu betrachten und bei Bedarf weiter ins Detail zu gehen, um eine Reihe von Warnungen für weitere Untersuchungen festzulegen. Betrachten Sie das folgende Dashboard, das die aktuelle Konformität eines Projekts mit dem CERT C-Sicherheitscodierungsstandard zeigt.
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 in dieser Phase priorisiert, Entwicklern zugewiesen, unterdrückt oder als falsch positiv markiert werden. Sehen Sie sich das folgende Beispiel aus dem Parasoft-Explorer an.
In den meisten Fällen werden bei der Analyse des Quellcodes zur Einhaltung von Codierungsstandards Verstöße als statische Analysewarnungen gemeldet. Bei einem großen Projekt wird es zunächst viele Warnungen geben. Ihre schnelle und effiziente Verwaltung ist von entscheidender Bedeutung. Der Verstoß-Explorer von Parasoft ist das wichtigste Tool zum Navigieren, Bewerten, Priorisieren und Zuweisen gemeldeter Fehler zur Behebung.
Erweist sich ein Verstoß gegen die statische Analyseregel als gültig, aber vertretbar, als harmlos oder nicht anwendbar, kann ein Entwickler den Fehler unterdrücken und eine Abweichung dokumentieren. Diese Abweichungen werden auf jeder Ebene des Projekts 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 zunächst auf die Regeln konzentrieren, die als verbindlich gelten. Compliance basiert häufig auf der Erfüllung der zwingenden Anforderungen bei Verstößen gegen empfohlene Regeln, sofern diese angemessen dokumentiert sind. Standards ermöglichen die Neukategorisierung von Regeln, wenn sie nicht verbindlich sind, und erlauben Verstöße, wenn sie gerechtfertigt und dokumentiert sind. Ohne dies wird der Versuch, jeden Verstoß zu korrigieren, unmöglich.
Parasoft nutzt künstliche Intelligenz (KI) und maschinelles Lernen (ML). Berichterstattung und Analyse Lernen Sie sowohl aus historischen Interaktionen mit der Codebasis als auch aus früheren statischen Analyseergebnissen, um die Relevanz vorherzusagen und die neuen Ergebnisse zu priorisieren.
Entwicklungsmanager und Führungskräfte sparen außerdem zusätzliche Arbeitsstunden durch eine navigierbare Benutzeroberfläche, mit der sie Verstöße untersuchen und bei Bedarf automatisch Berichte für Zertifizierungsnachweise erstellen können. Ein Beispiel für einen MISRA C-Abweichungsbericht ist unten dargestellt.
Es ist wichtig für Teams, die es sind Übernahme der statischen Analyse um zu verstehen, dass es nicht notwendig ist, alle Warnungen zu beheben oder zu analysieren. Da nicht alle Warnungen gleich erstellt werden, ist der Schweregrad der beste Indikator dafür, wie viel Aufwand in die Untersuchung und Behebung einer Warnung gesteckt werden sollte. Wenn Teams sich mit dem Rückstand an Warnungen befassen, verschieben die Teams die „Grenze im Sand“ jedes Mal ein Stück weiter.
Parasofts Test und C / C ++ - Test Ermöglichen Sie Benutzern, Warnungen innerhalb der IDE mithilfe von Konfigurationen zu priorisieren und zu filtern. Sie können beispielsweise einen Schweregrad und eine Kategorie verwenden, um eine Reihe von Warnungen zu erstellen, die für die Analyse geeignet sind. Ein Beispiel für eine neue Benutzerkonfiguration ist unten dargestellt.
Mit dieser Konfiguration können die Warnungen in der IDE gefiltert werden.
Das schrittweise Verschieben der „Linie im Sand“, um die nächsthöhere Priorität und Kategorie in Angriff zu nehmen, ist der beste Ansatz, um mit einem großen Rückstand an Warnungen umzugehen. Irgendwann erreichen Softwareteams aus Zeit- und Budgetgründen einen Grenzwert. Sie sollten sich jedoch sicher sein können, dass sie trotz eines verbleibenden Rückstands an Warnungen deutliche Verbesserungen bei Qualität und Sicherheit erzielt haben.
Die Vermeidung technischer Schulden erfordert a proaktiven Herangehensweise Daran ist das gesamte Softwareentwicklungsteam beteiligt. Hier sind einige Best Practices, die dabei helfen können, technische Schulden zu vermeiden.
Durch die Befolgung dieser Best Practices können Softwareentwicklungsteams dazu beitragen, technische Schulden zu vermeiden und sicherzustellen, dass sie sichere, zuverlässige und wartbare Softwareprodukte entwickeln.
Bei einem großen Projekt wird es zunächst viele Warnungen geben. Ihre schnelle und effiziente Verwaltung ist von entscheidender Bedeutung. Für Teams, die statische Analysen anwenden, ist es wichtig zu verstehen, dass die Behebung oder Analyse aller Warnungen unnötig ist. Stellen Sie stattdessen sicher, dass Sie ein Tool auswählen, mit dem Sie navigieren, bewerten, priorisieren und gemeldete Fehler zur Behebung zuweisen können. Das schrittweise Verschieben der „Linie im Sand“, um die nächsthöhere Priorität und Kategorie in Angriff zu nehmen, ist der beste Ansatz, um mit einem großen Rückstand an Warnungen umzugehen.
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.