_content/doc/fuzz: add example and restructure page
For golang/go#48255
Change-Id: Icd94e0455a3f4c3bfdc8800e89a956d4258b847e
Reviewed-on: https://go-review.googlesource.com/c/website/+/370676
Trust: DO NOT USE <katiehockman@google.com>
Run-TryBot: DO NOT USE <katiehockman@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
diff --git a/_content/doc/fuzz/example.png b/_content/doc/fuzz/example.png
new file mode 100644
index 0000000..596a39a
--- /dev/null
+++ b/_content/doc/fuzz/example.png
Binary files differ
diff --git a/_content/doc/fuzz/index.md b/_content/doc/fuzz/index.md
index 4ae5ecb..a38bc62 100644
--- a/_content/doc/fuzz/index.md
+++ b/_content/doc/fuzz/index.md
@@ -15,26 +15,34 @@
more sense as a blog post?)
-->
+Go supports fuzzing in its standard toolchain beginning in Go 1.18.
+
+## Overview
Fuzzing is a type of automated testing which continuously manipulates inputs to
-a program to find bugs. Since fuzzing can reach edge cases which humans often
-miss, fuzz testing can be particularly valuable for finding security exploits
-and vulnerabilities.
+a program to find bugs. Go fuzzing uses coverage guidance to intelligently walk
+through the code being fuzzed to find and report failures to the user. Since it
+can reach edge cases which humans often miss, fuzz testing can be particularly
+valuable for finding security exploits and vulnerabilities.
-Go supports fuzzing in its standard toolchain beginning in Go 1.18. It uses
-coverage guidance to intelligently walk through the code being fuzzed to find
-and report failures to the user.
+Below is an example of a fuzz test, highlighting it's main components.
-The [`testing`](https://pkg.go.dev//testing#hdr-Fuzzing) package docs describes
-the `testing.F` type which is used when writing fuzz tests, and the
-[`cmd/go`](https://pkg.go.dev/cmd/go) package docs describe the flags associated
-with fuzzing.
+<img alt="Example code showing the overall fuzz test, with a fuzz target within it. Before the fuzz target is a corpus addition with f.Add, and the parameters of the fuzz target are highlighted as the fuzzing arguments." src="/doc/fuzz/example.png" style="display: block; width: 600px; height: auto;"/>
-For an introductory tutorial for fuzzing with Go, please see [Blog: Fuzzing is
-Beta Ready](https://go.dev/blog/fuzz-beta).
+## Resources
-See the [design draft](https://golang.org/s/draft-fuzzing-design) and
-[proposal](https://golang.org/issue/44551) for additional details.
+- **Tutorial**:
+ - For an introductory tutorial of fuzzing with Go, please see [the blog
+ post](https://go.dev/blog/fuzz-beta).
+ - More to come soon!
+- **Documentation**:
+ - The [`testing`](https://pkg.go.dev//testing#hdr-Fuzzing) package docs
+ describes the `testing.F` type which is used when writing fuzz tests.
+ - The [`cmd/go`](https://pkg.go.dev/cmd/go) package docs describe the flags
+ associated with fuzzing.
+- **Technical details**:
+ - [Design draft](https://golang.org/s/draft-fuzzing-design)
+ - [Proposal](https://golang.org/issue/44551)
## Glossary {#glossary}
@@ -82,7 +90,7 @@
<a id="glos-seed-corpus"></a>
**seed corpus:** A user-provided corpus for a fuzz test which can be used to
guide the fuzzing engine. It is composed of the corpus entries provided by f.Add
-calls within the fuzz test, and the files in the testdata/fuzz/{FuzzTargetName}
+calls within the fuzz test, and the files in the testdata/fuzz/{FuzzTestName}
directory within the package.
<a id="glos-test-file"></a>