本发明专利技术属于软件缺陷预测领域,提供了基于特征和实例迁移的跨项目软件缺陷预测方法及系统,该方法包括:特征迁移阶段采用了包裹式特征选择方法,通过候选迁移特征子集在验证集上的预测效果为依据来选择迁移特征集合,效果比起过滤特征选择方法更加稳定有效;在实例迁移阶段采用代价敏感学习方式对于数量少代价高的缺陷样本提高其在训练过程中的比重以此解决数据集的类不平衡问题,最后,使用特征迁移和实例迁移后的数据构建预测模型,以此提升单一迁移角度建模的预测性能。单一迁移角度建模的预测性能。单一迁移角度建模的预测性能。
【技术实现步骤摘要】
基于特征和实例迁移的跨项目软件缺陷预测方法及系统
[0001]本专利技术属于软件缺陷预测领域,尤其涉及基于特征和实例迁移的跨项目软件缺陷预测方法及系统。
技术介绍
[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]软件缺陷预测可分为同项目软件缺陷预测和跨项目软件缺陷预测。同项目软件缺陷预测指的是利用同一软件的历史版本信息来构建缺陷预测模型,跨项目软件缺陷预测指的是利用其他软件的历史数据信息来构建模型对目标软件进行缺陷预测。由于在实际应用中,很多新开发的软件没有足够的历史数据信息可以提供,同项目软件缺陷预测难以发挥作用,因此,跨项目软件缺陷预测成为了领域内的研究热点。迁移学习是解决跨项目软件缺陷预测的主要手段,其中包括特征迁移和实例迁移。目前的研究中还存在以下问题需要解决:
[0004]1.在基于特征迁移的跨项目软件缺陷预测研究中,大多使用过滤式特征选择方法即利用统计学方法计算特征在不同项目上的分布相似性进而选出合适的迁移特征,但是该方法衡量迁移特征质量的角度单一,无法保证特征迁移的效果。
[0005]2.在基于实例迁移的跨项目软件缺陷预测研究中,很少有研究解决缺陷数据集的类不平衡性问题,该问题会影响模型的训练过程,导致模型预测结果偏向数目较多的无缺陷类,降低对缺陷模块预测的准确性。
[0006]3.在跨项目软件缺陷预测研究中,很少有研究从特征和实例两个角度上进行迁移学习,无法进一步提升缺陷预测的效果。
技术实现思路
[0007]为了解决上述
技术介绍
中存在的至少一项技术问题,本专利技术提供一种基于特征迁移和实例迁移的跨项目软件缺陷预测方法,在特征迁移阶段采用了包裹式特征选择方法,通过候选迁移特征子集在验证集上的预测效果为依据来选择迁移特征集合,效果比起过滤特征选择方法更加稳定有效;在实例迁移阶段采用代价敏感学习方式对于数量少代价高的缺陷样本提高其在训练过程中的比重以此解决数据集的类不平衡问题,最后,使用特征迁移和实例迁移后的数据构建预测模型,以此提升单一迁移角度建模的预测性能。
[0008]为了实现上述目的,本专利技术采用如下技术方案:
[0009]本专利技术的第一个方面提供基于特征和实例迁移的跨项目软件缺陷预测方法,包括如下步骤:
[0010]获取软件中的操作数和操作对象的度量信息;
[0011]根据软件中的度量信息构建出源项目和目标项目的软件模块度量元;
[0012]根据源项目和目标项目的软件模块度量元和采用机器学习构建的软件缺陷预测
模型,预测含有缺陷的软件模块;其中,所述采用机器学习构建的软件缺陷预测模型的过程为:从特征和实例两个角度上进行迁移学习,采用特征迁移方法对目标项目从源项目上进行特征迁移,得到用来预测软件缺陷的特征,采用实例迁移方法对目标项目从源项目上进行实例迁移,增加训练过程中预测错误代价高的缺陷样本的权重,结合特征迁移和实例迁移,基于源项目找到目标项目中概率最大的含有缺陷的软件模块。
[0013]本专利技术的第二个方面提供基于特征和实例迁移的跨项目软件缺陷预测系统,包括:
[0014]软件模块度量元构建模块,被配置为:
[0015]获取软件中的操作数和操作对象的度量信息;
[0016]根据软件中的度量信息构建出源项目和目标项目的软件模块度量元;
[0017]软件缺陷预测模块,被配置为:根据源项目和目标项目的软件模块度量元和采用机器学习构建的软件缺陷预测模型,预测含有缺陷的软件模块;其中,所述采用机器学习构建的软件缺陷预测模型的过程为:从特征和实例两个角度上进行迁移学习,采用特征迁移方法对目标项目从源项目上进行特征迁移,得到用来预测软件缺陷的特征,采用实例迁移方法对目标项目从源项目上进行实例迁移,增加训练过程中预测错误代价高的缺陷样本的权重,结合特征迁移和实例迁移,基于源项目找到目标项目中概率最大的含有缺陷的软件模块。
[0018]本专利技术的第三个方面提供一种计算机可读存储介质。
[0019]一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于特征和实例迁移的跨项目软件缺陷预测方法中的步骤。
[0020]本专利技术的第四个方面提供一种计算机设备。
[0021]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于特征和实例迁移的跨项目软件缺陷预测方法中的步骤。
[0022]与现有技术相比,本专利技术的有益效果是:
[0023]本专利技术在特征迁移阶段使用基于遗传算法的包裹式特征方法,直接以候选特征子集在验证集上的模型预测效果为指标搜索最优迁移特征集合,比起常用的过滤式特征选择方法,迁移效果更加稳定优越;实例迁移阶段在TrAdaboost算法的基础上引入了代价敏感学习机制,提升了训练过程中数目较少的缺陷样本的权重,有效缓解了类不平衡问题带去的影响,提升了实例迁移的效果,最后,本专利技术将两种数据迁移方法结合在一起,进一步提升了跨项目软件缺陷预测方法的性能,可以在目标项目历史信息缺乏的情况下,使用其他软件项目的数据构建软件缺陷预测模型,有效找出大概率含有缺陷的软件模块,给测试人员提供合理的测试资源分配建议,大幅提升了软件测试的效率。
附图说明
[0024]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0025]图1是基于特征迁移和实例迁移的跨项目软件缺陷预测方法的整体流程图。
具体实施方式
[0026]下面结合附图与实施例对本专利技术作进一步说明。
[0027]应该指出,以下详细说明都是例示性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术所属
的普通技术人员通常理解的相同含义。
[0028]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本专利技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0029]软件缺陷预测是软件工程领域里非常重要和实用的研究课题。软件缺陷预测技术可以通过软件的历史数据信息构建出软件缺陷预测模型对新的软件模块进行预测,从而给测试人员提供有效的测试资源分配方案,提升软件测试的效率,进而保证软件的安全可靠性。
[0030]术语解释
[0031]软件度量元:描述软件产品或者软件开发过程的指标或者参数。软件度量元是从软件模块(一个软件模块可以是一个类、一个文件或者一个函数甚至是一个包)中提取数据的依据,在数据质量上起着关键作用。
[0032]实施例一
[0033]本专利技术为了解决在跨项目软件缺陷预测研究中,过本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于特征和实例迁移的跨项目软件缺陷预测方法,其特征在于,包括如下步骤:获取软件中的操作数和操作对象的度量信息;根据软件中的度量信息构建出源项目和目标项目的软件模块度量元;根据源项目和目标项目的软件模块度量元和采用机器学习构建的软件缺陷预测模型,预测含有缺陷的软件模块;其中,所述采用机器学习构建的软件缺陷预测模型的过程为:从特征和实例两个角度上进行迁移学习,采用特征迁移方法对目标项目从源项目上进行特征迁移,得到用来预测软件缺陷的特征,采用实例迁移方法对目标项目从源项目上进行实例迁移,增加训练过程中预测错误代价高的缺陷样本的权重,结合特征迁移和实例迁移,基于源项目找到目标项目中概率最大的含有缺陷的软件模块。2.如权利要求1所述的基于特征和实例迁移的跨项目软件缺陷预测方法,其特征在于,采用基于遗传算法的包裹式特征迁移方法进行特征迁移,包括以下步骤:定义遗传算法的染色体,每个染色体代表一个候选特征集;根据时间成本以及特征空间覆盖范围,自定义种群的初始规模;构建适应度函数,通过带标记的目标项目度量元构建验证集,以候选特征集合在验证集上取得的F
‑
measure值为适应度来搜索最优迁移特征集合;使用轮盘赌法来决定种群中可进入下一代生成新的种群的个体。3.如权利要求2所述的基于特征和实例迁移的跨项目软件缺陷预测方法,其特征在于,在构建构建适应度函数时,将半监督学习算法Tri
‑
training预测结果中的有缺陷样本加入验证集中。4.如权利要求1所述的基于特征和实例迁移的跨项目软件缺陷预测方法,其特征在于,所述采用实例迁移方法对目标项目从源项目上进行实例迁移中,采用实例迁移算法TrAdaboost算法作为基础的实例迁移方法,训练多轮模型,最后对多轮模型模型集成使用。5.如权利要求1所述的基于特征和实例迁移的跨项目软件缺陷预测方法,其特征在于,在TrAdaboost算法中加入代价敏感学习机制,改变TrAdaboost...
【专利技术属性】
技术研发人员:李文昊,李凡平,石柱国,
申请(专利权)人:以萨技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。