3 ms·
> If you didn’t fuzz it, you can’t say it’s correct. > — Dmitry Vyukov I would amend this slightly to state instead "If you didn't fuzz it, you can't say it's
by wyldfire 9y ago
> If you didn’t fuzz it, you can’t say it’s correct.
> — Dmitry Vyukov
I would amend this slightly to state instead "If you didn't fuzz it, you can't say it's [robust]." To invoke correctness seems to suggest that you can do some amount of verification using fuzzing, but that's not really the case (unless you have a reference implementation).
But without fail, fuzzing often evokes a handful of shallow defects. And once those are addressed you can usually dig deeper and find more. I'd be astonished to find a library or program written in C/C++ that has never been fuzzed and undergo fuzzing without any newly discovered bugs.
- robryk 9y ago> To invoke correctness seems to suggest that you can do some amount of verification using fuzzing, but that's not really the case (unless you have a reference implementation). Not necessarily. You just need to be able to verify correctness of the output and fuzz the following program: y := f(x) if (y,x) are not correct then crash E.g. if you want to verify correctness of the compressor, try to check if a known-good decompressor can always decompress its output to its input. This is simpler than having a reference implementation.