Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »
Parasoft-Blog
Unternehmen können das Risiko von Vorfällen wie dem Ausfall von CrowdStrike erheblich reduzieren, indem sie Softwaretests automatisieren und nach links verschieben. Lesen Sie weiter, um die Vorteile eines Shift-Left-Ansatzes für Tests zu entdecken.
Zum Abschnitt springen
Der Fehler beim CrowdStrike-Softwareupdate ist eine wichtige Lektion in Bezug auf die Bedeutung frühzeitiger, automatisierter und umfassender Softwaretests. Wie mein Kollege Miroslaw Zielinski, betont in Erkenntnisse zum Softwaretest aus dem CrowdStrike-Vorfall, wenn man beim Testen Abstriche macht, um Zeit und Geld zu sparen, kann das zu katastrophalen Ergebnissen führen. Beim Testen geht es nicht nur darum, ein Häkchen zu setzen. Es ist ein wichtiger Teil, um sicherzustellen, dass die von Ihnen gelieferte Software zuverlässig und sicher ist und in der realen Welt die erwartete Leistung erbringt.
Obwohl es mehrere Faktoren für diesen Ausfall gibt, ist eine häufige Herausforderung, von der ich von Organisationen immer wieder höre, der unerbittliche Druck, häufige Updates zu veröffentlichen. Dieser Druck macht die Optimierung der Kosten und Zeit für Tests oft zu einem attraktiven Ziel. Der Schlüssel zur Vermeidung von Vorfällen wie dem CrowdStrike-Ausfall liegt jedoch in der Einführung eines umfassenden, Shift-Left-Ansatz zum Testen.
Parasofts Softwaretests, insbesondere statische Analyse, wurde entwickelt, um diesen Shift-Left-Ansatz zu ermöglichen. Doch bevor wir uns mit dieser Lösung befassen, wollen wir zunächst die Leistungsfähigkeit von Shift-Left-Tests verstehen.
Shift-Left-Tests sind eines der leistungsstärksten Konzepte in der modernen Softwareentwicklung. Sie ermöglichen eine frühzeitige Fehlererkennung und verbessern die allgemeine Codequalität. Traditionell wurden Tests und Debugging gegen Ende des Entwicklungszyklus durchgeführt – nachdem der Code geschrieben und integriert war – und oft nach den ersten Testphasen. Dieser Ansatz führte normalerweise dazu, dass kritische Fehler und Probleme erst spät im Prozess entdeckt wurden, wenn ihre Behebung viel schwieriger und zeitaufwändiger war.
Durch die Implementierung einer statischen Analyse während des Implementierungsprozesses können Ingenieure Codierungsprobleme oder Compliance-Verstöße bereits beim Schreiben des Codes beheben. Dieses unmittelbare Feedback ermöglicht es Entwicklern, Probleme sofort zu beheben, wodurch die Codequalität von Anfang an deutlich verbessert wird. Das Ergebnis ist eine erhebliche Reduzierung von Mängeln, die sonst erst später im Entwicklungslebenszyklus entdeckt würden, wo ihre Behebung zunehmend komplexer und kostspieliger wird.
Wenn beispielsweise ein Defekt frühzeitig durch eine statische Analyse erkannt wird, kann er schnell und effizient behoben werden. Wird derselbe Defekt jedoch erst später durch Qualitätssicherungstests erkannt, wird der Lösungsprozess komplizierter. Es sind mehr Teammitglieder involviert und die Schritte zum Protokollieren, Melden, Reproduzieren und Beheben des Problems dauern länger, was zu erhöhtem Aufwand und Verzögerungen führt.
Noch mehr auf dem Spiel steht, wenn der Defekt die Produktion erreicht. Die Behebung eines Defekts im Feld ist besonders schwierig, da er sich direkt auf die Kunden auswirkt und möglicherweise dringende Patches, Rückrufe oder sogar Schadensbegrenzung erfordert, um den Ruf des Produkts zu schützen. Das Entwicklungsteam muss schnell handeln, um den Fehler zu beheben, während das QA-Team die Lösung erneut testen muss, was den Prozess noch komplexer macht.
Bei der Betrachtung des CrowdStrike-Vorfalls wird deutlich, wie wichtig die statische Analyse bei der Erkennung und Behebung von Mängeln in einem frühen Stadium des Entwicklungsprozesses ist, um zu verhindern, dass kostspielige und schädliche Probleme in die Produktion gelangen.
Die statische Analyse ist eine erweiterte Technik zum Untersuchen von Quellcode, um potenzielle Fehler wie die Verwendung nicht initialisierter Variablen, Dereferenzierung von NULL-Zeigern, Pufferüberläufe und viele andere Codierungsfehler zu identifizieren, ohne den Code auszuführen.
Die statische Analyse-Engine von Parasoft geht beispielsweise über einfache Syntaxprüfungen hinaus. Sie führt nicht nur Kontrollfluss-, sondern auch Datenanalysen durch. Durchflussanalyse Es erkennt nicht nur eine Vielzahl von Fehlern und Programmierproblemen, sondern hebt sich durch eine einzigartige Anwendung von KI und maschinellem Lernen auch deutlich von der Konkurrenz ab. KI-gesteuerte Lösung überprüft neue Ergebnisse der statischen Analyse im Kontext historischer Interaktionen mit der Codebasis und vorheriger Ergebnisse der statischen Analyse, prognostiziert die Relevanz und priorisiert neue Ergebnisse, um Unternehmen dabei zu helfen, statische Analysen effektiver einzuführen.
Hier sind nur einige Arten von Fehlern oder Problemen, die durch die statische Analyse erkannt werden können.
Diese Arten von Programmierfehlern werden bei sicherheitskritischen Entwicklungen aggressiv gesucht und behoben, da bei Systemabstürzen oder -ausfällen Menschenleben verloren gehen können. Obwohl Sicherheitskonzepte für CrowdStrike keine Voraussetzung sind, ist die Softwarequalität eine Voraussetzung. Daher sollten sie die Einführung von Programmierstandards wie MISRA, CERT, CWE, oder andere.
Kodierungsstandards wie MISRA werden von Experten mit langjähriger Erfahrung entwickelt, und Parasoft, als beitragendes Mitglied der MISRA C und C++ 2023 Kodierungsstandards, bietet eine robuste statische Analyselösung, die auf diesem Fachwissen basiert.
Trotz dieser klaren Vorteile ist es überraschend, wie viele Entwicklungsteams immer noch keine statische Analyse verwenden. Die Einführung einer statischen Analyse ist unerlässlich, um die Kosten beim Softwaretest zu senken und gleichzeitig die Codequalität zu verbessern.
Durch die Einbindung statischer Analysen in die CI/CD-Pipeline (Continuous Integration/Continuous Deployment) hätte CrowdStrike automatisch Speicherzugriffsprobleme identifizieren können, die zum Fehlschlagen des Software-Updates führten.
In einer modernen CI/CD-Umgebung schreiben und committen Entwickler Code und lösen damit einen automatisierten Build-Prozess aus. Wenn ein Build erfolgreich abgeschlossen ist, werden automatisierte Tests, einschließlich statischer Analyse, ausgeführt. Parasoft C- und C++-Testlösungen wie C/C++test lassen sich problemlos in CI/CD-Pipelines integrieren und funktionieren nahtlos mit Tools wie Jenkins, GitLab, Bamboo, VS Code, Eclipse und vielen anderen.
Diese Integration stellt sicher, dass die Codequalität kontinuierlich überwacht und verbessert wird, wobei Entwickler sofortiges Feedback zu allen Problemen erhalten, die durch die statische Analyse identifiziert werden. Durch die Automatisierung dieser Qualitätsprüfungen können Unternehmen:
Der CrowdStrike-Vorfall bietet Entwicklungsteams wertvolle Lehren.
Der Fehler beim CrowdStrike-Softwareupdate unterstreicht die Wichtigkeit einer umfassenden automatisierte Tests In der heutigen Softwareentwicklungsumgebung können Unternehmen das Risiko solcher Vorfälle deutlich reduzieren, indem sie die Lösungen von Parasoft für statische Analysen in Verbindung mit Unit-Tests, Codeabdeckung und anderen Testmethoden nutzen. Unsere Tools unterstützen Teams dabei, hohe Standards für Softwarequalität zu gewährleisten und gleichzeitig Geschäftsrisiken zu managen. So stellen wir sicher, dass ihre Software zuverlässig, sicher und einsatzbereit ist.
Der ultimative Leitfaden zu CI/CD für eingebettete Softwaresysteme
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.