tests := []struct { subject string input int want string }{ {subject: "num", input: 2, want: "2"}, {subject: "multi3", input: 3, want: "Fizz"}, {subject: "multi5", input: 5, want: "Buzz"}, ... } for _, tt := range tests { t.Run(tt.subject, func(t *testing.T) { got, err := FizzBuzz(tt.input) if got != tt.want { t.Errorf("want %d, but %s:", tt.want, got) } } } • Found bug ◦ Add case ◦ Start TDD • Maintainable • Reusability