Fuzz testing
Fuzz testing, or fuzzing, involves providing random or malformed inputs to functions to discover vulnerabilities. In other words, it is a testing technique that involves providing invalid, unexpected, or random data as input to a program with the intent of discovering vulnerabilities and bugs. The testing package in Go’s standard library includes support for fuzzing, enabling developers to uncover unexpected behaviors with their code.
Unlike traditional testing, which relies on predetermined test cases, fuzz testing explores the input space extensively. You can see this as fuzz testing often subjects programs to large amounts of random or malformed input data to see what happens. Because fuzz tests are so different from traditional test cases, they can help identify edge cases and unexpected input scenarios that might light up bugs or vulnerabilities. They can also provide ongoing security and stability verification if they’re established in an automated...