Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

C / C ++ - Laufzeitanalyse

Embedded C-Laufzeitanalyse

Unterstützt von Parasoft C / C ++ Test, der umfassendsten Lösung für Entwicklungstests für C und C ++

Laufzeitanalyse für Embedded C-Anwendungen

Parasoft C/C++test findet Laufzeitfehler, Stabilitätsprobleme und Sicherheitslücken wie Speicherlecks, Nullzeiger, nicht initialisierten Speicher und Pufferüberläufe, indem es die Laufzeit beim Ausführen einer hostbasierten oder eingebetteten Anwendung oder einer ausführenden Einheit überwacht in C geschriebene Tests. Die Laufzeitkomponente ist extrem leichtgewichtig und benötigt nur wenig zusätzlichen Code und Datenspeicher. Dies ist ideal für Anwendungsfälle in der Automobilindustrie, um die ISO 21434-Cybersicherheitsanforderungen zu erfüllen, die blinde Flecken in Straßenfahrzeugsoftware aufdecken.

Wie funktioniert es?

Der Parasoft C / C ++ - Test instrumentiert automatisch die Codebasis einer Anwendung, um die Überwachung zu aktivieren, wenn die Anwendung ausgeführt wird, und um schwerwiegende Fehler, Stabilitätsprobleme und Sicherheitslücken zu identifizieren, wie z.

  • Speicherlecks
  • Speicherbeschädigung
  • Nicht initialisierten Speicher lesen
  • Zugriff auf den Speicher mit einem Zeiger außerhalb des Bereichs (z. B. Pufferüberlauf)
  • Zugriff auf den Speicher mit einem Nullzeiger
  • Verwenden von free () für einen ungültigen Zeiger

Die Laufzeitanalyse des Parasoft C / C ++ - Tests bietet vordefinierte Testkonfigurationen, um sowohl native als auch eingebettete Anwendungen mit Speicherzuordnungen im C-Stil (malloc / free) zu unterstützen. Die Laufzeitanalyse kann sowohl während des Komponententests durchgeführt werden, um bestimmte Szenarien und Ausführungspfade zu validieren, als auch während des Funktionstests, um die vollständig integrierte Anwendung zu überwachen.

Fehler, die während des Laufzeittests gefunden wurden, können direkt in der IDE des Entwicklers dargestellt und mit anderen Testergebnissen und Qualitätsmetriken wie Codeabdeckung oder korreliert werden Ergebnisse der statischen Analyse von Parasoft C/C++test, damit der Benutzer sich ein vollständiges Bild der getesteten Anwendung machen kann, was es einfacher macht, die Grundursache von Laufzeitfehlern zu verstehen.

Eigenschaften

Der Parasoft C / C ++ - Test überwacht eine laufende Anwendung und erkennt Laufzeitprobleme (z. B. Speicherverluste, Speicherbeschädigung, Lesen von nicht initialisiertem Speicher, Pufferüberläufe), die zu Stabilitätsproblemen, Funktionsstörungen oder Sicherheitslücken führen können. Im Gegensatz zur statischen Analyse, bei der Warnungen nicht unbedingt zu Fehlern im laufenden Code führen (auch als False Positives bezeichnet), sind bei der dynamischen Analyse gefundene Fehler immer True Positives.

Der Parasoft C / C ++ - Test überwacht Testbinärdateien beim Ausführen von Komponententests und bietet Einblicke in den zu testenden Code, um Benutzern das Verständnis von Fehlern oder Instabilitäten beim Testen von Einheiten zu erleichtern. Die Laufzeitanalyse kann Fehler erkennen, die anhand der Ergebnisse von Komponententests nicht einfach ermittelt werden können. Beispielsweise können Speicherverluste beim Testen von Einheiten übersehen werden, da Speicherprobleme nicht überprüft werden oder die Auswirkungen auf den Speicher nicht signifikant sind. Durch das Erkennen von Laufzeitfehlern für Ausführungspfade, die durch Komponententestfälle erzwungen werden, kann der C / C ++ - Test Pfade ausführen, die beim Ausführen der ursprünglichen Anwendung nicht leicht zu erreichen sind.

Die Laufzeitanalyse kann nicht nur für native Anwendungen, sondern auch für plattformübergreifende / eingebettete Umgebungen durchgeführt werden, sodass die Analyse in der ursprünglichen Produktionsumgebung durchgeführt wird. Fehler manifestieren sich möglicherweise nicht bei der hostbasierten Entwicklung, und der Zielcode weist möglicherweise eine andere Prozessorarchitektur, andere Betriebssystem- und Geräteeinschränkungen auf. Ohne diese Einschränkungen müssten Benutzer ein kompliziertes Debuggen auf dem Ziel durchführen (vorausgesetzt, die Fehler könnten durch Erkennen erkannt werden einige sichtbare Nebenwirkungen während regelmäßiger Funktionstests).

Laufzeitfehler werden in der IDE einheitlich mit anderen Testdaten dargestellt, z. B. Codeabdeckung, Unit-Test-Fehlern oder statischen Analyseergebnissen, sodass die Hauptursache der Laufzeitfehler einfacher analysiert und verstanden werden kann.

Profitieren Sie vom Parasoft-Ansatz

Erkennen Sie echte Fehler und Sicherheitslücken frühzeitig während des Unit- und Integrationstests in der ursprünglichen eingebetteten Laufzeitumgebung

Laufzeitfehler in eingebetteten Umgebungen sind auf einer Hostplattform oft schwer zu reproduzieren (und auf Zielplattformen oft auch schwierig). Durch die Überwachung der Laufzeitausführung einer eingebetteten Anwendung in der ursprünglichen eingebetteten Laufzeitumgebung hilft Parasoft Ihnen, reale Fehler in Ihrer Software aufzudecken.

Verstehen Sie die Grundursache von Fehlern für einen vorbeugenden Ansatz

Durch die Korrelation von Laufzeitfehlern mit statischen Analyseergebnissen bietet Parasoft Benutzern die Möglichkeit, die Hauptursache von Fehlern zu verstehen und zu identifizieren. Auf diese Weise können Teams vorbeugende Verfahren in der gesamten Codebasis anwenden, um zusätzliche versteckte Fehler aufzudecken und das Auftreten von Fehlern in Zukunft zu reduzieren.

Weitere Fehler beim Unit-Test finden

Unit-Tests sind eine wichtige Testpraxis, um sicherzustellen, dass Ihr Code unter Bedingungen, die bei vollständiger Zusammenstellung der Anwendung nur schwer oder gar nicht reproduzierbar sind, wie erwartet funktioniert. Mit dem Parasoft C / C ++ - Test können Sie die Laufzeitanalyse während der Ausführung von Komponententests nutzen, um Laufzeitprobleme aufzudecken, die in der Anwendung vergraben sind und die Sie in Ihrer Vorproduktionsumgebung nicht einfach reproduzieren können.