【CAPESE知识分享】 静态软件缺陷预测方法介绍
本文转载自微信公众号:软件工程标准化在线
软件缺陷(software defect)产生于开发人员的编码过程,需求理解不正确、软件开发过程不合理或开发人员的经验不足,均有可能产生软件缺陷。而含有缺陷的软件在运行时可能会产生意料之外的结果或行为,严重的时候会给企业造成巨大的经济损失,甚至会威胁到人们的生命安全。在软件项目的开发生命周期中,检测出内在缺陷的时间越晚,修复该缺陷的代价也越高。尤其在软件发布后,检测和修复缺陷的代价将大幅度增加。
因此,项目主管借助软件测试或代码审查等软件质量保障手段,希望能够在软件部署前尽可能多地检测出内在缺陷。但是,若关注所有的程序模块会消耗大量的人力物力,因此,项目主管希望能够预先识别出可能含有缺陷的程序模块,并对其分配足够的测试资源。
软件缺陷预测是其中一种可行的方法,根据软件历史开发数据以及已发现的缺陷,借助机器学习等方法来预测软件项目中的缺陷数目和类型等。
目前,已有的软件缺陷方法可以简单地分为静态缺陷预测方法和动态缺陷预测方法,其中,静态预测方法基于缺陷相关的度量数据,对程序模块的缺陷倾向性、缺陷密度或缺陷数进行预测;而动态缺陷预测方法则是基于缺陷或失效产生的时间对系统缺陷随时间的分布进行预测,以发现软件缺陷随其生命周期或其中某些阶段的时间关系的分布规律。
具体来说静态软件缺陷预测方法,该类方法通过分析软件代码或开发过程设计出与软件缺陷相关的度量元,随后,通过挖掘软件历史仓库(software historical repositories)来创建缺陷预测数据集。目前,可以挖掘与分析的软件历史仓库包括项目所处的版本控制系统(例如CVS,SVN 或Git等)、缺陷跟踪系统(例如Bugzilla,Mantis,Jira或Trac等)或相关开发人员的电子邮件等。最后,基于上述搜集的缺陷预测数据集,构建缺陷预测模型,并用于预测出项目内的潜在缺陷程序模块。静态软件缺陷预测属于当前软件工程数据挖掘领域中的一个重要研究问题。
随着新的数据挖掘技术的不断涌现以及研究人员对软件历史仓库挖掘的日益深入,静态软件缺陷预测研究在近些年来取得了大量的研究成果,其缺陷预测结果也逐渐成为判断一个系统是否可以交付使用的重要依据。因此,针对该问题的深入研究对提高和保障软件产品的质量具有重要的研究意义。
[文章来源:http://www.yunmingwang.cn/blog/article.asp?id=241]
《中国电子科学研究院学报》欢迎各位专家、学者赐稿!投稿链接
电话:010-68893411
邮箱:dkyxuebao@vip.126.com
配图均来自于网络。
如需转载,请在后台回复“转载”。
系列合集: