Research, section 03
Measured, with the caveats. Early results from the prototype.
Feedback-guided fuzzing against random fault injection and a scripted suite, on a controlled simulated robot. What it shows, what it does not, and what we are testing next.
01 /What we have measured so far
ENGINEERING EVIDENCE, section 001
A measurable starting point. More to prove.
We built the engine and measured it against random fault injection and a scripted test suite on a controlled simulated target. Feedback guidance reaches substantially more behavior. It does not yet find more failure classes than random. We report both.
Status
Research preview- BUILT
Zero-dependency core engine with 10 fault kinds and 7 invariants
- BUILT
Automatic replay, ddmin minimization and regression-test emission
- NEXT
ROS2 and MuJoCo adapters, independent validation on systems we did not build, then design-partner pilots
Behavioral coverage
vs. random+35%
Feedback-guided vs. random fault injection. 139.1 vs. 103.1 coverage keys.
CONTROLLED SIMULATED TARGET / 8 SEEDS / 6,000 EXECUTIONS PER CAMPAIGN
Unique trajectories
vs. random+23%
Feedback-guided vs. random fault injection. 996.6 vs. 807.8 trajectories.
CONTROLLED SIMULATED TARGET / 8 SEEDS / 6,000 EXECUTIONS PER CAMPAIGN
Failure classes found
Tie with random6/7
Feedback-guided and random tie at six of seven. The scripted suite finds four.
NO DISCOVERY LEAD OVER RANDOM YET / CONTROLLED SIMULATED TARGET
Benchmarks
8 seeds × 6,000 executions / campaign
Behavioral coverage keys
| Strategy | Mean | Standard deviation |
|---|---|---|
| Feedback-guided | 139.1 | 2.0 |
| Random | 103.1 | 4.2 |
| Scripted suite | 51 | not reported |
Unique trajectories
| Strategy | Mean | Standard deviation |
|---|---|---|
| Feedback-guided | 996.6 | 69.7 |
| Random | 807.8 | 14.8 |
| Scripted suite | not applicable | not applicable |
Worked example
One failure, start to finish
A blind collision found once in 4,000 executions. ddmin removed one unnecessary fault, leaving five. It replays deterministically every time and is saved as a regression test.
Violates no_collision
- 01 / Found6 faults
- 02 / ddmin1 removed
- 03 / ReplayIdentical trace
- 04 / RegressionEmitted
- Faults
- 6→5
- Replay
- Pending
Illustrative injected faults by tick (kinds and timings representative). ddmin removed 1 of 6; 5 remain.
- t=3: env_obstacle, kept
- t=4: sensor_noise, kept
- t=6: obs_delay, kept
- t=8: controller_retry, removed by ddmin
- t=10: env_obstacle, kept
- t=11: actuator_fail, kept
- t=12: no_collision violated
Replay: 100% deterministic replay. Emitted as regression_0001.
Simulated world / Illustrative
Methodology
Controlled, deterministic simulated 2D grid robot: perception → A* planner → state machine → controller → actuator. 10 fault kinds, 7 invariants. Feedback-guided fuzzing and random fault injection were each run in two experiments across 8 seeds at 6,000 executions per campaign: 192,000 executions in total. The scripted test suite is a fixed, hand-written baseline.
Caveats
- Random reaches its first failure sooner than feedback-guided.
- This is a small, controlled simulated target we built. It is not yet an external system, ROS2 stack or real robot.