Reactis® for C V2014 is ready for download, offering an array of new features and enhancements. Like prior versions, V2014 automatically generates comprehensive test suites from C code. The generated tests can help uncover and diagnose many types of runtime errors or check for conformance of code to a model (when used as part of a model-based design process). Newly supported language constructs, performance enhancements, and bug fixes have greatly expanded the set of programs for which Reactis for C is effective. Ease-of-use improvements aim to simplify the steps for preparing code for use with Reactis for C. |
In the case of a model-based design process, V2014 has new functionality to support back-to-back testing which may be used to check if a C code implementation conforms to a Simulink®/Stateflow® model as follows:
In V2014 it is also now possible to tag individual fields of a structure as inputs or outputs of a test harness. Additionally, two new stubbing features help in cases when a program under test references libraries for which source code is not available:
The V2014 version of Reactis Simulator offers several new features. Previously, when executing a program in Simulator, it was possible to step forward through your code one statement at a time; however, it was not possible to step backward one statement at a time. This capability has been added in V2014, and is particularly useful when execution is interrupted by an error, as it allows you to inspect values as you move backward through a program to the root cause of an error. Simulator also offers a new report to summarize the results of executing tests. A generated HTML report details any errors encountered during simulation, as well as any differences seen between the output values stored in the test suite and the values computed by the executing C code. The report also includes function call counts and the maximum recursive depth reached by each function. New options are also now available when importing or exporting CSV formatted test data.
The Reactis Test Suite Browser now offers ways to hide both rows (inputs/outputs) and columns (test steps) when viewing tests. Column filtering is controlled by a Boolean expression over the data items within the test suite. Only steps for which the filter expression evaluates to true will be displayed. For example, to see each step where the cruise control is active, you would use the filter expression "active == 1".
Reactis for C V2014 supports a new coverage metric know as Multiple Condition Coverage (MCC). MCC offers an even more comprehensive level of testing than is afforded by the previously supported MC/DC. Note that MCC requires that for every decision, all combinations of condition outcomes must be observed. For example, consider the decision with three conditions: A && B && C. The MCC targets for this decision are listed in the table below, in which each row represents an MCC target: the final column contains the decision outcome, while all other columns contain a condition outcome. A T indicates the condition evaluated to true, an F represents false, and an x indicates the condition was not evaluated due to short-circuiting. Note that in C code all expression evaluations are short-circuited.
|
As is the case for all metrics supported by Reactis for C, Reactis Tester attempts to exercise as many MCC targets as possible and Reactis Simulator offers many ways to track MCC. A simple yet powerful filtering mechanism lets you instruct Reactis for C to display all MCC targets meeting a given criterion. For example, you can display all covered MCC targets where A is true and C is false. Even if MCC tracking itself is not of interest to you, the ability to easily explore the coverage of MCC targets is helpful when aiming to achieve high levels of MC/DC coverage. The filtering mechanism is toggled by clicking on column headers as shown below:
Another new feature of V2014 is that Reactis for C can be configured to
create decision targets for Boolean expressions which appear throughout a
program, such as the first argument of the ternary operator (e1? e2:
e3)
or on the right-hand side of an assignment x = y ||
z
. Naturally, for each new decision target, additional condition,
MC/DC, and MCC targets are also created, resulting in a more comprehensive
set of metrics for the code under test.
V2014 also extends the subset of the ANSI C99 standard supported by Reactis for C. The following are now supported:
Other improvements include:
Reactis is a registered trademark of Reactive Systems, Inc.
MATLAB, Simulink, and Stateflow are registered trademarks of The MathWorks.
Best Regards,
The Reactis Team