Fuzz

Fuzzing is an automated software testing technique that involves the providing invalid, unexpected, or random data as input to a computer program.

You must understand that fuzz testing does replace unit testing.


> go test -fuzz=Fuzz

// Output:
fuzz: minimizing 38-byte failing input file...
--- FAIL: FuzzReverse (0.01s)
    --- FAIL: FuzzReverse (0.00s)
        reverse_test.go:20: 
            Reverse produced invalid UTF-8 string "\x9c\xdd"

    Failing input written to testdata/fuzz/FuzzReverse/...
FAIL
exit status 1
FAIL    example/fuzz  0.030s
                        
fuzz.go