It’s too bad ‘fuzz testing’ is the name that seems to be gaining traction. What one really wants is Property Based Testing. It makes it clear that your function has a property and it needs to maintain that property.
Property based testing sounds more like something that would prove certain properties. “fuzz testing” accurately sums up that it’s using random inputs.
It isn’t testing that random inputs generate correct results in the sense that you mean. It is testing that random inputs don’t crash or trigger bad behavior under the various sanitizers.
It’s too bad ‘fuzz testing’ is the name that seems to be gaining traction. What one really wants is Property Based Testing. It makes it clear that your function has a property and it needs to maintain that property.
Property based testing sounds more like something that would prove certain properties. “fuzz testing” accurately sums up that it’s using random inputs.
But how does it determine if those random inputs produce correct results? That test is a property.
Property based testing frameworks work by generating random inputs to falsify the properties, so I don’t see the distinction you are making.
http://en.wikipedia.org/wiki/QuickCheck
It isn’t testing that random inputs generate correct results in the sense that you mean. It is testing that random inputs don’t crash or trigger bad behavior under the various sanitizers.
https://github.com/llvm-mirror/llvm/tree/master/lib/Fuzzer and http://lcamtuf.coredump.cx/afl/ are both good reading, as is https://en.wikipedia.org/wiki/Fuzz_testing
That is a property!
No it isn’t. A property has a deterministic value.