
#  Finding Bugs in C Code with Reactis for C 

**RSITR 2.6**

**May 26, 2023**

```{image} ../images/binary-code.webp
:alt: binary code (zeros and ones)
:width: 100%
```

&nbsp;

>*Generate tests from C code. Detect run-time errors. Track coverage:
  Statement, Decision, Condition, MC/DC. When an error is detected, replay a
  concrete execution sequence leading to the problem in order to understand,
  diagnose, and fix the underlying bug.  Build better embedded software
  faster.*


## Abstract

This white paper discusses how Reactis 1 for C, an automated
test-generation tool, may be used to find bugs in C programs. Reactis for C
consists of three primary components: Tester, Simulator, and
Validator. Reactis Tester 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). Reactis Simulator is a simulation environment which
supports interactive execution and debugging of C programs and graphical
display of test coverage results. Reactis Validator 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.



[^reactis]:  Reactis is a registered trademark of Reactive Systems, Inc.
