Finding Bugs in C Code with Reactis for C#


May 26, 2023

binary code (zeros and ones)


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.


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.