An empirical study of bagging and boosting ensembles for identifying faulty classes in object-oriented software