My feeling is that both types of testing check system behavior for random sequence of data.

However, the difference is that:

  • in property-based testing there are multiple equivalence classes; I define expected behavior and generate a set of random values for each class separately
  • whereas in fuzz-testing there is only on equivalence class that the system does not break (i.e., throw exception or core dump) for any random value,

Is my understanding correct?

  • If you got any help from posted answers, Can you accept it? So the question wont be in active thread continuously. – NarendraC Dec 5 '16 at 7:30
up vote 1 down vote accepted

Fuzz-based Testing is :-

  1. Simple and offers a high benefit-to-cost ratio.
  2. Fuzz testing can often reveal defects that are overlooked when software is written and debugged.
  3. Nevertheless, fuzz testing usually finds only the most serious faults.
  4. Fuzzers work best for problems that can cause a program to crash, such as
    • Buffer overflow,
    • Cross-site scripting,
    • Denial of service attacks,
    • Format bugs and SQL injection

Property-Based Testing is :-

  1. Property-based testing stresses programs differently than tests biased by how the program “should” work.
  2. Like using fuzz testing to find crashes or security vulnerabilities, this can discover edge cases that have not been covered by unit tests.
  3. Rather than checking the results with specific input, properties are asserted (“for any possible input, [some condition] should hold”), and a test runner searches for counter-examples.

@dzieciou - Shared as per my understanding. Hope it helps!

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.