Last Updated: May 22, 2026
Fuzzing generates random inputs to find bugs that hand-written tests miss. Go ships native fuzzing in the standard testing package since Go 1.18, so you write a FuzzXxx function next to your regular tests and the toolchain handles input generation, crash detection, and corpus management. This chapter covers the func FuzzXxx(f *testing.F) shape, seed corpus with f.Add, the fuzz target body, the -fuzz and -fuzztime flags, the generated corpus on disk, and the property patterns that make fuzzing pay for itself.