Automatically testing software by feeding it random or malformed inputs to find crashes or vulnerabilities.