Product | Description |
---|---|
Reactis for Simulink | Test, Simulate, Validate Simulink®/Stateflow® models |
Reactis for EML Plugin | Integrates with Reactis to support Embedded MATLAB® |
Reactis for C Plugin | Integrates with Reactis to support C code portions of models (C Caller blocks, S-Functions and Stateflow custom code) |
Reactis Model Inspector | Standalone, lightweight Simulink Viewer |
Reactis for C | Test, Simulate, Validate C code (not contained in a model) |
Reactis for Simulink reads and processes SLX files created in the Simulink enviroment of The MathWorks. Reactis consists of three main components: Reactis Tester, Reactis Simulator, and Reactis Validator.
Reactis Tester employs a patented technology called guided simulation to build test suites. The tool tracks an array of coverage metrics as it computes test data, and it uses uncovered targets of these metrics to influence the creation of subsequent tests.
Coverage metrics 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:
How do I understand, diagnose, and fix a bug?
Validator uses a test and check approach for verifying models. You first instrument your model 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.
Checks are specified by defining a collection of assertions and user-defined targets. Assertions are properties that should always be true if the model is functioning properly. User-defined targets specify behaviors that should be tested in order to verify that requirements hold. During test-generation, Reactis attempts to violate assertions and exercise user-defined targets. Both assertions and user-defined targets may be formulated as either c-like expressions or as a Simulink/Stateflow observer diagram.
Reactis for C supports the test, simulation, and validation of standalone C programs (not contained in a model). Reactis for C consists of three main components: Reactis Tester, Reactis Simulator, and Reactis Validator.
Reactis Tester employs a patented technology called guided simulation to build test suites. The tool tracks an array of coverage metrics as it computes test data, and it uses uncovered targets of these metrics to influence the creation of subsequent tests. Coverage metrics include Statement, Decision, Condition, Modified Condition/Decision Coverage (MC/DC), Function, and Function Call.
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.
Some errors flagged by Reactis 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.
How do I understand, diagnose, and fix a bug?
Validator uses a test and check approach for verifying C code. You first instrument your 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.
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.