Automated Testing and Validation with Reactis®

 
 Reactis User's Guide   Contents  |  Index
 Chapters:  1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | A | B | C

Chapter 7   Reactis Simulator

Simulator provides an array of features — including single and multi-step forward and backward execution, breakpoints, and simulations driven by Tester-generated tests or user inputs — for simulating Simulink / Stateflow models (and C code if using the Reactis for C Plugin). The tool also allows visual tracking of coverage data and the values data items in the model assume during simulation.


images/simToolbarD_web.png
Figure 7.1: The Reactis Simulator toolbar controls.

Figure 7.1 contains an annotated screen shot of a portion of the top-level Reactis window when Simulator is enabled. Some of the buttons and pull-down menus on the leftmost part of the window have been elided; Chapter 4 contains descriptions of these items. The next section describes the labeled items in Figure 7.1, while the section following discusses the Simulator-related menu entries. The subsequent sections discuss the different modes for generating inputs during simulation, ways to track data values, how to monitor model coverage, importing and exporting test suites, and the different model highlighting styles used by Simulator.

7.1  Labeled Window Items

  1. Disable Reactis Simulator.
  2. Enable Reactis Simulator.
  3. Reset the simulation; the model is returned to the start state, and coverage information is appropriately reset.
  4. Take n steps back, where n is specified by window item 10. Coverage information is updated appropriately upon completion of the last backward step.
  5. Take one step back. Coverage information is updated appropriately.
  6. Advance by one mini-step. In Simulink, a mini-step evaluates the next block in the evaluation order. In Stateflow, a mini-step evaluates the next transition segment condition or transition action. In C, a mini-step executes a single C statement, stepping into a function when at a function call.
  7. Advance forward by one full step; that is, values are read on the top- level inports, the model’s response is computed and values are written to the top-level outports. If a step has been partially computed using the step-into button (window item 6), then execution picks up with the current partially computed step and continues until the end of the step, at which point values are written to the top-level outports.
  8. Execute n slow simulation steps, where n is specified by window item 10. The diagram in the main panel (window item 17) is updated during simulation to reflect the currently active Simulink block, Stateflow state / transition, or C statement. When Coverage -> Show Details is selected, coverage targets will change from red to black as they are covered during the simulation run. If a single test is selected and the end of the test is reached before n steps execute, then simulation stops. When executing multiple tests (including an entire suite) the tests are executed one after another and simulation stops when n steps have executed or the end of the test suite is reached.

    When a slow simulation is running, clicking this button pauses the simulation.

  9. Execute n fast simulation steps, where n is specified by window item 10. The diagram in the main panel (window item 17) is not updated while the simulation is in progress but is updated when simulation halts. If the end of the current test or test suite is reached then simulation halts.

    When a fast simulation is running, clicking this button pauses the simulation.

  10. This window item determines how many steps are taken when buttons corresponding to window items 48 , or 9 are clicked. When the Source-of-Inputs dialog (window item 11) is set to a test or test suite, the number of steps may be set to 0 to indicate that the entire test or test suite should be executed.
  11. The Source-of-Inputs dialog determines what values are fed into inports to drive a simulation: random values, values from the user, or values from a test. See Section 7.4 for details.
  12. Create a new, empty test suite. The name of the .rst files containing the suite is initially “unnamed.rst” and is displayed in the title bar of the Reactis window.
  13. Open a dialog for selecting a test suite (.rst file) to be loaded into Simulator. After it is loaded, the test suite’s name is displayed in the title bar, and the tests are listed in the Source-of-Inputs dialog (window item 11).
  14. Save the current test suite.
  15. View Reactis Simulator help.
  16. The model hierarchy panel (not shown explicitly) supports the structure-based navigation of a model, as described in Section 4.1. Right-clicking on an item in the navigation panel brings up a menu that also allows you to view data items and set breakpoints. Data viewing is covered in more detail in Section 7.5. Breakpoints may be set by right-clicking on a subsystem or Stateflow state in the hierarchy panel and selecting Toggle Breakpoint. The name in the hierarchy panel is then decorated with a “stop sign” icon (  images/stopSignBtn_web.png  ). When a subsystem breakpoint is set, simulation pauses whenever an item in the subsystem (Simulink block or Stateflow transition) executes. When a Stateflow state breakpoint is set, simulation pauses whenever the state is entered or exited.
  17. The main panel displays the currently selected Simulink or Stateflow diagram or C code if you are using Reactis for C Plugin. You may interact with the diagram in a number of different ways using the mouse including hovering over model items, double-clicking on items, or right-clicking in various parts of the panel. Section 4.1 describes how you interact with the main pane when Simulator is disabled. The following mouse operations are available when Simulator is enabled:
    Hovering...

    • over a data item (Simulink block or signal line, Stateflow variable, or C variable) will display its current value and type.
    • over a Goto block will cause it and its associated From block(s) to be highlighted in yellow.
    • over a From block will cause it and its associated Goto block to be highlighted in yellow.
    • over any Tester coverage target will display the test and step within the test during which the target was first executed. This information is presented in a message of the form “Covered: test/step”. A “.” in the test location indicates the current simulation run. “-/-” indicates the target has not yet been covered. For more details on querying coverage information see Section 7.6, Chapter 10, and Chapter 6.
    • over a Validator objective will cause its wiring information to be drawn in blue.
    • over an output of a Logical Operator block that roots a Multi-Block Decision Coverage group will cause blue lines to be drawn to the conditions of the group (when Multi-Block Decision Coverage is enabled). See Section 6.3.1 for a description of Multi-Block Decision Coverage.
    Double-Clicking...

    • on a Scope block will open a scope window for that block (see Section 7.5.3).
    • on a Display block will add that block as a watched variable (see Section 7.5.2).
    • on a From or Goto block will open a dialog listing all other From or Goto blocks in the model associated with the block.
    • on a Data Store Memory, Data Store Read, or Data Store Write block will open a dialog listing all matching Data Store blocks.
    • on a Simulink subsystem will cause the subsystem diagram to be displayed in the main panel.
    • on a Stateflow state will cause the state’s diagram to be displayed in the main panel.
    • on a top-level input port while running in user-guided simulation mode will bring up a panel to modify that inport’s current input value.
    • on a configuration variable in the Configuration Variable Panel (see Section 4.4) while Simulator is in the initial state (no simulation steps have been taken) will bring up a panel to modify the variable’s current value.
    • on a line number within a C source file will toggle a breakpoint on that line.
    • on any other Simulink block will display the block’s parameters.
    Right Clicking...

    Causes different pop-up menus to be displayed. The contents of the menus vary based on where the click occurs and whether or not Simulator is enabled. A summary of the menu items available when Simulator is enabled follows. For descriptions of the menu entries available when Simulator is disabled, see Section 4.1.
    Right-Click Location
    Menu Entries (when Simulator is enabled)
    Simulink signals, Simulink blocks, Stateflow variables
    Inspect value
    Inspect the value of a bus (see Section 7.5.1).
    Add To Watched
    Add item to watched variables list (see Section 7.5.2).
    Open Scope
    Display item in scope (see section 7.5.3).
    Open Distribution Scope
    Display item in distribution scope (see Section 7.5.4).
    Add To Scope
    Add item to previously opened scope. This item only appears when other scopes are open.
    User defined target or assertion
    Run to Violation
    If an assertion is violated this menu entry becomes enabled. Selecting it directs Reactis to switch to the test that caused the violation and run to the step where the violation occurs.
    View Properties
    View assertion, user defined target, or virtual source properties in read-only mode.
    Logical Operator block, Lookup Table, top-level Inport, non-else outport of If block, or Stateflow transition segment, Stateflow state
    View Coverage Details
    Display dialog containing detailed coverage information for the item. (see Section 6.1.3, 6.3.1, 6.3.2, 6.2, and 7.6.2)
    Simulink blocks
    View Block Parameters
    Display Simulink block parameters.
    Logical Operator block, Branching block, Lookup table, top-level Inport, Stateflow transition segment, Stateflow state, or a test/step within a Coverage Details dialog
    Track Coverage
    Open a dialog from which the target can be excluded from coverage (with or without assertion), or included in coverage (see Section 6.5.3).

    Top-level inport or configuration variable in Configuration Variable Panel (see Section 4.4)

    Change Value
    Modify current value of top-level inports or configuration variables. Note that top-level input values may only be updated when in user-guided input mode (see Section 7.4.1) and configuration variables may only be updated in between tests (not during a test).
    Edit Type
    Open the Type Editor to view the type of the selected inport/configuration variable. Note that the type cannot be changed while Simulator is enabled.
    Top-level outport.
    Open Difference Scope
    This menu item is enabled when a test suite is loaded. The feature is used when differences exist between the value stored in the test for the outport and the value computed by the model for the outport. The resulting scope plots the expected value (from the test) against the actual value (from the model) as shown in Figure 7.11.
    Edit Tolerance
    Open the Info File Editor to view or change the output tolerance of the selected outport. Note that the tolerance cannot be changed while Simulator is enabled.
    Non-virtual Simulink block or Stateflow transition
    Toggle Breakpoint
    Enable or disable breakpoint for an item.
    Simulink subsystem
    Extract Subsystem
    Extract a subsystem and save it in a separate model file (see section 4.5).
    Left-Clicking on Signals...

    Causes the signal wire to be highlighted in yellow. The highlighting travels in both directions: back to its block source and forward to one or several block destinations. To make it easy to identify the relevant signal path, the subsystems the signal penetrates are highlighted as well. The signal highlighting will travel through virtual blocks such as Subsystems, Froms, Gotos, inports, outports, data-store reads and data- store writes. To continue tracing a signal through a block, click on the wire on the non-highlighted side of the block. To remove signal highlighting, left-click the mouse button in empty space.

@percentThe following five entries are only available in the toolbar if you are using the Reactis for C Plugin to step through C code.

  1. Step backward to the point just before the current function was called.
  2. Step backward one statement. Any function calls performed by the statement are stepped over.
  3. Step backward one statement. If the statement performed any function calls, stop at the end of the last function which was called.
  4. Step forward one statement. Any function calls performed by the statement are stepped over.
  5. Advance until the currently executing function returns.

7.2  Menus

Except for the documented exceptions related to editing .rsi files 1, the menus described in Section 4.2 work in the same manner when Simulator is enabled. The following additional menu items are also active when Simulator is enabled.

View menu.
The following entries become enabled when Simulator is “on”.
Show Watched Variables.
Toggle whether or not watched-variable list is displayed. The default is not to show them; adding to the list automatically causes the list to be displayed.
Add Watched Variables...
Add data items (Simulink blocks or signal lines, Stateflow variables, or C variables) to the watched-variable list. Selecting this entry brings up a list of data items. You can toggle whether or not an entry in the list is selected by control-left-clicking on it; clicking OK causes the selected items to be added to the watch list.
Clear Watched Variables.
Remove all items from the watch list.
Open Scopes...
Open scopes for data items (Simulink blocks or signal lines, Stateflow variables, or C variables). Selecting this entry brings up a list of items. You can toggle whether or not an entry in the list is selected by control-left-clicking on the variable; clicking OK causes scopes to be opened for each selected item.
Open Distribution Scopes...
Open distribution scopes for data items (Simulink blocks or signal lines, Stateflow variables, or C variables). Selecting this entry brings up a list of items. You can toggle whether or not an entry in the list is selected by control-left-clicking on the variable; clicking OK causes distribution scopes to be opened for each selected item.
Close All Scopes.
Close all open scopes.
Save Profile as...
Save the current view profile under a new name. The view profile contains the currently opened scopes and watched variables. Profiles are saved in a file with the .rsp suffix.
Load Profile...
Load a different view profile (.rsp files ). This will automatically open all scopes and watched variables stored in the profile.
Simulate menu.
The following entries are available when Simulator is enabled. Note that some entries (Step Over, Step Out Of, Reverse Step Into, Reverse Step Over, Reverse Step Out Of) are only available when using the Reactis for C Plugin with a model containing C code.
Simulator on/off.
Enable or disable Simulator.

When disabled Simulator behaves as a model viewer; that is, the model can be viewed but simulation capabilities are disabled.

Fast Run with Report.
Execute a fast simulation simulation and produce a report. See Section 7.3 for details.
Fast Run.
Same as window item 9.
Run.
Same as window item 8.
Step.
Same as window item 7.
Step Into.
Same as window item 6.
Step Over.
Same as window item 21.
Step Out Of.
Same as window item 22.
Stop.
Stop a fast or slow simulation run.
Reverse Step Into.
Same as window item 20.
Reverse Step Over.
Same as window item 19.
Reverse Step Out Of.
Same as window item 18.
Back.
Same as window item 5.
Fast Back.
Same as window item 4.
Reset.
Same as window item 3.
Toggle Breakpoint.
Sets a breakpoint for the currently selected item in the model-hierarchy panel if none exists, or clears the breakpoint if one has already been set. Simulation will halt when the item becomes active, which may be in the middle of a simulation step. The simulator controls may then be used to continue execution of the model.
Clear Breakpoints.
Removes all breakpoints.
Set Animation Delay...
When running a slow simulation, this value specifies the duration of the pause between the evaluation and highlighting of different model elements.
Switch Configuration Variable Set When hovered on, a list of available configuration variable sets will be displayed, from which one set may be selected. See Section 5.4.1 for more details.
Update Configuration Variable...
Initiates a dialog for changing values of configuration variables, which are workspace variables whose values can only change between tests/simulation runs (but not during a test/simulation run). The simulation must be reset to the start state (by clicking the reset button  images/resetBtn_web.png  , window item 3) before the value of a configuration variable may be updated. Note also that whenever inputs are read from a test, the configuration variable values from the test will be used. In other words, manual updates to a configuration variable using this menu item will only have effect when in random or user input mode.
Test Suite menu.
New.
Same as window item 12.
Open.
Same as window item 13.
Save.
Same as window item 14.
Save and Defragment.
Removing tests from a test suite can cause the test suite to become fragmented, meaning that space within the file becomes unused. Reactis will reuse those gaps when you add tests. Selecting this menu item will save the current test suite and reorganize it, removing all gaps.
Save As...
Save current test suite in an .rst files . A file-selection dialog is opened to determine into which file the test suite should be saved.
Import...
Import tests and add them to the current test suite. Importing is described in more detail in Section 7.7.2.
Export...
Export the current test suite in different formats. Exporting is described in more detail in Section 7.7.1.
Create...
Launch Reactis Tester. See Chapter 8 for details.
Update...

Create a new test suite by simulating the current model using inputs from the current test suite, but recording values for outputs and test points generated by the model. This feature is described in Section 7.8.

Browse...
Open a file selection dialog, and then launch the Test-Suite Browser on the selected file. See Chapter 11 for details.
Browse Current.
Launch the Test-Suite Browser on the currently loaded test suite. See Chapter 11 for details.
Add/Extend Test.
At any point during a simulation, the current execution sequence (from the start state to the current state) may be added as a test to the current test suite by selecting this menu item. After the test is added it will appear in the Source-of-Inputs dialog (window item 11). Note that the new test will not be written to an .rst file until the current test suite has been saved using window item 14 or the Test Suite -> Save menu item.
Remove Test.
Remove the current test from the current test suite. Note that the test will not be removed from the .rst file until the current test suite has been saved using window item 14 or the Test Suite -> Save menu item.
Compare Outputs.
Specify whether or not Simulator should compare the simulation outputs against the outputs contained in the test suite being executed. When enabled, a warning is reported for each significant difference between the computed value and the value stored in the test suite. A difference scope may then be opened by right-clicking on a top-level outport and selecting Open Difference Scope (see Figure 7.11). The tolerance used to determine which differences are significant may be specified as described in Section 5.6.
Validate menu.
See Chapter 9 for a description of this menu.
Coverage menu.
The Coverage menu contains the following entries. Details about the different coverage objectives may be found in Chapter 6. The coverage information available from the various menu items is for the current simulation run. If a test suite is being executed, the coverage data is cumulative. That means all targets covered by the portion of the current test executed so far, plus those targets exercised in previous tests are listed as covered.
Show Summary.
Open the coverage summary dialog shown in Figure 7.13.
Show Details.
Report coverage information by coloring diagram elements as defined in the Line Style dialog shown in Figure 7.22. Generally, uncovered targets are drawn in red.
Show Report.
Start the Coverage-Report Browser. See Chapter 10 for details.
Show Quick HTML Report
Shows a HTML coverage report. This is the same as selecting Coverage -> Show Report..., selecting Report -> Export... within the report and then clicking the “Preview” button. The window for this report stays open but does not get updated for changes in coverage when working with Simulator. To get an updated report after taking steps in Simulator, re-execute the Show Quick HTML Report item.
Highlight Subsystems,
Branches, Lookup Targets, States, CSEPT, Condition Actions, Transition Actions, Decisions, Conditions, MC/DC, MCC, Boundaries, User-Defined Targets, Assertion Violations, C Statements. Each of these menu entries corresponds to one of the model coverage metrics tracked by Reactis and described in Chapter 6. When a menu entry is selected and Show Details is selected, any uncovered target in the corresponding coverage metric will be colored.
Select All.
When Show Details is selected, show coverage information for all metrics.
Deselect All.
When Show Details is selected, show no coverage information.
Highlight Unreachable Targets.
When Show Details is selected, color unreachable targets. A target is unreachable if it can be determined (without executing the model) that the target will never be covered regardless of the input values used during testing. The analysis used is conservative: marked items are always unreachable, but some unmarked items may also be unreachable.

7.3  Creating Test Execution Reports

Fast Simulation Run with Report executes all tests within the current test suite and produces a report which lists all runtime errors (divide-by-zero, overflow, memory errors, missing cases, assertion violations, etc.) and significant differences between outport values stored in the test suite and those computed by the model.


images/testExecReportOptionsA_web.png
Figure 7.2: The Reactis Test Execution Report Options dialog is used to select which items appear in a test execution report.

When Simulate -> Fast Run with Report... is selected, the dialog shown in Figure 7.2 will appear. This dialog is used to select the items which will appear in the report. The following items are labeled in Figure 7.2:

  1. The Report Options panel is used to select optional report items. These include the date, pathnames of input files, coverage information, and plots of test data. If file paths are included in the report, the model version will also be included within parentheses following the model name. By default, the version number is the return value after calling the MATLAB function:
        get_param('modelName','ModelVersion');
      
    where modelName is the name of your model. If you wish to include a different version number, you can redefine the workspace variable reactis_model_version in the Reactis Post-Load Function. For example, when your model is loaded, select Edit -> Callbacks..., then in the Post-Load entry box enter:
        reactis_model_version = my_function_to_construct_version();
      
  2. When Include coverage report is selected in the Report Options panel, the Coverage Metrics panel is used to select which coverage metrics are included in the test execution report. There are three choices for each metric:
    • Summary & Details. Targets of the metric will appear in both the coverage summary and coverage details sections of the report.
    • Summary Only. Targets of the metric will appear in the coverage summary only.
    • None. Targets of the metric will be omitted from the report entirely.
    Note that due to dependencies between metrics, some combinations are not allowed. For example, Summary & Details cannot be selected for Condition targets unless Summary & Details is also selected for Decision targets.
  3. The Output Format panel is used to select the format of the exported report (HTML or RRX/XML). If Preview before saving is checked, the exported report will be displayed and you will have the option of saving or discarding it.
  4. The Output panel is used to specify where the report will be stored. A test execution report can be stored in a single file, or it can be stored in multiple files (one file per test).
  5. When you are satisfied with the selected report options, clicking on this button will close the dialog and start the simulation run.
  6. Clicking on this button will close the dialog without initiating a simulation run.

images/testExecutionReport_web.png
Figure 7.3: A test execution report can be generated by loading a test suite in Simulator and selecting Simulate -> Fast Run with Report...

Once the simulation run begins, it does not stop until all tests have been executed. During each test, if a runtime error is encountered, the remaining steps of the test are skipped and Simulator continues execution with the following test. After the last test is executed, a window containing the test execution report will appear, as shown in Figure 7.3. An HTML version of the report can be saved by clicking the Save button in the report window.

An HTML test execution report will contain some or all of the following sections, depending on which options are selected:

  1. A report header listing the data, input files, Reactis version, etc.
  2. A test summary listing the tests/steps which were executed and the number of errors and differences detected for each test. Non-zero error and difference totals can be clicked-on to jump to a detailed description of the error or difference.
  3. The tolerance used to test the value of each output and test point.
  4. A list of test details. For each test, includes the details for each error and difference that occurred, and plots of test data. The plots for a test are hidden by default, but they can be viewed by either clicking on the ± to the left of the signal name, or by clicking on Open all. See section 7.3.1 for details.
  5. The model hierarchy. The name of each member of the hierarchy can be clicked on to jump to the coverage details for that member.
  6. Coverage details for each component of the model. The coverage details for a model component begin with a summary of the local and cumulative coverage, followed by details for each metric. The details for a metric show, for each target, whether or not the target was covered, and if the target was covered, the test step when coverage occurred. The contents of this section are identical to a coverage report (Section 10.4).

7.3.1  Test Data Plots


images/testExecutionReportPlot_web.png
Figure 7.4: An output plot from a test execution report.

Figure 7.4 shows a typical plot from a test execution report. Test data (inputs, outputs, or test points) are plotted with the simulation time on the x-axis and the data value(s) on the y-axis. For outputs and test points, two values are shown: the test value (green), and the computed value (blue). The test value is the value stored in the test being executed for the output. The computed value is the value computed by the model for the output while executing the test. The acceptable tolerance between the two values is shaded yellow. Regions where the difference between the two signals is larger than the tolerance are shaded red.

Plots can be inspected when viewed from within a web browser or the preview dialog. The current focus of inspection is indicated by the intersection of two grey dashed lines. The focus can be moved either by the mouse, or the left and right arrow keys on the keyboard. Pressing S will move the focus to the start of the plot, and pressing E will move the focus to the end.

There are six values 2 displayed at the top of the plot for the current focus. These are (1) the step number, (2) the simulation time, (3) the test value (y value of green line), (4) the computed value (y value of blue line), (5) the difference between the test value and the computed value, and (6) the maximum difference between the test and computed values which is tolerated. These six values are updated whenever the focus is moved.

7.4  Specifying the Simulation Input Mode


images/inputsSource4_web.png
Figure 7.5: The Source-of-Inputs dialog enables you to specify how Simulator computes input values.

Reactis Simulator performs simulations in a step-by-step manner: at each simulation step inputs are generated for each top-level inport, and resultant outputs reported on each top-level outport. You can control how Simulator computes input values using the Source-of-Inputs dialog (window item 11 in Figure 7.1) shown in Figure 7.5. This dialog always includes the Random Simulation and User Guided Simulation entries; if a test suite has been loaded, then the dialog also includes an entry for each test and the All button becomes enabled. The dialog is used to specify how input values are generated as follows.

Random Simulation.
For each inport, Reactis randomly selects a value from the set of allowed values for the inport, using type and probability information contained in the associated .rsi files . See Chapter 5 for a description of how to enter this information using the Reactis Info File Editor.
User Guided Simulation.
You determine the value for each inport using the Next Input Values dialog, which appears when the User Guided Simulation entry is selected. See Section 7.4.1 below for more information on this mode.
Individual Tests.
When a test suite is loaded, each test in the suite has a row in the dialog that contains a test number, a sequence number, a name and the number of steps in the test. Selecting a test and clicking OK will cause inputs to be read from the test.
Subset of Tests.
You may specify that a subset of tests should be run by holding down the control key and clicking on each test to be run with the left mouse button. You can also hold the shift key while clicking to select a block of tests to be executed. The tests will be run in the order they are selected. As tests are selected the sequence number column is updated to indicate the execution order of the tests. When a new test is started, the model is reset to its starting configuration, although coverage information is not reset, thereby allowing you to view cumulative coverage information for the subset of tests.
All Tests.
Clicking the All button in the lower left corner specifies that all tests in the suite should be executed one after another. The tests are executed sequentially. When a new test is started, the model is reset to its starting configuration, although coverage information is not reset, thereby allowing you to view cumulative coverage information for the entire test suite. Section 7.4.2 contains more information on this mode.

You can change the sorting order of the tests in the table by clicking on the column headers. For example, to sort the tests by the number of steps, simply click on the header of the “Steps” column. Clicking again on that header will sort by number of steps in descending order.

You may also use the Inputs Source dialog to change the name of a test. To do so, select the test by clicking on it, then click on the name and, when the cursor appears, type in a new name.

7.4.1  User Input Mode

When the User Guided Simulation mode is selected from the Source-of-Inputs dialog, you provide values for inports at each execution step. This section describes how this is done.


images/guidedSimB_web.png
Figure 7.6: The Next Input Values dialog.

To enter the user-guided mode of operation, select User Guided Simulation from the Source-of-Inputs dialog (window item 11). Upon selecting user-guided mode, a Next Input Values dialog appears, as shown in Figure 7.6, that allows you to specify the input values for the next simulation step. Each top-level inport of the model has a row in the dialog containing entries 1-5 (see numbering in Figure 7.6). The header row includes the elements labeled 6-8.

  1. The inport number and name.
  2. This pull-down menu has three entries that determine how the next value for the port is specified:
    Random.
    Randomly select the next value for the inport from the type given for the inport in the .rsi file.
    Entry.
    Specify the next value with the text-entry box in column three.
    Panel.
    Open a sub-panel to specify the next value. This input mode is primarily used when the port reads vector values.
  3. If the pull-down menu in column two is set to “Entry”, then the next input value is taken from this text-entry box.
  4. If the pull-down menu in column two is set to “Entry”, then clicking this history button displays recent values the inport has assumed. Selecting a value from the list causes it to be placed in the text-entry box of column three.
  5. The arrow buttons in this column enable scrolling through the possible values for the port. The arrows are available for inports:
    • having a base type of integer, boolean or fixed point; or
    • having a base type of double or single and either a resolution or subset of values constraint.
  6. This pull-down menu sets the input type for all ports at once to either “Random” or “Entry.”
  7. Clicking this button sorts the rows by port number.
  8. Clicking this button sorts the rows by port name.

When “run” or “fast run” (window item 8 or 9 in Figure 7.1) is selected, the inport value specifications in the Next Inputs Values dialog are used for each step in the simulation run.

7.4.2  Test Input Mode

Simulation inputs may also be drawn from tests in a Reactis test suite. Such tests may be generated automatically by Reactis Tester, constructed manually in Reactis Simulator, or imported using a comma separated value file format. By convention files storing Reactis test suites have names suffixed by .rst.

A Reactis test suite may be loaded into Simulator by clicking the  images/openBtn_web.png  in the tool bar to the right of Source-of-Inputs dialog (window item 13 in Figure 7.1) or by selecting the Test Suite -> Open... menu item.

When a test suite is loaded, the name of the test suite appears in the Reactis title bar and the tests of the suite are listed in the Source-of-Inputs dialog.

When executing in test input mode while Test Suite -> Compare Outputs is selected, Simulator compares the values computed by the model for test points and top-level output ports against the values stored in the test suite for those items. These comparisons are performed after each simulation step. A difference is flagged if it exceeds the tolerance specified for that port. See Section 5.6 for more information on specifying tolerances for output ports.

If a value in the test differs from that computed by the model for a top-level outport, the difference may be observed (as shown in Figure 7.11) by right-clicking on the outport and selecting Open Difference Scope.

7.5  Tracking Data-Item Values

Reactis Simulator includes several facilities for interactively displaying the values that data items (Simulink blocks or signal lines, Stateflow variables, or C variables) assume during simulation. The watched-variable list, or “watch list” for short, displays the current values of data items designated by the user as “watched variables.” You may also attach scopes to data items in order to display values as they vary over time. Scopes behave like Simulink Scope blocks except that they are not hard-wired into models and are instead opened and closed during simulation. Distribution scopes enable you to view the set of values a data item has assumed during simulation (but not the time at which they occur). Difference scopes may be opened for top-level outports when reading inputs from a test in order to plot the values computed by the model against the values stored in the test for the outport.

You may add data items to the watch list, or attach scopes to them, as follows.

Using the View menu.
The View menu contains operations for adding data items to the watch list, opening scopes, and opening distribution scopes. These are described in more detail in Section 7.2.
Using pop-up menus in the model hierarchy panel.
Right-clicking on a subsystem in the hierarchy panel brings up a pop-up menu that includes the entries:
  • Add Watched Variables...
  • Open Scopes...
  • Open Distribution Scopes...
Selecting one of these entries will cause a dialog to appear listing data items in the subsystem which may be added to the watched variable list or to which scopes may be attached.
Using pop-up menus in the main panel.
Right-clicking on a data item in the main panel of Simulator invokes a menu that enables you to add the data item to the list of watched variables or open a scope or distribution scope to monitor the values of the data item during simulation. This menu also includes an entry Add To Scope that enables you to plot the data item on a previously opened scope.

You may save the current configuration of the data tracking facilities (the variables in the watch list and currently open scopes along with their locations) for use in a future Simulator session. Do so by selecting View -> Save Profile As... and using the resulting file selection dialog to specify a file in which to save a Reactis profile (.rsp files ). The profile may be loaded at a future time by selecting View -> Load Profile....

7.5.1  Selecting Bus Components


images/openScopeOnBus_web.png
Figure 7.7: Opening a scope on a bus component.

When any of the standard value-inspection operations (Inspect value..., Add Watched Variables..., Open Scopes... , Open Distribution Scopes...) are applied to a bus, an intermediate menu appears which allows you to select a bus component of interest. An example of this is shown in Figure 7.7, where the second element of bus member S2 is about to be selected.

7.5.2  The Watched-Variable List


images/watchedA_web.png
Figure 7.8: The watched variable panel tracks the current values of data items.

The watch list is displayed in a panel at the bottom of the Simulator screen as shown in Figure 7.8. By default this panel is hidden, although adding a variable to the watch list causes the panel to become visible. Visibility of the panel may also be toggled using the View menu as described in Section 7.2. The panel displays a list of data items and their values. The values are updated when Simulator pauses.

The contents of the watch list may be edited using a pop-up menu that is activated from inside the watch-list panel. Individual data items in the panel may be selected by left-clicking on them. Once an item is selected, right-clicking invokes a pop-up menu that enables the selected item(s) to be deleted, have a scope opened, or have a distribution scope opened. If no item is selected, then these choices are grayed out. The right-click pop-up menu also includes an entry Add Variables which displays a list of all data items in the model which may be added to the watch list.

The View menu contains operations for displaying / hiding the watch list, adding data items to the watch list, clearing the watch list.

7.5.3  Scopes

Scopes appear in separate windows, an example of which may be found in Figure 7.9. The tool bar of each scope window contains six or more items. The first resets the zoom level of the scope to fit the whole plot (see more on zooming below).


images/scopeB_web.png
Figure 7.9: A scope window plotting desired speed (green) and actual speed (yellow).

The second and third tool bar items are toggle buttons to indicate whether data items should be plotted as solid lines (window item 2) or as points (window item 3).

The fourth item allows to export scope data. Data can be exported as either text (csv) or graphics (png, gif, bmp, tif or jpg) format. The fifth item copies a screen shot of the scope to the clipboard.

Clicking the ? button displays help for scopes.

To zoom in to a region of interest of the signal shown in the scope, left-click the top-left corner of the region, hold the button and drag to the lower right corner of the region. The scope will zoom in to the selected region. To zoom out, either click the zoom-to-fit button in the toolbar or right-click in the scope window. Right-clicking will return to the zoom level that was active before the last zoom.

When zoomed in, it is possible to move the displayed region within the scope window. To move the region, hold down the CTRL key and click-and-drag with the left mouse button.

If more than one data item is plotted on a scope, then a toggle button will appear in the tool bar for each data item (window items 7 and 8 in Figure 7.9). Turning one of these buttons off will hide the corresponding data item in the scope. Hovering over the button will display the data item to which the button corresponds.

7.5.4  Distribution Scopes

Distribution scopes also appear in separate windows, an example of which may be found in Figure 7.10. The values a data item assumes are displayed as data points distributed across the X-axis. Zooming in distribution scopes works the same as in regular scopes.


images/distributionScopeB_web.png
Figure 7.10: Distribution scopes plot the values a data item has assumed during simulation.

7.5.5  Difference Scopes

When executing tests from a test suite, a difference scope may be opened by right-clicking on a top-level outport and selecting Open Difference Scope. The resulting scope plots the expected value (from the test) against the actual value (from the model) as shown in Figure 7.11. If the difference between the two values exceeds the tolerance specified for the output port (see Section 5.6) then a red background in the difference scope and a red bar on the X-axis highlight the difference.

After zooming into an area of difference, white and yellow and green background regions around the plotted values highlight the tolerance, as shown in Figure 7.12. The green region represents the overlap between the tolerance of the test and model values. A difference is flagged whenever the test or model value lie outside of the green region.


images/differenceScope_web.png
Figure 7.11: A difference scope may be opened by right-clicking on a top-level outport and selecting Open Difference Scope. The scope plots the values stored in a test for an output and the values computed by the model for the output. Differences are flagged in red.


images/differenceScope2_web.png
Figure 7.12: The white and yellow colored backgrounds around the value lines highlight the tolerance intervals of the test and model values. The overlap between the yellow and white regions is colored green. If either the test or model value lie outside the green region, a difference is flagged.

7.6  Tracking Model Coverage

Chapter 6 describes the coverage metric that Reactis employs for measuring how many of a given class of syntactic constructs or coverage targets that appear in a model have been executed at least once. Simulator includes extensive support for viewing this coverage information about the parts of the model that have been exercised by the current simulation run. If a test suite is being executed the coverage data is cumulative. That is all targets covered by the portion of the current test executed so far, plus those targets exercised in previous tests are listed as covered.

7.6.1  The Coverage Summary Dialog

The Coverage Summary Dialog shown in Figure 7.13 may be invoked at any time Simulator is enabled by selecting Coverage -> Show Summary. The dialog reports summary statistics for each coverage metric tracked by Reactis. Each row in the dialog corresponds to one of the metric and includes five columns described below from left to right.

  1. The name of the coverage metric reported in the row.
  2. The number of targets in the metric that have been exercised at least once.
  3. The number of targets in the metric that are unreachable. A conservative analysis is performed to check for unreachable targets. Any target listed as unreachable is provably unreachable; however, some unreachable targets might not be flagged as unreachable.
  4. The number of reachable targets in the metric that have not been exercised.
  5. The percentage of reachable targets in the metric that have been exercised at least once.

images/cvgSummary_web.png
Figure 7.13: The Coverage Summary Dialog

7.6.2  Coverage Information in the Main Panel

Selecting Coverage -> Show Details causes uncovered targets to be drawn in red in the main panel. Targets that have been covered are drawn in black. Hovering over an exercised target will cause a pop-up to be displayed that gives the test and step in which the target was first executed. This type of test and step coverage information is displayed with a message of the form test/step. A “.” appearing in the test position ./step denotes the current simulation run which has not yet been added to a test suite. If -/- is displayed, the target has not yet been covered.


images/mcdcTableB_web.png
Figure 7.14: Viewing MC/DC-related coverage information for a Stateflow transition.

For items included in the MC/DC  coverage measure (Simulink Logic and If blocks and Stateflow transition segments whose label includes an event and/or condition) or CSEPT coverage (states, transition segments) , detailed coverage information may be obtained by right-clicking on the item and selecting View Coverage Details. A dialog similar to that in Figure 7.14 will appear and give coverage information for decision coverage, condition coverage, and MC/DC.

The table in this figure describes coverage for the decision:

set == 1 && deactivate == 0

This decision contains the following two conditions:

  • set == 1
  • deactivate == 0.

Conditions are the atomic boolean expressions that are used in decisions. The first two columns of the table list the test/step information for when the decision first evaluated to true and when it first evaluated to false. A value -/- indicates that a target has not yet been exercised. The third column lists the conditions that make up the decision, while the forth and fifth columns give test/step information for when each condition was evaluated to true and the false.

MC/DC Coverage requires that each condition independently affect the outcome of the decision in which it resides. When a condition has satisfied the MC/DC metric in a set of tests, the sixth and seventh columns of the table explain how. Each element of these two columns has the form bb:test/step, where each b reports the outcome of evaluating one of the conditions in the decision during the test and step specified. Each b is either T to indicate the condition evaluated to true, F to indicate the condition evaluated to false, or x to mean the condition was not evaluated due to short circuiting.


images/mccCvgDetails_web.png
Figure 7.15: Viewing MCC coverage information for a Stateflow transition.

In addition the to MC/DC, Reactis can also measure Modified Condition Coverage, or MCC. MCC targets every possible combination of conditions within a decision, so that a decision containing N conditions can result in as many as 2N MCC targets, although the actual number may be less if short-circuited evaluation is used.

Figure 7.15 shows the MCC coverage details for a Stateflow transition. The MCC coverage details are in the form of a table where all except the last 2 columns correspond to conditions, and each row corresponds to a single MCC target. For each target, all conditions have one of three possible values:

True.
The condition is true.
False.
The condition is false.
x.
The condition is not evaluated due to short-circuiting.

The last two columns of the MCC details contain the result of the decision and the test/step when the target was covered.


images/mccCvgDetailsFilter_web.png
Figure 7.16: Filtering MCC coverage information for a Stateflow transition.

As shown in Figure 7.16, MCC coverage details can be filtered by clicking on the column headers. A filtered column header is indicated by a prefix of T:, F:, or x:, which correspond to the column values True, False, and x, respectively. Clicking on a column header advances the filter setting for that column to the next feasible value, eventually cycling back to unfiltered. The Covered column includes one additional prefix E: to display the targets that have been excluded (see Section 6.5.3). All columns can also be reset to the unfiltered state at any time by clicking on the Clear Filter button. Note that the individual filters for each column are combined exclusively (i.e., using the Boolean and operator), so that only targets which satisfy all active filters are shown. Figure 7.16 (c) shows the results of setting the filters for set==1.0 and deactivate==0.0 to true. In this case, the only target shown is the one where both of these conditions are true.


images/CSEPTCvgDetails_web.png
Figure 7.17: If a Stateflow state or transition segment has CSEPT targets, then you can right click on the state or transition and select View Coverage Details to view the relevant CSEPT coverage information.

Figure 7.17 shows the Coverage Details dialog for Child State Exit via Parent Transition (CSEPT) coverage . For the full definition of this metric see Section 6.2.4. Conceptually CSEPT tracks whether each child of a Stateflow state S has been exited by each transition that causes S to exit. In the figure, CSEPT tracks that each of the states Inactive, Active, and Init have been exited as a result of the transition from On to Off firing.

Right-clicking on a (non-top-level) state S and selecting View Coverage Details causes the display of a dialog that lists the transitions that cause the parent of S to exit. Clicking the Highlight buttons in the dialog lets you identify the state and transitions from the list in the main panel.

Right-clicking on a transition segment that is part of a transition T that causes a parent state to exit and selecting View Coverage Details causes the display of a dialog that lists the child states that can be exited as a result of T firing. Clicking the Highlight buttons causes each transition to be highlighted in the main panel.

7.6.3  The Coverage Report Browser

The Coverage-Report Browser enables you to view detailed coverage information and export the reports in HTML format. It is invoked by selecting Coverage -> Show Report and is described in detail in Chapter 10.

7.7  Exporting and Importing Test Suites

7.7.1  Exporting Test Suites


images/export_web.png
Figure 7.18: The Reactis test-suite export window.

The export feature of Reactis allows you to save .rst files in different formats so that they may be processed easily by other tools. The feature is launched by selecting Test Suite -> Export... when a test suite is loaded in Simulator. You specify the format and name of the exported file in the General tab of the Export Dialog (Figure 7.18). For some export formats, other tabs appear in the dialog to enable you to fine-tune exactly what is included in the exported file. In the case of .csv files, you may specify a subset of tests from the test suite to be exported as well as which data items (inputs, outputs, test points, configuration variables) should be included in each test step. The following formats are currently supported:

.m files:
Suites may be saved as MATLAB scripts so that they may be run using The MathWorks’ Simulink / Stateflow environment. Section 12.2 describes how to execute exported .m files in Simulink. That section describes how the rsRunTests utility distributed with Reactis enables you to load an exported .m file, execute the tests therein, and report any differences between the values computed by Simulink for outputs and the values stored in the tests. When exporting to this format you have a choice of exporting fixpoint values on top-level input or output ports as either “double” values (easier to read) or Simulink fixpoint objects (more precise). Enumerated values can be exported as either their underlying integer values or instances of their enumeration objects.
.mat files:
Suites may be saved as .mat files so that they may be run using The MathWorks’ Simulink / Stateflow environment. This binary format enables values in tests to be represented with more precision than is possible in the ASCII-based .m file format. When running a Reactis-generated test suite on a Simulink model, the higher precision of test data helps avoid some rounding errors. Section 12.2 describes how to execute exported .mat files in Simulink. The rsRunTests utility works for .mat files exactly as described above for .m files. When exporting to this format, fixpoint values will always be exported as “double” values and enumerated values will be exported as their underlying integers.
.mat files (for FromWorkspace blocks):
Suites may be saved in an alternative .mat file format so that they may be run using The MathWorks’ Simulink / Stateflow environment on a modified version of the model that uses ’FromWorkspace’ blocks in place of top-level inports. Section 12.2 describes the contents of these exported files and how to execute them in Simulink.
.csv files:
Suites may be saved as comma separated value (CSV) files. The different tabs of the export dialog enable you to specify which data from a test suite should be exported. Namely, you can indicate which tests should be exported and for each test step which inputs, outputs, test points, and configuration variables should have values recorded.

The first line of an exported file will contain a comma separated list of the names of the model’s input and output ports, test points, and configuration variables that were selected for export. A column recording the simulation time has the label ___t___. Any names containing non-alphanumeric characters will be surrounded by double quotes (") and newlines in names will be translated to \n. Subsequent lines contain either:

  • A comma-separated list of values that includes one value for each item appearing in the first row. The order of the values in a row corresponds to the order the items appeared in the first line. Each such line contains the values for one simulation step.
  • An empty line signaling the end of a test.

The options for configuring the CSV output work as follows:

Compress output.
If selected, then test steps will be omitted if no item that would be recorded in the step other than the simulation time is different from the corresponding value in the previously recorded step. This is especially useful when exporting only inport data for a test in which inputs are held constant for a number of steps.
Export vector, matrix and bus elements in separate columns.
If checked then each of these items will be placed in its own column. If not checked, when a port carries a vector or bus signal, then the values of the signal appear within double quotes (") as a comma-separated list.
Prepend ’|’ to configuration variable names (to prevent ambiguities).
This option helps avoid problems if a port and configuration variable have the same name.
Export each test to a separate file.
Instead of exporting to a single file and separating tests by an empty line, each test is exported to a separate file. The file name specified in the Output File box will be used as the base file name to which N.csv will be appended to form the file name (where N is the test number).
Export boolean values as.
Select whether boolean values will be exported as integers (0, 1) or doubles (0.0, 1.0).
Export enumerated values as.
Lets you specify each enumerated value should be exported as its underlying integer or as its name.
Significant digits for floating-point values.
Lets you specify the number of significant digits to be used when exported floating point values.
Reactis V2005 and earlier:
Suites may be saved in the old .rst file format used prior to V2006.
.txt files:
Suites may be saved as easy-to-process plain ASCII files. The format of these files is described in Section 12.3.

7.7.2  Importing Test Suites

Reactis can also import tests and add them to the current test suite. Test suites may be imported if they are stored in the Reactis’s native .rst file format or in the comma separated value (CSV) format (described above) that Reactis exports. The import feature is launched by selecting Test Suite -> Import... when Simulator is enabled.

To execute a test suite in Simulator, the test suite must match the executing model. A test suite matches a model if it contains data for the same set of inports, outports, test points, and configuration variables as the model. If an externally visible data item (inport, outport, test point, or configuration variable) is added to or removed from a model, then previously constructed test suites will no longer match the new version of the model. The import facility gives you a way to transform the old test suite so that it matches the new version of the model. Such remapping is also available when importing .csv files.


images/import_web.png
Figure 7.19: The Import Test Suite dialog allows you to import external test data (comma separated value format) and if necessary transform the data to produce a test suite that matches a model. The import facility is also used to transform an .rst file to make it match a model.

The Import Dialog, shown in Figure 7.19, is used to specify how test data should be remapped during import. The dialog contains a tab for each type of data item stored in a test suite (inputs, outputs, test points, configuration variables). In the case of .csv files, the import dialog also contains a tab Not Imported that lists items present in the CSV file that are not scheduled to be imported into the new test suite. When an .rst file includes an item not scheduled to be imported, it is placed at the bottom of the appropriate tab. For example, if a test suite contains an inport X and is being imported with respect to a model that has no inport X, then X will appear at the bottom of the Input Ports tab and be highlighted in yellow.

Each data item tab (e.g. Input Ports) includes a column (e.g. Model Port Name) listing the model items in that category. The Suite column lists items from the file being imported that map to the corresponding model item. In most cases a data item X in the test suite being imported will map to an item with the same name in the model. If the model contains an item not found in the test suite being imported, then the corresponding Suite column entry will be listed as Random Value and be highlighted in yellow (as shown in Figure 7.19 for inport brake). If this setting is not changed, then upon import a random value will be generated for the inport at each test step. The value to be assigned for any model item may be changed by double clicking on the corresponding entry in the Suite column (alternatively selecting the item and clicking the button Select Suite Item) and then using the resulting dialog to either select an item from the test suite being imported or set it to Random Value.


images/importBus_web.png
Figure 7.20: Importing test data into a bus.

If the model has bus input ports, Import Test Suite, these will be marked with a [+] or [-] to the left of the port name. If a name is preceded by [+], this indicates that there are hidden sub-components which are not currently being displayed. Conversely, if a name is preceded by [-], this indicates that there are sub-components which appear immediately below the name, and are indented to indicate their status as a sub-component. Left-clicking on the name of a bus input toggles the display of its sub-components. Figure 7.20 shows a test suite being imported into a model containing a bus input.

Finally, note that when loading a test suite stored in the pre-V2006 format, the test suite will be automatically converted to the new format.

7.8  Updating Test Suites

When a test suite is loaded in Simulator, this feature can be invoked by selecting menu item Test Suite -> Update... to open the dialog shown in Figure 7.21. The dialog offers two methods for updating an existing test suite (.rst file):

  • The first method Update using Reactis executes a test suite in Reactis, updates items (inputs, configuration variables, test points, and outputs) as configured by the checkboxes, and writes the modified suite to a new .rst file.
  • The second method Update outputs using Simulink exports the test suite to .mat format, executes the exported suite in Simulink, updates the test suite to contain the output values computed by Simulink, saves the updated suite to a .mat file or .m file (in the format supported by the Reactis rsRunTests utility).

images/updateTestSuite_web.png
Figure 7.21: The Update Test Suite dialog offers several options to configure how a test suite is updated.

7.8.1  Update Using Reactis

This method creates a new test suite by simulating the current model using inputs from the current test suite, but recording values for outputs and test points generated by the model. Updating the outputs can be useful for updating test suites when a model is modified, but its input ports remain unchanged. The result of invoking this routine with these options selected is a new test suite with the same input values at each step, but with outputs and test points updated (as specified in the dialog) with values generated by the currently loaded version of the model.

Additionally, inputs and configuration variables can also be updated to conform with constraints specified in the .rsi file. When these options are selected, if an input or configuration variable has a test suite value not conforming to its constraint, then the test suite is updated to contain the closest value adhering to the constraint.

The five check-boxes specify what is written to the new test suite as follows:

 Contents of new test suite when:
 CheckedNot Checked
Adapt top-level input port values to match constraints
If an input value in the test suite does not conform to the constraint specified for that input in the .rsi file, then convert the input value to the closest value adhering to the constraint. Do not change an input value if it violates the input’s constraint.
Update inputs controlled by virtual sources
Each input currently controlled by a virtual source shall be updated with the values computed by the controlling virtual source at each step as the tests execute. The values for each input shall be those from the original test suite.
Adapt configuration variable values to match constraints
If a configuration variable value in the test suite does not conform to the constraint specified for that variable in the .rsi file, then convert the value to the closest value adhering to the constraint. Do not change a configuration variable value if it violates the variable’s constraint.
Update test points
Each test point shall be updated with the value computed by the model for the test point as the tests execute. The values for each test point shall be those from the original test suite.
Update outputs
Each output shall be updated with the value computed by the model for the output as the tests execute. The values for each outport shall be those from the original test suite.

7.8.2  Update Outputs Using Simulink

This method creates a new test suite by loading the current model in Simulink, executing it (in Simulink) using the input values from the current test suite, and capturing the outputs produced by the model. The inputs and outputs are stored using the .m or .mat format supported by the Reactis rsRunTests utility.

7.9  Model Highlighting

Simulator renders model diagrams using a number of different colors and line styles to convey information during simulation. In this section, we describe these different drawing styles and their semantics.

Some of the default drawing colors are as follows. During slow, single-step, or mini-step simulation, a model element is drawn in green while it is being evaluated. Selecting Coverage -> Show Details configures Reactis to highlight uncovered model elements in red and unreachable model elements in purple. Please refer to Chapter 6 for a description of the different coverage metrics tracked by Reactis.


images/lineStyle_web.png
Figure 7.22: The Select Line Style dialog.

The dialog shown in Figure 7.22 (invoked by selecting View -> Select Line Styles...) enables you to configure how Simulator should draw various diagram elements. Each row in the dialog specifies the rendering of one group of model elements. The different groups of configurable diagram elements are:

Uncovered Block.
A Simulink block B is in this group if it has not been fully exercised, i.e. one of the following holds:
  • B is a block included in the branch coverage metric and at least one of B’s branches remains uncovered.
  • B is a conditional subsystem that has never been exercised.
  • B is a logical operator block that has not satisfied the requirements for all MC/DC-related coverage metrics (decision, condition, and MC/DC).
  • B is a relational operator block and some boundary value has not been exercised.
  • B is a top-level inport and not all boundary values have been exercised.
  • B is a block with saturate on integer overflow enabled and some boundary value has not been exercised.
  • B is a Lookup table and has uncovered lookup targets.
  • B is an uncovered user-defined target.
  • B is a violated assertion.
Uncovered State.
A Stateflow state is in this group if it has never been entered.
Uncovered Condition Action.
A Stateflow transition segment is in this group if it has not met the requirements for condition action coverage. In other words, its condition action has never been evaluated. If a segment has no condition action, then it is considered uncovered according to condition action coverage if its condition has never evaluated to true. Note that a segment with an empty condition is assumed to evaluate to true whenever the segment is evaluated during simulation.
Uncovered Transition Target.
A Stateflow transition segment is in this group if it has met the requirements for condition action coverage, but has not met the requirements for one of the other coverage metrics associated with transition segments. These metrics include transition action coverage, decision coverage, condition coverage 3, MC/DC, and CSEPT.
Unreachable Block.
A Simulink block B is in this group if Reactis has determined that some aspect of the block’s behavior can never happen and that all behaviors that are possible have occurred. If some reachable behavior has not occurred, then the block is considered a member of the “Uncovered Block” group and rendered accordingly.
Unreachable State.
A Stateflow state is in this group if it can never be entered.
Unreachable Condition Action.
A Stateflow transition segment is in this group if it can never meet the condition action coverage requirement.
Unreachable Transition Target.
A Stateflow transition segment is in this group if it has met the requirements for condition action coverage, but cannot meet the requirements for one of the other coverage metrics associated with transition segments.
Active Block.
A Simulink block is in this group if it is currently being evaluated.
Active State.
A Stateflow state is in this group if it is currently active.
Active Condition Action.
A Stateflow transition segment is in this group after its condition evaluates to true and until the next model element is highlighted as active.
Active Transition Action.
A Stateflow transition segment is in this group as it is firing as a part of a transition.

1
Any operation which modifies the .rsi file is disabled when Simulator is enabled.
2
only the first three are shown for inputs
3
Note that “condition coverage” and “condition action coverage” are two distinct metrics.