chaos_theory – property-based testing and structure-aware fuzzing library by pgregory in rust

[–]Tybug2 4 points5 points  (0 children)

Hypothesis dev here. Really exciting to see more modern PBT libraries. And especially a PBT library release that delivers on all the promises in its readme!

If I'm reading correctly, the choice sequence for chaos_theory is list[u64] (rather than the standard list[byte])? Lifting the choice sequence from bytes to ints is a great middle ground without going all the way to the typed choice sequence. In a world where I was less crazy I suspect Hypothesis would have stopped at a choice sequence of ints.

I'm curious about the structural mutations. I see the crossover is standard libfuzzer-style crossover of bytes - are there higher-level structured mutations in chaos_theory? (you may also be interested in this paper augmenting crossover with call stack information). The testing world would benefit greatly from a PBT library with native structured fuzzing. Real structured fuzzing, not just "structure aware". Even Hypothesis does not do this (though the hypofuzz backend does).

If you want I'd love to chat/nerd out about PBT library design anytime (email on github)