Core Concepts¶
Ordeal's design is built on a few key ideas. Each concept has its own deep-dive page.
Understand¶
-
Chaos Testing — What chaos testing is, how ChaosTest works, the nemesis, swarm mode. The foundation.
-
Property Assertions —
always,sometimes,reachable,unreachable. The Antithesis assertion model: state what must be true, let the machine find violations. -
Fault Injection — External faults (PatchFault) and inline faults (buggify). The FoundationDB model for Python.
-
Coverage Guidance — How the Explorer uses edge hashing, checkpoints, and energy scheduling to find bugs that random testing misses.
-
Shrinking — How ordeal minimizes failures: delta debugging, step elimination, fault simplification. From a 50-step trace to 3.
Quick reference¶
| Concept | One-liner | Origin |
|---|---|---|
| ChaosTest | Stateful test with nemesis + swarm | Jepsen + Hypothesis |
| Assertions | Temporal properties across runs | Antithesis |
| Faults | External fault injection via PatchFault | Chaos engineering |
| Buggify | Inline fault gates — no-op in production | FoundationDB |
| Explorer | Coverage-guided exploration with checkpoints | Antithesis + AFL |
| Shrinking | Minimize failing traces to minimal reproduction | Delta debugging |
| QuickCheck | Boundary-biased property testing | Jane Street |
| Invariants | Composable checks: finite & bounded(0, 1) |
— |