Fuzzing
As software engineers, we do not worry when things go as expected but when unexpected things happen. One way to deal with the unexpected is fuzzing. Fuzzing (or fuzz testing) is a testing technique that provides invalid, unexpected, or random data on programs that require input.
The advantages of fuzzing include the following:
- Making sure that the code can handle invalid or random input
- Bugs that are discovered with fuzzing are usually severe and might indicate security risks
- Attackers often use fuzzing for locating vulnerabilities, so it is good to be prepared
Fuzzing is going to be officially included in the Go language in a future Go release, but do not expect it in 2021. It is most likely going to be officially released with Go version 1.18 or Go version 1.19. The dev.fuzz
branch at GitHub (https://github.com/golang/go/tree/dev.fuzz) contains the latest implementation of fuzzing. This branch is going to exist until the relevant code...