Predicting Software Errors and Defects