【技术实现步骤摘要】
一种基于动态分类器选择的即时软件缺陷预测方法
[0001]本专利技术属于大数据处理
,涉及软件缺陷预测,具体涉及一种基于动态分类器选择的即时软件缺陷预测方法。
技术介绍
[0002]即时软件缺陷预测(JIT
‑
SDP)是一种特定类型的软件缺陷预测方法,可以在软件更改级别进行缺陷预测,具体是在提交时立即提醒与软件更改相关的软件开发人员,其提交内容存在的潜在缺陷,由于此时开发人员对提交的更改内容印象较深,因此更容易定位到错误内容。因此即时软件缺陷预测能够以更具成本效益的方式进行软件测试和检查,从而提高软件质量。此外,软件更改通常涉及很少的代码行,具有精细的代码粒度,并且可以直接分配给对应的开发人员进行检查,从而进一步促进他们的任务。因此对即时软件缺陷预测进行研究具有重要意义。
[0003]现有技术在进行即时软件缺陷预测时,都假设问题的特征随着时间的推移保持不变,实际上,JIT
‑
SDP可能会遭受类不平衡演变的影响,即随着时间的推移,缺陷类别之间的比例可能会发生变化,从而导致缺陷类别分布的不平衡,导致少数类别的缺陷无法被准确预测。
[0004]在整个软件开发期间,由于项目会经历各种不同的阶段,不同功能模块之间的复杂性也不尽相同,并且还会受到不同开发人员的影响,导致最近标记的软件更改可能已经过时,与当前概念并不相符,这个现象称为概念漂移。概念漂移对JIT
‑
SDP的性能也会造成一定影响,例如特征漂移会导致在JIT
‑
SDP中特征的典 ...
【技术保护点】
【技术特征摘要】
1.一种基于动态分类器选择的即时软件缺陷预测方法,其特征在于:具体包括以下步骤:步骤1、收集用于即时软件缺陷预测的训练数据集,通过两个大小为t的滑动时间窗口STW1和STW2,依次对每个训练示例进行类标签的标记与验证;步骤2、对步骤1处理后的训练示例使用滑动窗口相似度分析,根据提前收集的CP数据从相同类标签的训练示例中筛选出CP数据,接着利用筛选得到的CP数据对项目内的训练示例进行分流得到WP数据;使用ADWIN方法依次对每个数据块进行概念漂移检测,针对存在概念漂移的数据块,首先使用CP数据进行纠正,然后再使用WP数据进行纠正;步骤3、采用动态分类器选择和分层AdaBoost集成的方法,来处理类不平衡演化问题,具体步骤如下:s3.1、对经过步骤2概念漂移检测后的第一个数据块DS0进行训练,得到第一个AdaBoost分类器Ψ0,并添加到分类器池Π中;s3.2、对第二个数据块DS1首先根据数据块内的数据分布从分类器池Π中选择一个分类器,预测数据块DS1中每个示例对应的类标签;并根据得到的类标签训练一个新的AdaBoost分类器Ψ1,添加到分类器池Π中;对第二个数据块DS1进行过采样处理,将采样得到的数据存储为动态选择数据集DSEL1;s3.3、设置k≥2,对第k+1个数据块DS
k
,首先根据动态选择数据集DSEL
k
与数据块内的数据分布,从分类器池Π中选择一个分类器预测数据块DS
k
中每个示例对应的类标签;根据数据块DS
k
预测得到的类标签训练一个新的AdaBoost分类器Ψ
k
,若分类器池Π中分类器的数量超过L,则删除其中性能最差的基本分类器,再将Ψ
k
添加到分类器池Π中;最后对数据块DS
k
进行过采样处理,将采样得到的数据存储为动态选择数据集DSEL
k+1
;s3.4、重复s3.3,直至完成对训练数据集中所有数据块的处理;步骤4、构建一个用于即时软件缺陷预测的分类器,使用经过步骤1~3处理后的数据集对该分类器进行训练;然后向训练后的分类器输入开发人员新提交的软件变更,预测该软件变更对应的缺陷类标签,实现即时软件缺陷预测。2.如权利要求1所述一种基于动态分类器选择的即时软件缺陷预测方法,其特征在于:构建基于两层滑动窗口的验证延迟框架,对训练数据集中的软件变更进行标记和纠正,具体步骤为:s1.1、为每个软件变更数据设置一个二元组TE
i
=(SC
i
,C
i
),将软件变更输入滑动时间窗口STW1;s1.2、在滑动时间窗口STW1中,若软件变更SC...
【专利技术属性】
技术研发人员:王兴起,吴启凯,魏丹,方景龙,陈滨,秦辉亮,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。