计算机科学与探索 ›› 2019, Vol. 13 ›› Issue (10): 1621-1637.DOI: 10.3778/j.issn.1673-9418.1901058

• 综述·探索 • 上一篇    下一篇

静态软件缺陷预测研究进展

吴方君   

  1. 1.江西财经大学 信息管理学院,南昌 330013
    2.江西财经大学 数据与知识工程江西省高校重点实验室,南昌 330013
  • 出版日期:2019-10-01 发布日期:2019-10-15

Research Progress of Static Software Defect Prediction

WU Fangjun   

  1. 1. School of Information Technology, Jiangxi University of Finance and Economics, Nanchang 330013, China
    2. Jiangxi Key Laboratory of Data and Knowledge Engineering, Jiangxi University of Finance and Economics, Nanchang 330013, China
  • Online:2019-10-01 Published:2019-10-15

摘要: 软件缺陷预测在提高软件质量和用户满意度、降低开发成本和风险等方面起着非常重要的作用,在学术界如火如荼地展开了众多理论和实证研究,但在产业界却发现其存在着实用性差、效率低、未考虑缺陷严重等级等不足。为了查找具体原因,首先依据预测目标的不同,将静态软件缺陷预测细分为缺陷倾向性预测、缺陷的数量/分布密度预测和缺陷模块排序预测;然后从软件度量指标的筛选、测评数据资源库、缺陷预测模型的构建和缺陷预测模型的评价等四方面综述了上述三类静态软件缺陷预测现有的研究工作,详细地指出了各自存在的问题,重点综述了缺陷倾向性预测模型的构建和缺陷模块排序模型的构建方面的工作;最后结合在产业界的应用情况,指出了静态软件缺陷预测面临的挑战和瓶颈,展望了进一步的研究方向。

关键词: 经验软件工程, 软件缺陷预测, 实证研究

Abstract: Software defect prediction (SDP) plays an important role in improving software quality and customers’ satisfaction, reducing developing costs and controlling risks. On the one hand, many theoretical and empirical studies on software defect prediction have been carried out in academic community; but on the other hand, the industry has found that applications of SDP have some shortcomings, such as poor practicability, low efficiency and failing to consider the severity of defects. In order to find out the specific reasons, firstly static software defect prediction is divided into defect-proneness prediction, defect number/distribution density prediction and defect module ranking prediction according to different prediction targets. Then, the existing research work and problems of the above three types of static software defect prediction are summarized from four aspects, namely the selection of software metrics, the evaluation data repository, the construction of defect prediction model and the evaluation of defect prediction model. Particularly, the constructions of defect-proneness and defect module ranking prediction models are emphatically summarized. Finally, the challenges and bottlenecks faced by static software defect prediction are pointed out based on the application in industry, and further research directions are prospected.

Key words: empirical software engineering, software defect prediction, empirical studies