Das Reactis for C Plugin fügt sich nahtlos in Reactis for Simulink ein und ermöglicht White-Box-Tests und die Validierung der C-Code-Anteile von Modellen (S-Functions, C-Caller-Blöcke und Aufrufe von C aus Stateflow). Gemeinsam automatisieren Reactis for Simulink und das C Plugin die Erzeugung von Testdaten aus Modellen, die mit Simulink, Stateflow und C-Code aufgebaut sind, sowie deren Validierung.
Wenn Sie Simulink-Modelle mit C-Code erstellen, hilft Ihnen das Reactis for C Plugin, Kosten und Zeit bei Entwicklungsaufgaben wie den folgenden zu senken:
Weil Test und Validierung des C-Codes in derselben Umgebung erfolgen, die auch Ihre Simulink- und Stateflow-Anteile testet, können Sie mit dem Reactis for C Plugin Ihren C-Code gründlicher und deutlich schneller analysieren.
Ohne das C Plugin behandelt Reactis for Simulink C-Caller-Blöcke, S-Functions und Stateflow-Custom-C-Code als Black Boxes. Mit dem Reactis for C Plugin werden diese Black Boxes geöffnet, und Sie können den darin enthaltenen C-Code analysieren.
Reactis Tester erzeugt Testdaten automatisch aus Modellen. Das Werkzeug wählt die Testdaten anhand von Kriterien der strukturellen Überdeckung wie Decision Coverage, Condition Coverage und Modified Condition/Decision Coverage (MC/DC). Mit dem C Plugin strebt Reactis neben der Überdeckung der Simulink- und Stateflow-Anteile eines Modells auch die strukturelle Überdeckung des C-Codes an.
Mit Reactis Validator versehen Sie Modelle mit Prüfungen (Checks), die das Modellverhalten bewerten, und mit Zielen, die die Erzeugung der Testdaten lenken. Mit dem Reactis for C Plugin können auch die C-Anteile von Modellen dieser Validierung unterzogen werden.
Mit Reactis Simulator können Sie die Ausführung eines Modells sichtbar machen. Die Oberfläche von Simulator ähnelt der klassischer Debugger für Programmiersprachen: Sie können die Ausführung von Modellen von Hand schrittweise durchlaufen und Haltepunkte setzen. Simulator unterstützt außerdem die Rückwärtsausführung, das Wiederabspielen von Tests, die Reactis Tester erzeugt hat, die grafische Darstellung verschiedener Überdeckungsmetriken und die Feinabstimmung von Testsuiten, die Tester erzeugt hat.
Mit dem Reactis for C Plugin reichen diese Debug-Funktionen über Simulink und Stateflow hinaus bis in den C-Code. Springen Sie nahtlos von Simulink in eine S-Function oder einen C-Caller-Block oder von Stateflow in Custom-C-Code. Auch Haltepunkte und die Verfolgung der Überdeckung im C-Code sind möglich.
Tester, die Komponente von Reactis zur Testerzeugung, stützt sich beim Aufbau von Tests auf Modellüberdeckungsmetriken (auch Überdeckungskriterien genannt). Das Werkzeug erfasst bei der Berechnung der Testdaten mehrere Überdeckungskriterien und nutzt die noch nicht überdeckten Elemente dieser Kriterien, um die Erzeugung der nachfolgenden Tests zu steuern.
Mit dem Reactis for C Plugin misst Tester die Überdeckung im C-Code ebenso wie in den Simulink- und Stateflow-Anteilen eines Modells. Zu den neuen Überdeckungszielen gehören C-Anweisungen sowie Decisions, Conditions und MC/DC-Ziele im C-Code. Das Ergebnis sind umfassendere Tests, als wenn nur Überdeckungsziele in den Simulink- und Stateflow-Anteilen des Modells verfolgt würden.
Tester erzeugt Tests mit einer patentierten Technik, der guided simulation (geführte Simulation). Tests in Reactis entsprechen Simulationsläufen; die Eingaben in jedem Schritt eines Laufs bilden die Eingabedaten des Tests. In jedem Schritt eines Simulationslaufs nutzt Tester Informationen über die noch nicht überdeckten Teile des Modells und des C-Codes, um Eingabedaten auszuwählen, welche die Überdeckung des Modells voranbringen.
Das Reactis for C Plugin führt eine Reihe von Prüfungen durch, die Laufzeitfehler melden, damit Sie Laufzeitfehler in Ihren S-Functions, C-Caller-Blöcken und Stateflow-Custom-Code finden, diagnostizieren und beheben können.
Speicherfehler passieren in C besonders leicht und sind oft sehr schwer zu debuggen. Das Reactis for C Plugin erkennt Speicherfehler automatisch. Ein Speicherfehler liegt immer dann vor, wenn ein Programm von einer ungültigen Adresse liest oder auf sie schreibt. Häufige Speicherfehler sind 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.
Erkennt Reactis Tester einen Laufzeitfehler, liefert er einen Test, der in Reactis Simulator ausgeführt werden kann und die genaue Abfolge zeigt, die zum Fehler führt.
Wir hoffen, dass Sie das Reactis for C Plugin ausprobieren, um zu sehen, wie das Werkzeug beim Testen und Debuggen Ihrer S-Functions, C-Caller-Blöcke und Stateflow-Custom-C-Codes helfen kann. Eine kostenlose, voll funktionsfähige Testversion des C Plugins erhalten Sie auf der Seite Reactis ausprobieren.
Das Reactis for C Plugin ist im Installationsprogramm von Reactis for Simulink enthalten; es gibt daher keinen separaten Download des Plugins.
Wenn Sie mehr erfahren möchten: Ein achtminütiges Video zeigt, wie sich das Reactis for C Plugin einsetzen lässt, um C-Caller-Blöcke, S-Functions und Stateflow-Custom-Code zu testen und zu debuggen (englisch).
Wenn Sie sich für den Kauf entscheiden: Das Reactis for C Plugin kann entweder unbefristet oder jährlich lizenziert werden, jeweils als Einzelplatz- (node-locked) oder als Floating-Lizenz.