# Property-Based Testing Is Fuzzing

DevFeed: [Property-Based Testing Is Fuzzing](<https://devfeed.tech/articles/property-based-testing-is-fuzzing-21958.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/property-testing-is-fuzzing/>)

Author: Nelson Elhage

Published: 2017-10-03T16:00:00Z

Content type: opinion

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Fuzzing/Fuzz testing](<https://devfeed.tech/topics/fuzzing.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [Code](<https://devfeed.tech/topics/code.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [bug](<https://devfeed.tech/tags/bug.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code](<https://devfeed.tech/tags/code.md>), [crash](<https://devfeed.tech/tags/crash.md>), [function](<https://devfeed.tech/tags/function.md>), [fuzzing](<https://devfeed.tech/tags/fuzzing.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [memory](<https://devfeed.tech/tags/memory.md>), [properties](<https://devfeed.tech/tags/properties.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

## AI overview

The article argues that property-based testing and fuzzing are essentially the same practice at a certain level of abstraction. It compares their shared use of a system under test, a desired property, and automatically generated inputs, while noting differences in traditional usage and tooling.

## Source excerpt

"Property-based testing" refers to the idea of writing statements that should be true of your code ("properties"), and then using automated tooling to generate test inputs (typically, randomly-generated inputs of an appropriate type), and observe whether the properties hold for that input. If an input violates a property, you've demonstrated a bug, as well as a convenient example that demonstrates it. A classic example of property-based testing is testing a sort function: