Phase 6Days 26-30
Testing, Debugging, Performance & Security
Table tests, fuzzing, race detection, benchmarks, pprof, and govulncheck
Phase Goal
Prove correctness and improve performance using evidence from Go’s standard toolchain.
Day 26: Table-Driven Tests & Testable Design
Day 27: Fuzzing & Property Thinking
Day 28: Benchmarks, Allocations & pprof
Day 29: Debugging, Race Detector & Security
Day 30: Mini Project — Untrusted Telemetry Decoder Lab
Untrusted Telemetry Decoder Lab
Harden a binary-and-text telemetry decoder against truncation, corrupt lengths, duplicate fields, oversized payloads, and pathological nesting.
- Minimized fuzz failures promoted to regression tests
- Before/after CPU and allocation evidence
- Documented resource ceilings and vulnerability scan
After this phase, you'll be able to:
- testing.T, subtests, helpers, and failure messages
- Table-driven tests and boundary selection
- Fakes, stubs, and interface seams
- httptest and filesystem test isolation
- Seed corpus and FuzzXxx structure
- Properties, invariants, and deterministic targets
- Reproducing and promoting failures to regression tests
- Where fuzzing helps and where it wastes time
You can apply Phase 6 skills in a finished, explainable Go project.