1. 6
  1.  

  2. 2

    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.

    1. 4

      Property based testing sounds more like something that would prove certain properties. “fuzz testing” accurately sums up that it’s using random inputs.

      1. 2

        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

        1. 3

          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

          1. 3

            It is testing that random inputs don’t crash or trigger bad behavior under the various sanitizers.

            That is a property!

            1. 1

              No it isn’t. A property has a deterministic value.