This is a question best asked on the user mailing list. The developer list is used for development discussions related to Jenkins and its components (plugins, modules, etc.).
Jenkins executes processes (junit tests, for example) and reports the return value of those processes and optionally analyzes the results of those processes to decide the state of the job. If a process returns a non-zero exit code, that will generally cause Jenkins to mark the job as failed. If a junit process writes a report file that Jenkins analyzes and that file includes a failing test, that will generally cause Jenkins to mark the job as unstable.