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 verdeutlicht eindrücklich die Wichtigkeit frühzeitiger, automatisierter und umfassender Softwaretests. Wie mein Kollege Miroslaw Zielinski in „Software Testing Insights From the CrowdStrike Incident“ betont , kann das Sparen an der Testqualität aus Zeit- und Kostengründen katastrophale Folgen haben. Tests sind keine bloße Pflichterfüllung, sondern unerlässlich, um sicherzustellen, dass die gelieferte Software zuverlässig, sicher und im realen Einsatz wie erwartet funktioniert.
Obwohl mehrere Faktoren zu diesem Fehler beigetragen haben, ist eine häufige Herausforderung, von der ich immer wieder höre, der ständige Druck, regelmäßig Updates zu veröffentlichen. Dieser Druck macht die Optimierung von Kosten und Zeitaufwand für Tests oft zu einem verlockenden Ziel. Der Schlüssel zur Vermeidung von Vorfällen wie dem CrowdStrike-Fehler liegt jedoch in einem umfassenden, frühzeitigen Testansatz.
Die Softwaretests von Parasoft, insbesondere die statische Analyse , sind darauf ausgelegt, diesen Shift-Left-Ansatz zu unterstützen. Bevor wir uns jedoch mit dieser Lösung befassen, wollen wir zunächst die Vorteile des Shift-Left-Testings 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 weit über einfache Syntaxprüfungen hinaus. Sie analysiert nicht nur Kontroll- und Datenflüsse , um eine Vielzahl von Fehlern und Codierungsproblemen aufzudecken, sondern setzt sich dank einer einzigartigen Anwendung von KI und maschinellem Lernen auch deutlich von der Konkurrenz ab. Unsere KI-gestützte Lösung bewertet neue Ergebnisse der statischen Analyse im Kontext der bisherigen Interaktionen mit der Codebasis und früherer statischer Analysen. So werden Relevanz vorhergesagt und neue Ergebnisse priorisiert, um Unternehmen bei der effektiveren Implementierung statischer Analysen zu unterstützen.
Hier sind nur einige Arten von Fehlern oder Problemen, die durch die statische Analyse erkannt werden können.
Solche Programmierfehler werden in sicherheitskritischen Entwicklungsumgebungen, in denen ein Systemabsturz oder -ausfall Menschenleben kosten kann, gezielt gesucht und behoben. Obwohl Sicherheitskonzepte für CrowdStrike keine Voraussetzung sind, ist Softwarequalität unerlässlich. Daher sollten sie die Anwendung von Codierungsstandards wie MISRA , CERT , CWE oder ähnlichen in Betracht ziehen.
Codierungsstandards wie MISRA werden von Experten mit jahrelanger Erfahrung entwickelt, und Parasoft bietet als Mitwirkender der MISRA C- und C++ 2023 -Codierungsstandards eine robuste Lösung zur statischen Analyse, die auf diesem Fachwissen aufbaut.
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, wodurch ein automatisierter Build-Prozess ausgelöst wird. Nach erfolgreichem Build 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 arbeiten nahtlos mit Tools wie Jenkins, GitLab, Bamboo, VS Code, Eclipse und vielen anderen zusammen.
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 Bedeutung umfassender, automatisierter Tests in der heutigen Softwareentwicklung. Unternehmen können das Risiko solcher Vorfälle deutlich reduzieren, indem sie die Lösungen von Parasoft für statische Analysen in Kombination 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.