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 >>

Statische Analyse hilft Telekom-Toolmaker bei der Bereitstellung hochwertiger Software

Von Ricardo Camacho

30. Januar 2020

5  min lesen

In diesem Artikel werde ich einige der Gründe erläutern, warum statische Analysen ein Muss sind, um Ihre Software-Sicherheits- und Qualitätsziele zu erreichen. Ich werde auch einige Erkenntnisse aus einer statischen Analyse-Bereitstellungsreise unseres geschätzten Kunden teilen.

Eine der besten Möglichkeiten, sich im überfüllten geschäftskritischen Softwarebereich zu differenzieren, besteht darin, sichere und zuverlässige Produkte bereitzustellen, die den Erwartungen Ihrer Kunden entsprechen. Die Bereitstellung fehlerfreier Software ist jedoch eine Herausforderung, insbesondere wenn Ihr Projekt komplexe Konstruktionen nutzt, um die Leistung zu optimieren, Millionen von Codezeilen enthält und von mehreren Entwicklern berührt wird. Aus diesem Grund verlassen sich viele Unternehmen wie G3 Technologies, ein Unternehmen für drahtlose Telekommunikation, das maßgeschneiderte Tools und Lösungen bereitstellt, im Rahmen ihrer Entwicklungspolitik auf statische Analysen. Laden Sie die Fallstudie von G3 Technologies herunter, um mehr zu erfahren.

Wie unterstützt die statische Analyse die Codequalität und -sicherheit?

Die statische Analyse hilft Unternehmen dabei, ihre Software-Sicherheits- und Qualitätsziele zu erreichen, indem der Code anhand von Programmiermustern überprüft wird, von denen bekannt ist, dass sie die Software für Fehler und Sicherheits-Exploits anfällig machen. Codeprüfer für statische Analysen suchen nach Konstruktionen, die zu Speicherverlusten, Problemen mit der Codewartbarkeit und anderen Problemen führen können, und kennzeichnen die Konstruktionen als Verstöße. Beispielsweise melden viele Prüfer einen Verstoß, wenn "goto" - oder "jump" -Anweisungen verwendet werden, da sie die Programmlogik komplexer machen, was die Wahrscheinlichkeit von Software-Absturzfehlern erhöht.

Codeprüfer (auch als statische Analyseregeln bezeichnet) basieren auf Richtlinien wie MISRA C 2012, CWE Top 25 oder OWASP Top Ten, die für viele Branchen zum Standard geworden sind. Für die Bereitstellung der statischen Analyse nutzte G3 die native Unterstützung von Parasoft für alle wichtigen Programmierrichtlinien. Mit Parasoft können Sie außerdem anpassen, welche Prüfer zur Analyse Ihres Codes verwendet werden, und so die Möglichkeit haben, Prüfer nach verschiedenen Standards zu mischen und abzugleichen, damit Sie die Analyse an Ihren Code anpassen können.

G3 verwendet im Rahmen seines kontinuierlichen Integrationsprozesses über 1000 statische Parasoft-Analyseregeln, um sicherzustellen, dass der Produktionscode frei und frei von allgemeinen Programmierproblemen ist. Innerhalb der ersten sechs Monate nach der Bereitstellung der statischen Analysetools von Parasoft hat G3 ungefähr 50,000 Verstöße behoben, von denen einige kritische Fehler waren, wie z. B. Probleme bei der Typkonvertierung, nicht verwendete Variablen und Nullzeiger-Dereferenzen.

Die hohen Kosten für Softwarefehler

Während es immer wertvoll ist, Softwarefehler zu finden, können Unternehmen sie frühzeitig im Entwicklungslebenszyklus finden, um den größten Nutzen aus ihren Investitionen in statische Analysen zu ziehen. Die folgende Tabelle zeigt die Kosten für das Auffinden von Fehlern im Verhältnis zum Software Development Life-Cycle (SDLC).


In ihre Fallstudie, G3 hebt den Wert des Findens von Fehlern in der Codierungsphase hervor. Mithilfe der statischen Analyse konnte G3 Programmierfehler finden, bevor die Software die Produktion erreicht, und so Kosten sparen, die mit dem erneuten Testen, erneuten Zertifizieren und erneuten Bereitstellen verbunden sind. Vor allem aber sorgt die frühzeitige Fehlererkennung dafür, dass G3 bei seinen Kunden einen guten Ruf hat. Ihr proaktiver Ansatz, um so viele Fehler wie möglich frühzeitig zu erkennen, ermöglicht es dem Unternehmen, schnell die hochwertige Software zu liefern, die ihre Kunden erwartet haben, und gleichzeitig Kosten zu vermeiden, die mit der Fehlererkennung im Spätstadium verbunden sind.

Es ist verblüffend, dass einige Unternehmen in ihren Projekten auf statische Analysen verzichten. In einer meiner früheren Funktionen als Projektmanager für Services wurde ich von einem Kunden beauftragt, Unit-Tests an drei Software-Subsystemen durchzuführen. Die Software hatte ungefähr 111,000 Zeilen C- und C ++ - Code. Nachdem ich einige Monate lang getestet und über 620 Fehler identifiziert hatte, entschied ich mich, den Code als Experiment statisch zu analysieren. Ich stelle fest, dass über 80% der durch Unit-Tests identifizierten Fehler innerhalb einer Stunde durch statische Analyse gefunden wurden. Die Kosteneinsparungen für den Kunden wären erheblich gewesen, wenn er eine statische Analyse durchgeführt und diese durch Unit-Tests ergänzt hätte.

Nicht alle statischen Analyselösungen sind gleich

Ein großes Lob, wenn Sie statische Analysen bereitgestellt haben oder bereitstellen möchten. Alle Schritte, die Sie unternehmen, um die Sicherheit und Zuverlässigkeit Ihres Codes zu verbessern, werden von Ihren Benutzern geschätzt. Und obwohl wir alle Bemühungen zur Verbesserung der Software der Welt begrüßen, sollten Sie berücksichtigen, was für Ihr Unternehmen wichtig ist, bevor Sie sich für einen Anbieter für statische Analysen entscheiden.

Es versteht sich von selbst, dass eine gründliche, gründliche und genaue Code-Analyse die Mindestanforderung für jede statische Analyselösung ist. Einige Anbieter konzentrieren ihre statische Analysetechnologie jedoch auf bestimmte Aspekte der Entwicklung, z. B. die Sicherheit. Im Gegensatz dazu besteht Parasofts Ansatz darin, Qualität zu schaffen und Sicherheit in die Anwendung. Einer der Gründe, warum G3 seinen früheren Anbieter für statische Analysen zugunsten von Parasoft verlassen hat, ist, dass sein früherer Anbieter seinen Fokus von der allgemeinen Softwarequalität weg und hin zu einem Hyperfokus auf Sicherheit beschränkt hat.

Abgesehen von Implementierungsunterschieden empfehlen wir die Suche nach einem Anbieter für statische Analysen, der die Bereitschaft zeigt, auf Ihrer Reise zur statischen Analyse mit Ihnen zusammenzuarbeiten. G3 hat seinen Partner in Parasoft gefunden, weil wir uns verpflichtet haben, auf absehbare Zeit mit G3 zusammenzuarbeiten. Der vorherige Anbieter war nicht bereit, mit G3 zusammenzuarbeiten, um die statische Analyselösung zu verbessern. Sie erkannten, dass die Zusammenarbeit mit einem statischen Analysetool-Anbieter bei Verbesserungen nicht nur zur effektiveren Analyse von Code beiträgt, sondern auch sicherstellt, dass der Anbieter verfügbar ist, um G3 bei der Lieferung qualitativ hochwertiger Produkte in die Zukunft zu unterstützen. Laden Sie die Fallstudie von G3 Technologies herunter, um mehr zu erfahren.

Fazit

Die statische Analyse ist der Eckpfeiler jeder Softwarequalitäts- und Sicherheitsrichtlinie. Die Qualitätspraxis hilft Unternehmen, Softwarefehler zum frühestmöglichen Zeitpunkt zu finden, wodurch die Gesamtkosten für Qualität über den gesamten Lebenszyklus der Softwareentwicklung gesenkt werden. Allerdings sind nicht alle Anbieter statischer Analysen gleich. Wenn Sie nach einer statischen Analyselösung suchen oder einen neuen Partner suchen, sollten Sie berücksichtigen, wie der Implementierungsansatz, die Partnerbereitschaft und die Unterstützung der Programmierrichtlinien des Anbieters mit Ihren Softwarequalitäts- und Sicherheitszielen übereinstimmen.

Parasoft ist stolz und geehrt, die statische Analysetechnologie zur Verfügung zu stellen, mit der G3 Technologies weiterhin qualitativ hochwertige Software liefern und gleichzeitig den strengen Release-Zeitplan einhalten kann. Die Softwaretestlösungen von Parasoft und unsere Zusammenarbeit mit G3 haben Parasoft zu einem wichtigen Technologiepartner gemacht, der sicherstellt, dass G3-Softwareanwendungen gleich beim ersten Mal entwickelt werden. Parasoft wurde auch in den kontinuierlichen Integrationsprozess von G3 integriert, um sicherzustellen, dass Software erst dann in Produktion geht, wenn alle identifizierten Fehler behoben wurden. Sie können die Erfolgsgeschichte von G3 lesen, indem Sie diesem Link folgen: Fallstudie zu G3 Technologies

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

Von Ricardo Camacho

Sr. Technical Product Marketing Manager für die eingebetteten Testlösungen von Parasoft. Er verfügt über Erfahrung in der SDLC- und Testautomatisierung eingebetteter Echtzeit-, sicherheitskritischer Anwendungen sowie in der Softwarekonformität mit Industriestandards.

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