| In recent years,with the fast development of software industry,software quality has becoming the focus of attention,software quality assurance activities gradually come into our sight.However,no testing and verification techniques can identify and exclude all of defects,and it is very expensive to develop a high-quality software.Defect prediction technique can make use of the basic properties,features and defects information of softwares,building model to predict the defects may still exist.Defect prediction can improve the software quality,reduce the cost of software fixes and project development.The existing defect prediction models are mainly based on machine learning technology,there are a lot of achievements in the field of the research on prediction algorithms and measure metrics,but there is still no recognized best method.Combined the previous studies,this paper presents a software defect prediction model based on the combination of machine learning algorithms.The model has two layers,first layer use a simple base-learner to learn the defect data,and add the learning results into the original dataset as a new metric.Next,the second layer use attribute selection to the new dataset,then pass the dataset through a complex learner and output the prediction model.To prove the feasibility of the model,we experiment with Eclipse dataset on defects classification prediction and rank prediction.Program static analysis and defect prediction are two independent quality assurance activities,this paper proposes an idea to combine them.First,we study on the impact of using static analysis as a prediction metric,the result is not very significant.Then we analyze this two kind of defect reports,find static analysis has higher false alarm than defect prediction,and do static analysis in a few classes which are predicted as defective can obtain the majority analysis reports.Combined the two report,rerank the models according to the possibility of defective.Experiments shows that this rank method can rank the modules reasonable,reduce the workload of software testing.This paper also describes the design and implement of a defects prediction platform,users can upload fixed format dataset to learn and predict automatically,then provide a prediction report.The platform encapsulates a series of complex data manipulation and machine learning algorithms,user-friendliness,easy to use and expand,has certain actual engineering significance. |