【技术实现步骤摘要】
一种基于模块选择和权重更新的跨项目缺陷预测方法
本专利技术涉及软件质量保障领域,尤其是一种基于模块选择和权重更新的跨项目缺陷预测方法。
技术介绍
软件缺陷预测通过分析软件历史仓库,构建软件缺陷预测模型来识别被测项目内的潜在缺陷程序模块,通过将更多测试资源优先分配到这些程序模块,可达到优化测试资源分配,提高软件产品质量的目的。软件缺陷预测模型依赖于高质量的数据集,但在实际的软件预测场景中,需要执行软件缺陷预测的项目大部分都是新的项目,而对新项目进行标注是一件既耗时,又耗力的工作。跨项目缺陷预测方法是解决该问题的一种简单的解决方案。该方法直接使用其他项目已经搜集的高质量数据集来为目标项目构建软件缺陷预测模型。但是,不同的项目会因所处的应用领域、使用的编程语言或开发人员的经验等因素导致特征分布的不同。因此,源项目程序模块数据集与目标项目程序模块数据集存在很大的度量元取值分布差异,难以满足独立同分布的假设。针对该问题,大部分研究人员从减小源项目程序模块数据集和目标项目程序模块数据集中的度量元取值分布差异这个角度来设计 ...
【技术保护点】
1.一种基于模块选择和权重更新的跨项目缺陷预测方法,其特征在于,包括以下步骤:/n(1)抽取目标项目程序模块并进行属性度量,构建目标项目程序模块数据集U,所述目标项目程序模块数据集U中包含的程序模块数量为n
【技术特征摘要】
1.一种基于模块选择和权重更新的跨项目缺陷预测方法,其特征在于,包括以下步骤:
(1)抽取目标项目程序模块并进行属性度量,构建目标项目程序模块数据集U,所述目标项目程序模块数据集U中包含的程序模块数量为nu;
(2)抽取源项目程序模块并进行属性度量,然后根据源项目托管的版本控制系统和缺陷跟踪系统对所抽取的源项目程序模块进行缺陷类别标注,得到具有缺陷类别标注的源项目程序模块数据集T;所述缺陷类别包括有缺陷和无缺陷;
(3)采用源项目模块选择方法对源项目程序模块数据集T进行筛选,得到与目标项目程序模块数据集U分布相似的相似软件程序模块数据集T’,将相似软件程序模块数据集T’中的程序模块赋初始权重,得到带权重程序模块数据集D;
(4)根据带权重程序模块数据集D中有缺陷的程序模块数量和无缺陷的程序模块数量对带权重程序模块数据集D执行权重平衡,获得权重平衡程序模块数据集D’,随后使用权重平衡程序模块数据集D’训练支持向量机,得到支持向量机模型clf;
(5)预设挑选比率ratio;
(6)计算所述带权重程序模块数据集D中选自于目标项目程序模块数据集U的程序模块数n,如果n≥ratio×nu,则输出支持向量机模型clf,否则执行步骤(7);
(7)将目标项目程序模块数据集U输入步骤(4)所得的支持向量机模型clf,计算目标项目程序模块数据集U中各个程序模块距支持向量机模型clf中划分超平面的距离,选择k2个距离最近的程序模块进行缺陷标注后从目标项目程序模块数据集U中移除,添加到带权重程序模块数据集D中并进行权重更新,执行步骤(4)和步骤(6);
(8)采用支持向量机模型clf预测目标项目程序模块数据集U中程序模块有无缺陷。
2.根据权利要求1所述的跨项目缺陷预测方法,其特征在于上述步骤(3)中的所述源项目模块选择方法包括如下步骤:
2-1)将源项目程序模块数据集T的属性度量值部分视为矩阵normT,目标项目程序模块数据集U的属性度量值部分视为矩阵normU,记矩阵normT的行数为rt,记矩阵normU的行数为ru=nu,新建行数为rt,列数为ru的矩阵normT’并初始为0;
2-2)令aij表示矩阵normT’里第i行第j列的元素,bij表示矩阵normT中第i行第j列的元素,cij表示矩阵normU中第i行第j列的元素,根据计算公式获得所述矩阵normT’中每一个元素amn,其中m,n∈N*且m∈[1,rt],n∈[1,ru],k3为normT的列数,得到矩阵normT’;
2-3)对所述矩阵normT’,将每列数据从小到大排序,每列取出k4个最小的值,保存他们的行号,可得到ru×k4个行号,将不重复的所述行号存入集合rset中,保留矩阵normT中第j行元素,其中j为集合rset中的每...
【专利技术属性】
技术研发人员:陈翔,贾焱鑫,袁智丹,杨光,
申请(专利权)人:南通大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。