A build is a result of one run of a Project.
A build is stable if it was built successfully and no publisher reports it as unstable
A build is unstable if it was built successfully and one or more publishers report it unstable.
For example if the JUnit publisher is configured and a test fails then the build will be marked unstable.
build.setResult(Result.UNSTABLE);
A build is successful when the compilation reported no errors.
See failed
A build is broken if it failed during building. That is, it is not successful.
build.setResult(Result.FAILURE);
A build is completed, if it was started and finished with any result, including failed builds.