Skip to content

Establish fuzzing as part of our tests #591

@TheQuantumPhysicist

Description

@TheQuantumPhysicist

Fuzzing is the process of using pseudo random data on the entry points of programs, and possibly individual functions. Fuzzing is important as it shows flaws in the construction of program and function endpoints, like not handling corner cases. It's said that the heart-bleed SSL/TLS bug would've been found within 6 hours of fuzzing. Hence, it's also safe to say that fuzzing is a process that continuously runs non-stop, which we have the capacity to do.

Fuzzing is unlike property-based testing, where in property-based testing we provide specifically valid/invalid data that conforms to a model, while in fuzzing the input may or may not be valid by sheer chance.

It's important to say this: If we're not fuzzing our code, someone else is.

Starting point:

https://en.wikipedia.org/wiki/Fuzzing
https://rust-fuzz.github.io/book/

Metadata

Metadata

Assignees

No one assigned

    Labels

    testingTests & testing infrastructure

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions