Parasoft-Logo Suche

Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »

Parasoft-Blog

Statische Analyse hilft Telekom-Toolmaker bei der Bereitstellung hochwertiger Software

By Richard Camacho • 30. Januar 2020 • 4 min gelesen
30. Januar 2020 | 4 min gelesen
By Richard Camacho
Grafik einer Lupe, die einen Fehler im Quellcode auf einem Computerbildschirm vergrößert.

Die Bedeutung der statischen Analyse für die Gewährleistung der Qualität Ihres Softwarecodes ist nicht zu unterschätzen. Lesen Sie, um zu erfahren, wie entscheidend die statische Analyse für das Erreichen von Softwaresicherheits- und Qualitätszielen ist.

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.

Einer der besten Wege, sich im hart umkämpften Markt für geschäftskritische Software zu differenzieren, ist die Bereitstellung sicherer und zuverlässiger Produkte, die die Kundenerwartungen erfüllen. Fehlerfreie Software zu entwickeln ist jedoch eine Herausforderung, insbesondere wenn Ihr Projekt komplexe Strukturen zur Leistungsoptimierung nutzt, Millionen von Codezeilen umfasst und von mehreren Entwicklern bearbeitet wird. Aus diesem Grund setzen viele Unternehmen, wie beispielsweise G3 Technologies, ein Anbieter von kundenspezifischen Tools und Lösungen im Bereich der drahtlosen Telekommunikation, auf statische Analyse als Teil ihrer Entwicklungsstrategie. Laden Sie die Fallstudie von G3 Technologies herunter, um mehr zu erfahren.

Wie unterstützt die statische Analyse die Qualität und Sicherheit von Code?

Statische Analyse hilft Unternehmen, ihre Softwaresicherheits- und -qualitätsziele zu erreichen, indem sie den Code anhand bekannter Programmiermuster prüft, die die Software anfällig für Fehler und Sicherheitslücken machen. Code-Checker für statische Analyse suchen nach Konstruktionen, die zu Speicherlecks, Problemen bei der Codewartung und anderen Problemen führen können, und kennzeichnen diese Konstruktionen als Verstöße. Beispielsweise melden viele Checker einen Verstoß, wenn „goto“- oder „jump“-Anweisungen verwendet werden, da diese die Programmlogik komplexer machen und so die Wahrscheinlichkeit von Softwareabstürzen erhöhen.

Code-Prüfer (auch statische Analyseregeln genannt) basieren auf Richtlinien wie MISRA C 2012, CWE Top 25 oder OWASP Top Ten, die in vielen Branchen zu Standards geworden sind. Für die Implementierung ihrer statischen Analyse nutzte G3 die native Unterstützung von Parasoft für alle wichtigen Programmierrichtlinien. Parasoft ermöglicht es Ihnen außerdem, die zur Codeanalyse verwendeten Prüfer individuell anzupassen. So können Sie Prüfer verschiedener Standards kombinieren und die Analyse optimal auf Ihren Code zuschneiden.

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

Bild. Jones, Capers. Angewandte Softwaremessung. Zeigt den Prozentsatz eingeführter Defekte im Vergleich zum Prozentsatz gefundener Defekte im Vergleich zu den Kosten zur Reparatur des Defekts nach Entwicklungsphase.
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 tiefgehende, gründliche und präzise Codeanalyse die Mindestanforderung an jede statische Analyselösung darstellt. Einige Anbieter konzentrieren sich bei ihrer statischen Analysetechnologie jedoch auf spezifische Entwicklungsaspekte wie die Sicherheit. Parasoft hingegen integriert Qualität und Sicherheit von Anfang an in die Anwendung. Tatsächlich war einer der Gründe, warum G3 den vorherigen Anbieter für statische Analyse zugunsten von Parasoft verließ, dass dieser den Fokus von der allgemeinen Softwarequalität hin zu einer übermäßigen Fokussierung auf die Sicherheit verlagerte.

Ungeachtet der Unterschiede in der Implementierung empfehlen wir Ihnen, einen Anbieter für statische Codeanalyse zu wählen, der bereit ist, Sie auf Ihrem Weg zur Verbesserung der statischen Analyse partnerschaftlich zu begleiten. G3 hat mit Parasoft den idealen Partner gefunden, da wir uns verpflichtet haben, auch in absehbarer Zukunft mit G3 zusammenzuarbeiten. Der vorherige Anbieter war nicht an einer Zusammenarbeit mit G3 zur Verbesserung seiner Lösung für die statische Codeanalyse interessiert. G3 erkannte, dass die Zusammenarbeit mit einem Anbieter von Tools für die statische Codeanalyse bei der Weiterentwicklung nicht nur eine effektivere Codeanalyse ermöglicht, sondern auch sicherstellt, dass der Anbieter G3 langfristig bei der Bereitstellung hochwertiger Produkte unterstützt. 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 darauf, G3 Technologies mit seiner Technologie zur statischen Softwareanalyse dabei zu unterstützen, weiterhin qualitativ hochwertige Software zu liefern und gleichzeitig den anspruchsvollen Release-Plan einzuhalten. Dank der Softwaretestlösungen von Parasoft und unserer partnerschaftlichen Zusammenarbeit mit G3 ist Parasoft zu einem wichtigen Technologiepartner geworden, der sicherstellt, dass die Softwareanwendungen von G3 von Anfang an fehlerfrei entwickelt werden. Parasoft ist zudem in den Continuous-Integration-Prozess von G3 integriert und garantiert so, dass die Software erst dann in Produktion geht, wenn alle identifizierten Fehler behoben sind. Die Erfolgsgeschichte von G3 finden Sie hier: G3 Technologies Fallstudie

Entdecken Sie den Wert der Verwendung einer einheitlichen C/C++-Testlösung und wie Sie den Test-ROI maximieren können.
Holen Sie sich das Whitepaper

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