Reactive Systems logo

Automated Testing and Validation with Reactis®

March 28, 2017
Back to Patches Archive

March 21, 2011

Dear Reactis User:

Reactis for C V2011

We are pleased to announce the first release of our new product, Reactis for C. Reactis for C is a testing and validation tool targeted at embedded software developers using the C programming language. The goal of this exciting new product is to improve the quality of embedded systems written in C while simultaneously reducing development costs.

Reactis for C brings the proven capabilities of Reactis to programmers developing embedded software using the C programming language. Like its sibling product, Reactis for Simulink, Reactis for C supports the software development process via a Test, Simulate, and Validate paradigm. In Reactis for C, this support is provided by C-specific versions of Reactis Tester, Simulator and Validator.

Reactis Tester automatically generates comprehensive yet compact test suites from a C program. The tests aim to exercise all statements, decisions, conditions, and even MC/DC targets within C code. By thoroughly exercising a program while immediately detecting anomalous program behavior, Reactis for C often uncovers runtime errors that are difficult to detect using traditional testing and debugging methods. Errors detected include the following:

  • Memory errors:
    • Exceeding the bounds of an array or heap-allocated data
    • Accessing heap memory after the memory has been recycled
    • Accessing (via pointer) a local variable of a function after the function has returned
    • Reading from uninitialized heap or stack memory
  • Overflow errors
  • Divide-by-zero errors
  • Invalid shift operations

Reactis Simulator executes C code in an advanced debugging environment that offers data tracking (scopes and watched variables), coverage tracking (Statement, Decision, Condition, and MC/DC), breakpoints and single-stepping. A vital feature of Reactis Simulator is that any error which causes data corruption is immediately caught instead of producing latent erroneous behavior.

When an error is detected by Tester, Reactis Simulator can be used to replay a concrete execution sequence leading to the problem in order to understand, diagnose and fix the bug which caused the error.

Reactis Validator lets you instrument your code with assertions and perform an automated search for violations of the assertions. As is the case for runtime errors, when an assertion violation is found, a test is recorded to easily replay in Simulator the scenario that leads to the error.

Reactis for C can also be used in combination with Reactis for Simulink. Synergy between the two tool-suites provides even stronger support for model-based software development. Behavioral conformance between software models and C source code can be checked by generating tests from a model using Reactis for Simulink and then running the tests on the implementation using Reactis for C. Models which have been reverse-engineered from legacy code can be validated by generating tests from the legacy code using Reactis for C and then running the same tests on the model using Reactis for Simulink.

You may download the patches or full installers from the Reactis User Pages.

Best Regards,
The Reactis Team

Back to Patches Archive