For a desktop-based application, a fuzzer can perform fuzzing on its interface (a combination of button sequences, text inputs, and so on), command-line options (if applicable), and import/export capabilities provided by the application.
For web-based applications, a fuzzer can perform fuzzing on its URLs, user input forms, HTTP request headers, HTTP POST data, HTTP protocols, and HTTP methods.