Reactive Systems logo
January 22, 2022

Reactis for Simulink V2021.2

We are pleased to announce the availability of Reactis® for Simulink® V2021.2. This release includes all bug fixes from patch releases V2021.0.1 through V2021.0.2 plus the following new features.

Interval Coverage for Outports and Test Points

Reactis V2021.2 introduces interval coverage, a new metric which is based on a set of user-defined intervals for each harness outport and test point in a model. For every specified interval, interval coverage tracks whether or not a value which lies within that interval has been produced at least once by the corresponding outport/test point. Intervals can be defined in a graphical editor in the Reactis GUI or added via the the Reactis API. For each interval, Reactis will track the test and step in which the value of the outport or test point first fell within the interval.

In addition to range intervals specified by min/max boundaries, a special initial value interval (denoted y0) enables tracking whether the value of the item has ever changed from its initial value.

Reactis can be configured to automatically create the not initial value interval target ~y0 for each harness output in order to track whether each output has changed from its initial value. This setting can be configured by selecting Edit > Coverage Metrics, then enabling Track whether outputs have changed from initial value.

Faster Execution of Test Suites

In a test suite generated by Reactis Tester, if two or more tests share a common prefix of test steps, then the common steps are only stored once instead of being duplicated. Starting in V2021.2, Reactis Simulator caches the outcome of executing a shared prefix, enabling the prefix to be skipped in subsequent tests. Depending on the test suite structure, and especially for large models, this can significantly reduce the time it takes to execute Tester-generated test suites or generate reports in Reactis Simulator.

Resolution Constraints for Integer Inports

For any harness input, Reactis supports assigning a constraint that limits the set of values Reactis generates for the input during test generation or random simulation. For example, a constraint can limit an input to a range between a given minimum and maximum value. Prior to V2021.2, for inputs of type double or single, a range could also include a resolution. For each element of a range with resolution, the difference between the value and the minimum value is an integer multiple of the resolution. For example, the constraint double [1.0:2.0:9.0] specifies a minimum of 1.0, a resolution of 2.0, and maximum 5.0 as a shorthand for the the set { 1.0, 3.0, 5.0, 7.0, 9.0 }. V2021.2 extends this facility to support range with resolution constraints for inports with integer types.

Improved Test Generation for Timer Targets

Covering targets that require a counter in the model to count up or down by a certain number of steps is a hard problem for automatic test case generators in general. Reactis has always provided a way for users to tag such counters/timers with a timer target. Tagging a counter allows Reactis to observe its value and focus on simulation steps that increase the count.

Reactis V2021.2 improves on this feature by analyzing the conditions under which a timer's value increases. Reactis then traces the relevant signals to the top-level inputs of the model and attempts to actively produce input values that cause the timer to increase. Due to these enhancements, Reactis Tester will now generate tests that cover some timer targets which were not previously covered by Tester-generated tests.

Other Improvements

  • Support for MATLAB® R2021b.
  • Dead code analysis has been improved to identify more targets as unreachable.
  • For masked blocks and subsystems, the mask parameters and mask initialization code are now shown in the block parameters dialog within Reactis.
  • Reactis now supports variant control expressions containing logical operators.
  • In Reactis Validator expressions placed in Stateflow® charts, a new in_state function can be used to determine whether a Stateflow state (within the same chart) is currently active.

Reactis is a registered trademark of Reactive Systems, Inc. MATLAB, Simulink, and Stateflow are registered trademarks of The MathWorks, Inc.

Best Regards,
The Reactis Team