Reactive Systems logo

Automated Testing and Validation with Reactis®

March 29, 2017
Back to Communicator Archive
To : Reactis Users
From : Reactive Systems, Inc.
Date : December 20, 2011

Reactis V2011.2 Now Available

Icon Reactis® V2011.2 is now ready for download. It offers some exciting new features including new flexibility for tracking coverage, stepping backwards through C code a statement at a time, and searching through thousands of test steps with the click of a button. The new Reactis features will improve your productivity and just maybe make your model debugging and testing activities a little more fun.


Tracking Coverage

In order to focus on the important, it helps to identify and tune out the unimportant. Reactis V2011.2 helps you do this in your testing by letting you configure how Reactis tracks coverage in order to tune out targets unimportant to your task at hand. For example, if your model includes no Stateflow diagrams, then you can instruct Reactis to include no Stateflow-related targets as goals for test generation, in visual feedback during simulation, or in coverage reports generated for your model. Or if your current model does not require obtaining coverage at the level of Modified Condition/Decision Coverage (MC/DC), then you can turn off MC/DC for a model.

Another new feature of V2011.2 lets you turn off all coverage tracking for any subsystem in your model. This capability comes in handy if your model references a well-tested library that is not a focus of your current test efforts. In this case, you can turn off all coverage tracking within the library subsystem in order to concentrate your attention on the non-library portion of your model.

V2011.2 also contains a new coverage metric that helps you construct test suites that more thoroughly exercise Stateflow diagrams. Child State Exit via Parent Transition (CSEPT) coverage lets you track whether each transition exiting a state with child states, causes each child to exit. For example, consider the Stateflow diagram below. The state On has three child states: Inactive, Active, and Init. CSEPT coverage tracks whether the transition from On to Off has fired when On is in each of its child states. So in this case there are three CSEPT targets. Namely the transition from On to Off fires when:

  1. On is in state Inactive
  2. On is in state Active
  3. On is in state Init
Stateflow diagram

Enhanced Test Suite Browsing

Several enhancements to the Reactis Test Suite Browser continue with our theme of helping you focus on the important. Recall that the Test Suite Browser lets you display each test as a matrix where the rows correspond to the inputs and outputs of the model and the columns correspond to test steps. You can now hide both rows and columns to concentrate certain parts of a test. To hide rows simply select a subset of rows and select Filter -> Hide Selected Rows. A new Filter entry box in the toolbar lets you search for columns (test steps) that satisfy a given search condition. For example, to see all test steps for a cruise control test suite in which the brake is pressed, simply enter brake == 1 as the test step filter. Test Suite Browser Test Step Filter

HTML Test Execution Reports

Simply load a test suite in Simulator and select Simulate -> Fast Run with Report to generate an HTML test execution report like the one shown below. For each test, the report lists any runtime errors or assertion violations that occurred as well as any differences between values stored in the tests and those computed by the model. Reactis HTML Test Execution Report

Simulator Enhancements

Several new features improve the experience of stepping through model execution in Reactis Simulator. You can now pause a slow simulation mid-step. Previously, when you pressed pause, Reactis completed the currently executing simulation step, which can take significant time for large models or C code bases. You can also now back up to the start of the current step when Reactis is paused mid-step.

Back 1 stmt When using the Reactis for C Plugin and executing a model containing C code in Simulator, you can now step backwards one C statement at a time. If a test suite uncovers an error, you can execute right up to the error and then back up one C statement at a time in order to diagnose the problem.

Other Improvements

  • Load & Close button A new Load & Close button in the Tester results dialog lets you load the newly-generated test suite and close the results dialog with one click.
  • A new implication operator A => B (A implies B) is now available in Reactis Validator expression objectives.
  • A number of new functions were added to the API to support adding input constraints to .rsi files. A new API function was also added to invoke the new HTML test execution report generation.

Newly Supported Simulink® Features

Reactis V2011.2 includes:
  • Preliminary support for MATLAB® R2011b.
  • New Simulink block support: Variant Subsystem, Model Variant.
  • Support for combining actions in Stateflow® state labels, e.g. "en, du, ex: y++;" to execute y++ any time a state is entered, exited, or active.
Customers with active Software Maintenance Service can download V2011.2 from the Reactis User Pages.

Synergy Between Reactis and Reactis for C

In March of this year, Reactive Systems launched a new product Reactis for C which supports the test and validation of C code that is not incorporated into a model. You can generate test cases directly from C code and in the process detect runtime errors, check assertions, and track coverage. If you use a model-based design process and C as your implementation language, you might benefit from synergies available when using Reactis for C (the new product) in combination with Reactis for Simulink. Use-cases shown below demonstrate some of the ways the two versions can be used collaboratively. Note, that both tools support the same test suite file format to facilitate interoperability. Diagram: Generate tests from Simulink model, run them on C code.

As shown above, thanks to the common test suite file format, you can generate tests from a model using Reactis for Simulink and run those tests on C code using Reactis for C. This lets you visualize C code coverage and flag any differences in behavior.

The basic steps performed during this process are as follows:

  1. A test suite is generated from the Simulink model using the Tester component of Reactis for Simulink.
  2. The generated test suite is run in the Simulator component of Reactis for C. Any differences between the values stored in the test suite for outputs (which came from the model) and those computed by the C code will be flagged. Simulator offers a number of ways to track coverage in the C code to determine which parts of the code are exercised by the tests.
Diagram: Generate tests from C code, run them on the model.

Alternatively, the work flow can proceed from Code to model as shown above.

  1. A test suite is generated from the C code using the Tester component of Reactis for C.
  2. The generated test suite is run in the Simulator component of Reactis for Simulink. Any differences between the values stored in the test suite for outputs (which came from the C code) and those computed by the model will be flagged. Simulator offers a number of ways to track model coverage.

Best Regards,
The Reactis Team

Back to Communicator Archive