Reactis for C

C Code Process

Reactis for C

C Code Process

Reactis for C
C Code Process

Reactis® for C, an automated test-generation tool, may be used to find bugs in C programs.
It consists of three primary components: Tester, Simulator, and Validator.

It automatically generates test cases that stress a program, often discovering run-time errors. The generated tests aim to maximize coverage with respect to a number of test coverage metrics including Statement, Decision, Condition and Modified Condition/Decision Coverage (MC/DC).It is a simulation environment which supports interactive execution and debugging of C programs and graphical display of test coverage results.It enables an engineer to formalize application requirements (as assertions or coverage targets) and perform an automatic check for requirement violations. Validator performs these checks by thoroughly simulating the program with the goal of violating assertions and covering targets. When a runtime error or assertion failure occurs, Validator returns a test which produces a concrete execution sequence that leads to the error, which greatly facilitates the diagnosis and repair of the underlying software bug.

The Reactis for C tool suite improve the quality of your C code and reduce development costs in several ways. For example:

  • Finding and Fixing Runtime Errors. Reactis for C immediately stops execution when a runtime error occurs, making it easy to find and fix.
    Whenever Reactis for C is simulating C code in Simulator or generating tests in Tester, it is also performing a multitude of checks for runtime errors. The result is a powerful tool to find, diagnose, and fix a variety of runtime errors in your C code. The runtime errors detected by Reactis for C include:
    • Overflow Numeric calculations which produce a result too large to represent
    • Divide by Zero Dividing a numeric value by zero
    • Invalid Shift Shifting an integer value by an amount which produces an undefined result according to the C standard
    • Uninitialized Data Access Accessing memory before the memory has been initialized, so that the result of the access is undefined under C semantics
  • Regression Testing. The automatic test-generation and execution offered by Reactis for C enables engineers to easily check whether a program conforms to the behavior of a previous version. A crucial aspect of the tests generated by Reactis Tester is that they include all program outputs as well as inputs. Hence these tests contain all the information needed to ensure that a revised version of a program conforms to a previous version.
  • Synergy with Reactis for Simulink. Combining Reactis for C with Reactis for Simulink in a model-based development process produces synergistic benefits.
    Engineers performing model-based design using Simulink®/ Stateflow® as a design tool and C as an implementation language can benefit significantly from using Reactis for C in combination with its sibling product, Reactis for Simulink.
    Synergistic benefits occur when test suites are shared between both versions of Reactis. There are two basic use-case scenarios


Embedded-software testing and validation

Reactive Systems is a leading tool vendor in the embedded systems sector.  The company develops and markets the Reactis product line, a set of testing and validation tools which help engineers improve software quality while decreasing software development costs.

Over the past decade, many engineering organizations have deployed model-based design to address the exploding complexity of embedded control software. In model-based design, executable visual models of embedded control software are developed in advance of system implementation. The models may be used to drive the development of control software, and may also serve as basis for software and system testing.

The Reactis tool suite of Reactive Systems, Inc., substantially enhances the gains organizations realize from model-based design by automating many testing and validation activities. Reactis works with models implemented in the Simulink®/Stateflow® notation.

Using Reactis, engineers may:

  • Generate tests from a model that thoroughly exercise the model (structural testing);
  • Find runtime errors (e.g. overflow errors, divide-by-zero errors) in a model;
  • Execute the model and track coverage (e.g. MC/DC);
  • Perform functional tests to check whether or not a model can violate its requirements;
  • Use a Reactis test suite as an oracle to check whether code conforms to a model.


Teoresi distributes in Italy REACTIS software line and solutions.

Discover the other products of Reactive Systems: