| |
Model-Based Design with Simulink® and Stateflow® |
C Code
Process |
| Products: |
 |
 |
Tester
Generate tests automatically
|
Will unexpected inputs
cause a runtime error?
How much of my model/code have I really tested?
|
| Reactis Tester employs a
patented technology called guided simulation to build
test suites. The tool tracks several coverage criteria
as it computes test data, and it uses uncovered
elements of these criteria to influence the creation
of subsequent tests. |
|
 |
Reactis Tester employs a patented technology called guided
simulation to build test suites. The tool tracks several
coverage criteria as it computes test data, and it uses
uncovered elements of these criteria to influence the
creation of subsequent tests.

Coverage criteria include generic objectives such as
Decision, Condition, and Modified Condition/Decision
Coverage (MC/DC), Simulink-specific measures such as
branch and subsystem, and Stateflow-specific metrics such
as state, condition-action, and transition-action.
Testing code (auto-generated or hand-written) against your
model is easy with Reactis:
- Generate tests from model
- Run tests on code
- Differences are automatically detected and flagged.
|
|
 |
Coverage criteria
include Statement, Decision, Condition, and Modified
Condition/Decision Coverage (MC/DC).
As Reactis Tester generates tests it performs an array
of checks to flag runtime errors in your C code.
Memory errors are particularly easy to make in C and
can be very hard to debug. A memory error occurs
whenever a program reads-from or writes-to an invalid
address. Memory errors are particularly common in C
programs because the C programming language gives the
programmer direct access to the program's memory,
which can boost performance but also allows software
defects to access arbitrary memory locations. Typical
memory errors include out-of-bounds array indexes,
buffer overruns, dangling heap pointers (accessing a
region of heap-allocated memory after the memory has
been freed), dangling stack pointers (accessing a
pointer to a local variable of a function after the
function has returned) and the use of pointers cast
from incorrect numeric values. Reactis Tester not only
detects these types of errors, it returns a test that
can be executed in Reactis Simulator to pinpoint the
underlying cause of the error.
|
|
Simulator
Simulate and debug
|
How do I understand,
diagnose, and fix a bug?
|
|
 |
- Execute a block, single step, or multiple steps at a
time.
- Reverse execution.
- To see data values, hover with the mouse, open a
scope, or add to watched variables.
- Unexercised parts of model are highlighted in red.
- Generate detailed coverage reports.
- Breakpoints.
- When using the Reactis for C Plugin, its like having
an advanced C debugger right in your Simulink
environment. Debugging Simulink, Stateflow, and C code
is all controlled from the same simple interface.
|
|
 |
- Execute a single statement; step into, over, out of
functions; execute a full step or multiple steps at a
time.
- Reverse execution.
- To see data values, hover with the mouse, open a
scope, or add to watched variables.
- Unexercised parts of code are highlighted in red.
- Generate detailed coverage reports.
- Breakpoints.
|
|
Validator
Check requirements
|
Will the brake always
deactivate the cruise control?
|
| Validator, the
model-validation component of Reactis, uses a test and
check approach for verifying models or code. You first
instrument your model/code with checks that monitor
whether behavior is consistent with expectations.
Validator then uses the test-generation component of
Tester to create and run test data to see if any
checks can be violated. These tests can then be used
to diagnose the cause of any abnormal behavior
detected. |
|
 |
| Validator gives a user two ways to define a check: as
simple textual expressions similar to the assert
capabilities found in programming languages, or as a
Simulink / Stateflow model. In the latter case, the model
implementing the checks is intended to monitor the
behavior of the controller model and raise flags if any
violations are discovered. |
|
 |
| Eliminating runtime errors is important, but only one step
towards high-quality software. A program that does not
crash, but does the wrong thing is also unacceptable.
Reactis Validator gives you a way to formulate and perform
checks that your program is operating properly. Checks are
formulated in a way similar to the assert mechanism of C.
|
|
| More Info |
|
|
|
Videos |
|
|
| White
Papers |
|
|
|
Documentation |
|
|
|
Newsletters |
|
|