Hacker News new | ask | show | jobs
by pfdietz 818 days ago
Formal proof of correctness vs. manually created tests.

The comparison should be formal proof of correctness vs. fuzzing using the formal specification as a source of properties to be tested.

1 comments

Fuzzing is a statistical technique that isn't ever going to give you a reassurance that a problem doesn't exist. It's great at giving you counterexamples, so fuzzing is great for discovering vulnerabilities, but unless you're fuzzing your program's entire state-space (which is absolutely impossible for even relatively small programs) then you're not comparing like with like.
>Fuzzing is a statistical technique that isn't ever going to give you a reassurance that a problem doesn't exist.

Formal verification doesn't prove that bugs don't exist either, thanks to the aforementioned "bugs in the spec" scenario.

So? The paper compared formal techniques vs. testing. Why is that suddenly not appropriate if the testing is fuzzing?