Reactis for C

Reactis for C unterstützt das Testen, Simulieren und Validieren eigenständiger C-Programme (die nicht in einem Modell enthalten sind). Reactis for C besteht aus drei Hauptkomponenten: Reactis Tester, Reactis Simulator und Reactis Validator.

Reactis Tester

Tests automatisch erzeugen

Führen unerwartete Eingaben zu einem Laufzeitfehler?

Wie viel von meinem Code habe ich wirklich getestet?

Reactis Tester erzeugt Testsuiten mit einer patentierten Technik, der guided simulation (geführte Simulation). Das Werkzeug erfasst beim Berechnen der Testdaten eine Reihe von Überdeckungsmetriken und nutzt die noch nicht überdeckten Ziele dieser Metriken, um die Erzeugung der nachfolgenden Tests zu steuern. Zu den Überdeckungsmetriken gehören Statement, Decision, Condition, Modified Condition/Decision Coverage (MC/DC), Function und Function Call. Was ist MC/DC?

Tests aus C-Code erzeugen

Während Reactis Tester Tests erzeugt, führt er eine Reihe von Prüfungen durch, um Laufzeitfehler in Ihrem C-Code zu melden. Speicherfehler passieren in C besonders leicht und sind oft sehr schwer zu debuggen. Ein Speicherfehler liegt immer dann vor, wenn ein Programm von einer ungültigen Adresse liest oder auf sie schreibt. In C-Programmen sind Speicherfehler besonders häufig, weil die Programmiersprache C dem Programmierer direkten Zugriff auf den Speicher des Programms gibt. Das kann die Leistung steigern, ermöglicht aber auch, dass Softwarefehler auf beliebige Speicherstellen zugreifen.

Zu den Fehlern, die Reactis meldet, gehören Array-Zugriffe außerhalb der Grenzen, Pufferüberläufe, hängende Heap-Zeiger (Zugriff auf einen Bereich des Heap-Speichers, nachdem dieser freigegeben wurde), hängende Stack-Zeiger (Zugriff auf einen Zeiger auf eine lokale Variable einer Funktion, nachdem die Funktion beendet wurde) und die Verwendung von Zeigern, die aus falschen numerischen Werten umgewandelt wurden. Reactis Tester erkennt solche Fehler nicht nur, sondern liefert auch einen Test, der in Reactis Simulator ausgeführt werden kann, um die eigentliche Ursache des Fehlers zu finden.

Reactis Simulator

Simulieren und debuggen

Wie verstehe, diagnostiziere und behebe ich einen Fehler?


  • Eine einzelne Anweisung ausführen; in Funktionen hineinspringen, über sie hinwegspringen oder aus ihnen herausspringen; einen vollständigen Schritt oder mehrere Schritte auf einmal ausführen.
  • Rückwärts ausführen.
  • Datenwerte sehen: mit der Maus darüberfahren, ein Scope öffnen oder zu den beobachteten Variablen hinzufügen.
  • Nicht ausgeführte Teile des Codes werden rot hervorgehoben.
  • Detaillierte Überdeckungsberichte erzeugen.
  • Haltepunkte (Breakpoints).
C-Code debuggen

Reactis Validator

Anforderungen prüfen

Deaktiviert die Bremse immer den Tempomaten?

Validator verifiziert C-Code nach dem Prinzip „testen und prüfen“. Zunächst versehen Sie Ihren Code mit Prüfungen (Checks), die überwachen, ob das Verhalten den Erwartungen entspricht. Validator nutzt dann die Testerzeugung von Tester, um Testdaten zu erzeugen und auszuführen und so herauszufinden, ob eine Prüfung verletzt werden kann. Mit diesen Tests lässt sich anschließend die Ursache jedes erkannten Fehlverhaltens diagnostizieren.

C-Code verifizieren

Laufzeitfehler zu beseitigen ist wichtig, aber nur ein Schritt hin zu Software hoher Qualität. Auch ein Programm, das nicht abstürzt, aber das Falsche tut, ist nicht akzeptabel. Mit Reactis Validator können Sie Prüfungen formulieren und ausführen, die sicherstellen, dass Ihr Programm richtig arbeitet. Die Prüfungen werden ähnlich wie beim assert-Mechanismus von C formuliert.

Reactis for C ist nach ISO 26262 zertifiziert

TÜV SÜD hat bescheinigt, dass Reactis for C für die sicherheitsrelevante Entwicklung nach ISO 26262 bis ASIL D qualifiziert ist. Mehr zur ISO-26262-Konformität →
ISO 26262 Software Testing Q&A (englisch) →

TÜV-SÜD-Logo