【技术实现步骤摘要】
一种基于阈值感知技术的实时软件缺陷预测方法
[0001]本专利技术属于计算机
,尤其是软件分析测试领域
。
本专利技术提供了一种面向编程现场代码提交,自动化提取特征信息的实时软件缺陷预测工具,可用于检测软件项目提交代码中潜在的缺陷,辅助开发者定位软件缺陷并修复缺陷
。
技术介绍
[0002]所谓软件缺陷,即为计算机系统或程序中存在的某种破坏系统正常运行的问题
、
错误,或者隐藏的功能缺陷
。
其带来的系统崩溃
、
数据出错问题在一些重要领域会引发极为严重的后果,比如医疗领域中的
Trace
‑
25
事件,由于软件缺陷导致过量辐射照射人体,引发了多起医疗事故
。
因此,为了帮助确保软件质量,减少软件缺陷的产生,开发人员在软件模块测试和维护上投入了大量的精力,过去的研究统计表明,软件测试和维护所占用的开发时间和人力成本是所有软件开发阶段中最多的两个阶段
。
即使如此,虽然软件测试和维护极大程度地减少了缺陷的数量,但仍无法完全杜绝软件缺陷的产生
。
而且随着软件系统规模和复杂性不断增长,测试和维护人员将面临极大的挑战
。
[0003]自动化的测试和缺陷定位技术可以帮助开发人员更有效地定位错误并分配测试资源,因此成为了一个非常热门地研究课题
。
目前定位软件缺陷的方法主要可以分为两类:基于搜索的软件测试
(SBST)
方 ...
【技术保护点】
【技术特征摘要】
1.
一种基于阈值感知技术的实时软件缺陷预测方式,其特征是利用软件历史提交中抽取度量信息对未来可能产生的软件缺陷进行预测,主要包括以下流程:
1)
从软件托管平台获取目标目标软件项目的所有历史提交信息和代码更改;
2)
根据历史提交信息和代码更改抽取各种维度的软件度量;
3)
通过
SZZ
算法向前回溯找出引入缺陷的提交并制定标签;
4)
汇总度量和标签,形成基于代码提交粒度的缺陷数据集;
5)
使用阈值感知技术对缺陷数据集进行训练并保存模型;
6)
对于新产生的代码提交,抽取软件度量输入缺陷预测模型进行预测;
7)
根据预测结果对包含缺陷的代码提交进行进一步测试
。2.
根据权利要求1所述的基于阈值感知技术的实时软件缺陷预测方式,其特征在于对多种项目托管平台的支持,具体步骤包含,选取目标软件项目,程序自动调用指令获取目标项目的历史提交信息和代码变更信息;定义1:项目托管平台是一个面向各类开源及私有软件项目的托管平台,支持
git
作为版本库格式进行托管,主流的项目托管平台包括
github、
码云
(gitee)
等;定义2:提交用于记录分布式版本控制系统中目标项目的所有变更,每当对项目文件进行修改时,就会产生一个新的提交,用户可以通过回溯提交查看历史版本,一个完整的提交包含下列信息:
id
,父提交
id
,作者,修改时间,提交人,提交时间,标题,说明等;定义3:代码变更用于记录每次提交中的代码变更情况,包括修改所涉及文件名,修改涉及的代码行数,修改所涉及的具体代码行号以及代码主体
。3.
根据权利要求1所述的基于阈值感知技术的实时软件缺陷预测方式,其特征在于抽取的软件度量包含了5种不同的维度:分布维度
、
规模维度
、
历史维度
、
人员经验维度
、
提交文本信息维度,从多个角度对项目代码进行分析;定义4:软件度量是对软件开发项目
、
过程及其产品进行数据定义
、
收集以及分析的持续性定量化过程,目的在于对此加以理解
、
预测
、
评估
、
控制和改善软件质量;定义5:分布维度,用于探究代码更改在整个项目中的分布情况对缺陷的影响,包含了子系统
、
目录
、
文件三个不同的级别;定义6:规模维度,用于...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。