CN113157564B - 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法 - Google Patents

一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法 Download PDF

Info

Publication number
CN113157564B
CN113157564B CN202110285188.9A CN202110285188A CN113157564B CN 113157564 B CN113157564 B CN 113157564B CN 202110285188 A CN202110285188 A CN 202110285188A CN 113157564 B CN113157564 B CN 113157564B
Authority
CN
China
Prior art keywords
source
instance
item
target item
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110285188.9A
Other languages
English (en)
Other versions
CN113157564A (zh
Inventor
祝义
赵宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Normal University
Original Assignee
Jiangsu Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Normal University filed Critical Jiangsu Normal University
Priority to CN202110285188.9A priority Critical patent/CN113157564B/zh
Publication of CN113157564A publication Critical patent/CN113157564A/zh
Application granted granted Critical
Publication of CN113157564B publication Critical patent/CN113157564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,具体包括以下步骤:从软件缺陷数据集中选择源项目,合并所有源项目构成源项目集,并选择一个目标项目;计算源项目集的协方差矩阵、目标项目的协方差矩阵;消除源项目集的特征间相关性,并将目标项目的特征相关性填充到至其中,输出特征对齐后的源项目集数据中选择与目标项目中实例相似度较高的实例构成训练实例集TS;使用训练实例集TS训练Logistic模型,再用此对目标项目中的每个实例进行缺陷预测分类。本发明通过采用特征分布对齐方法和邻域实例选择方法实现模型所需的训练数据的选择,有效解决跨项目软件缺陷预测方法中项目之间以及实例之间的差异性,提高缺陷预测性能。

Description

一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测 方法
技术邻域
本发明涉及软件工程邻域,具体涉及一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法。
背景技术
软件在很多应用邻域的重要性和依赖性日益增长,因此保障软件的可靠性越来越重要。预测软件项目中的缺陷对于软件开发过程至关重要,因为越晚发现软件中的错误,那么修复错误所需要的代价越大。软件缺陷预测的目的是帮助软件开发人员在项目开发早期发现和定位软件缺陷,从而合理分配软件测试资源以提升软件的可靠性。
软件缺陷预测方法是当前机器学习技术和软件测试邻域相结合的前沿研究。软件缺陷预测可以在软件产品发布之前预测出其存在缺陷的程序模块,以便合理地分配测试资源,提升软件质量。软件缺陷预测主要包括三个阶段:数据挖掘及处理、模型构建和模型应用。数据挖掘及处理是软件缺陷预测方法的最重要的阶段,也是保证软件缺陷预测模型性能的主要阶段。
当前绝大部分软件缺陷预测方法是基于同一项目的数据进行模型训练和预测,这种方法被称为项目内缺陷预测。但是如果需要预测的项目是一个新启动的软件项目,这种方法就不再可用。针对这种情况有研究人员提出了跨项目缺陷预测方法。
跨项目缺陷预测方法是基于源项目的已标记数据进行缺陷预测模型的训练,并在目标项目上进行缺陷预测。然而由于源项目和目标项目之间存在较大的数据分布差异性,因此在源项目上训练的模型在目标项目上未必能够取得良好的预测性能。因此如何减小项目之间的差异性,选择与目标项目中实例相似的源项目实例去构建缺陷预测模型是当前软件缺陷预测邻域的一个难点。
发明内容
本发明提供一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,通过采用特征分布对齐方法和邻域实例选择方法实现模型所需的训练数据的选择,有效解决跨项目软件缺陷预测方法中项目之间以及实例之间的差异性,提高缺陷预测性能。
为实现上述目的,本一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,具体包括以下步骤:
步骤1:从软件缺陷数据集中选择源项目和目标项目,合并所有源项目构成源项目集DS,并选择一个目标项目DT
步骤2:计算源项目集DS的协方差矩阵CS,计算目标项目DT的协方差矩阵CT
步骤3:消除源项目集DS的特征间相关性,并将目标项目DT的特征相关性填充到至其中,进行特征分布对齐,输出特征对齐后的源项目集数据
步骤4:在中选择与DT中实例相似度较高的实例构成训练实例集TS,进行邻域实例选择;
步骤5:使用训练实例集TS训练Logistic模型;
步骤6:使用Logistic模型对目标项目DT中的每个实例进行缺陷预测分类。
进一步的,步骤1中的源项目集DS中的每个源目标均与目标项目DT不属于同一项目的数据。
进一步的,所述步骤2中源项目集DS的协方差矩阵CS计算公式、目标项目DT的协方差矩阵CT分别为:
CS=COV(DS)
CT=COV(DT)
进一步的,所述步骤3中消除源项目集DS的特征间相关性计算公式为:
进一步的,所述步骤3中将目标项目DT的特征相关性填充到消除源项目集DS的特征间相关性的数据计算公式为:
进一步的,所述步骤4中计算特征对齐后的源项目集数据DS*中实例与目标项目DT中实例之间的相似度:
其中和/>分别表示/>中第i个实例和目标项目DT中第j个实例,/>和/>分别表示/>中第i个实例的第k个属性值和目标项目DT中第j个实例的第k个属性值。
与现有技术相比,本一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,通过接收未标记的目标项目和多个已标记的源项目作为输入,特征分布对齐模块是将多个源项目与目标项目进行协方差对齐,之后邻域实例选择模块是在对齐后的源项目集中选择与目标项目相似的实例,最后训练模型模块接收选择的源项目实例作为训练数据进行模型训练并返回分类器,有效降低跨项目的训练数据和目标数据的分布差异,提高缺陷预测性能。
附图说明
图1是本发明跨项目缺陷预测方法的流程示意图;
图2是本发明中特征分布对齐方法实施例示意图;
图3是本发明中邻域实例选择方法实施例示意图;其中:箭头来源方为:特征对齐后的源项目集数据DS*;箭头来源指向方为:目标项目DT
图4采用F-measure指标分析方法与Burak过滤法在实施例上的对比图;
图5采用AUC指标分析方法与Burak过滤法在实施例上的对比图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1所示,本发明基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,最初接收未标记的目标项目和多个已标记的源项目作为输入,特征分布对齐模块是将多个源项目与目标项目进行协方差对齐,之后邻域实例选择模块是在对齐后的源项目集中选择与目标项目相似的实例,最后训练模型模块接收选择的源项目实例作为训练数据进行模型训练并返回分类器,使用该模型在Promise数据集和ReLink数据集上进行缺陷预测,该方法有效降低跨项目的训练数据和目标数据的分布差异。
实施例
本发明在实际应用中的包括以下步骤:
步骤1:从软件缺陷数据集中选择源项目,合并所有源项目构成源项目集DS,并从软件缺陷数据选择一个目标项目DT;其中目标项目DT和所选的源项目集DS不存在同一个模块数据,即不是同一个项目不同版本的数据集;
步骤2:计算源项目集DS的协方差矩阵CS,计算目标项目DT的协方差矩阵CT,其采用计算公式相应为:
CS=COV(DS)
CT=COV(DT)
步骤3:如图2所示,进行特征分布对齐,具体为首先消除源项目集DS的特征间相关性,计算公式为:
再将目标项目DT的特征相关性填充到消除源项目集DS的特征间相关性的数据中,然后输出特征对齐后的源项目集数据其计算公式为:
步骤4:如图3所示,进行邻域实例选择,具体为在中选择与目标项目DT中实例相似度较高的实例构成训练实例集TS,对于相似度选择,采用以下计算公式:
其中和/>分别表示/>中第i个实例和目标项目DT中第j个实例。/>和/>分别表示源项目集/>中第i个实例的第k个属性值和目标项目DT中第j个实例的第k个属性值。
步骤5:使用训练实例集TS训练Logistic模型;
步骤6:使用Logistic模型对目标项目DT中的每个实例进行缺陷预测分类。
使用Logistic模型可在Promise数据集和ReLink数据集上进行缺陷预测,通过表1、表2实验数据集进行显示;
表1 ReLink实验数据集
表2 Promise实验数据集
Relink数据集可借助手工方式对数据集中的缺陷信息进行确认,使用Understand工具分析3个项目(Apache、Safe和ZXing),从源代码中抽取出重要的软件特征指标。Relink数据集有26个复杂度特征,这些特征主要基于代码的复杂度和抽象语法树,总体可以分为两个大类:基于程序复杂度的特征和基于数量的特征。
Promise数据集来自10个不同开源项目(例如ivy-1.1、log4j-1.1、velocity-1.6等)的多个版本,每个项目中实例的特征包括20种不同的度量元和一个缺陷数量标记,这20种度量元均关注的是代码复杂度,其中包括CK度量元。这些度量元综合考虑了面向对象程序固有的封装、继承、多态等特性。由于实验关注的是缺陷的分类问题,即有缺陷和无缺陷问题,因此对于数据集中的缺陷数量标记,需要把项目中缺陷数量大于0的实例标记为有缺陷标签Y,缺陷数量为0的实例标记为无缺陷标签N。
方法使用过程:假设以表2中velocity-1.6作为目标项目DT,首先将剩余的项目合并成一个源项目集DS,并根据本方法得到特征分布对齐后的源项目数据集之后进行邻域实例选择,在/>和DT中计算实例间相似度similarity。通过对目标项目DT中每个实例与/>中实例的相似度similarity排序,取前5个对应的相似度较高的实例编号,得到训练实例集TS,最后使用训练实例集TS训练Logistic模型,并且使用训练好的Logistic模型对目标项目DT中的每个实例进行缺陷预测分类。
方法性能分析:分别使用F-measure和AUC指标分析方法,对已有的经典实例过滤法--Burak过滤法在实施例上进行性能比较,并将实验结果作成图4和图5所示;其中横轴表示目标项目,ReLink数据集的三个项目为一组,Promise数据集的十个项目为一组,例如横轴为Apache表示以Apache为目标项目,以Safe和Zxing作为源数据集的跨项目缺陷预测实验,而横轴为ivy-1.1表示以ivy-1.1为目标项目,以剩余九个项目作为源数据集的跨项目缺陷预测实验,由于在实验中以ckjm项目作为目标项目的实例选择出现了选择的实例都是同一类的情况,所以将其验排除;纵轴为性能数值;
图4中圆圈点连成折线表示使用F-measure指标分析方法在各个数据集上相关指标的表现,正方形点连成折线表示经典的实例选择方法Burak过滤法各种指标的性能体现,水平直线表示使用F-measure指标分析方法在所有项目上性能平均值,水平虚线表示Burak过滤法在所有项目上的性能平均值。
图5中圆圈点连成折线表示使用AUC指标分析方法在各个数据集上相关指标的表现,正方形点连成折现表示经典的实例选择方法Burak过滤法各种指标的性能体现,水平直线表示使用AUC指标分析方法在所有项目上性能平均值,水平虚线表示Burak过滤法在所有项目上的性能平均值。
可以看出本方法与经典的实例选择方法Burak过滤法相比在F-measure和AUC上在各个项目上皆有优势,从图4、图5中中得出,采用本方法在F-measure和AUC在所有项目上性能平均值比传统Burak过滤法性能均值高出0.1左右。因此本基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,能够有效降低跨项目的训练数据和目标数据的分布差异,提高缺陷预测性能。

Claims (2)

1.一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,其特征在于,具体包括以下步骤:
步骤1:从软件缺陷数据集中选择源项目和目标项目,合并所有源项目构成源项目集DS,并选择一个目标项目DT
源项目集DS的协方差矩阵CS计算公式、目标项目DT的协方差矩阵CT分别为:
CS=COV(DS)
CT=COV(DT)
步骤2:计算源项目集DS的协方差矩阵CS,计算目标项目DT的协方差矩阵CT
步骤3:消除源项目集DS的特征间相关性,并将目标项目DT的特征相关性填充到至其中,进行特征分布对齐,输出特征对齐后的源项目集数据
消除源项目集DS的特征间相关性计算公式为:
将目标项目DT的特征相关性填充到消除源项目集DS的特征间相关性的数据计算公式为:
步骤4:在中选择与DT中实例相似度较高的实例构成训练实例集TS,进行邻域实例选择;
计算特征对齐后的源项目集数据中实例与目标项目DT中实例之间的相似度:
其中和/>分别表示/>中第i个实例和目标项目DT中第j个实例,/>和/>分别表示/>中第i个实例的第k个属性值和目标项目DT中第j个实例的第k个属性值;
步骤5:使用训练实例集TS训练Logistic模型;
步骤6:使用Logistic模型对目标项目DT中的每个实例进行缺陷预测分类。
2.根据权利要求1所述的一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法,其特征在于,步骤1中的源项目集DS中的每个源目标均与目标项目DT不属于同一项目的数据。
CN202110285188.9A 2021-03-17 2021-03-17 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法 Active CN113157564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110285188.9A CN113157564B (zh) 2021-03-17 2021-03-17 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110285188.9A CN113157564B (zh) 2021-03-17 2021-03-17 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法

Publications (2)

Publication Number Publication Date
CN113157564A CN113157564A (zh) 2021-07-23
CN113157564B true CN113157564B (zh) 2023-11-07

Family

ID=76887443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110285188.9A Active CN113157564B (zh) 2021-03-17 2021-03-17 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法

Country Status (1)

Country Link
CN (1) CN113157564B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269377B (zh) * 2022-06-23 2023-07-11 南通大学 一种基于优化实例选择的跨项目软件缺陷预测方法
CN115858209B (zh) * 2022-11-17 2023-06-20 北京航空航天大学 基于信息保留协同优化的异构跨项目软件缺陷预测方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017131263A1 (ko) * 2016-01-29 2017-08-03 한국과학기술원 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
CN107391369A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据筛选和数据过采样的跨项目缺陷预测方法
CN108647138A (zh) * 2018-02-27 2018-10-12 中国电子科技集团公司电子科学研究院 一种软件缺陷预测方法、装置、存储介质及电子设备
CN110442523A (zh) * 2019-08-06 2019-11-12 山东浪潮人工智能研究院有限公司 一种跨项目软件缺陷预测方法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN111367801A (zh) * 2020-02-29 2020-07-03 杭州电子科技大学 一种面向跨公司软件缺陷预测的数据变换方法
CN111581116A (zh) * 2020-06-16 2020-08-25 江苏师范大学 一种基于分层数据筛选的跨项目软件缺陷预测方法
CN111966586A (zh) * 2020-08-05 2020-11-20 南通大学 一种基于模块选择和权重更新的跨项目缺陷预测方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017131263A1 (ko) * 2016-01-29 2017-08-03 한국과학기술원 교차 프로젝트 결함 예측을 위한 최단 이웃점을 이용한 하이브리드 인스턴스 선택 방법
CN107391369A (zh) * 2017-07-13 2017-11-24 武汉大学 一种基于数据筛选和数据过采样的跨项目缺陷预测方法
CN108647138A (zh) * 2018-02-27 2018-10-12 中国电子科技集团公司电子科学研究院 一种软件缺陷预测方法、装置、存储介质及电子设备
CN110442523A (zh) * 2019-08-06 2019-11-12 山东浪潮人工智能研究院有限公司 一种跨项目软件缺陷预测方法
CN110825644A (zh) * 2019-11-11 2020-02-21 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN111367801A (zh) * 2020-02-29 2020-07-03 杭州电子科技大学 一种面向跨公司软件缺陷预测的数据变换方法
CN111581116A (zh) * 2020-06-16 2020-08-25 江苏师范大学 一种基于分层数据筛选的跨项目软件缺陷预测方法
CN111966586A (zh) * 2020-08-05 2020-11-20 南通大学 一种基于模块选择和权重更新的跨项目缺陷预测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
evaluating the adaptive selection of classifier forcross-project bug prediction;Dario Di Nucci等;《2018 IEEE/ACM 6th international workshop on realizing artificial intelligence synergies in software engineering(RAISE)》;第48-54页 *
基于分层数据筛选的跨项目缺陷预测方法;赵宇等;《计算机工程与应用》(第20期);第279-286页 *
基于相关性分析的跨项目软件缺陷预测方法研究;娄丰鹏;《cnki优秀硕士学位论文全文库 信息科技辑》(第02期);第I138-664页 *

Also Published As

Publication number Publication date
CN113157564A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN110825644B (zh) 一种跨项目软件缺陷预测方法及其系统
CN109344250B (zh) 基于医保数据的单病种诊断信息快速结构化方法
WO2018000269A1 (zh) 一种基于数据挖掘和众包的数据标注方法及系统
CN113157564B (zh) 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法
CN109492106B (zh) 一种文本代码相结合的缺陷原因自动分类方法
CN106776538A (zh) 企业非标准格式文档的信息提取方法
CN109376247B (zh) 一种基于关联规则的软件缺陷自动分类方法
CN110378206B (zh) 一种智能审图系统及方法
CN107004141A (zh) 对大样本组的高效标注
CN111581116B (zh) 一种基于分层数据筛选的跨项目软件缺陷预测方法
Leahy et al. Automated measurements of key morphological features of human embryos for IVF
CN110910175B (zh) 一种旅游门票产品画像生成方法
CN107168868B (zh) 一种基于采样和集成学习的软件更改缺陷预测方法
CN111325264A (zh) 一种基于熵的多标签数据分类方法
CN111897946A (zh) 漏洞补丁推荐方法、系统、计算机设备和存储介质
CN110310012B (zh) 数据分析方法、装置、设备及计算机可读存储介质
US8341170B2 (en) Apparatus and method for visualizing technology change
CN114153839A (zh) 多源异构数据的集成方法、装置、设备及存储介质
Zhang et al. WeLayout: WeChat Layout Analysis System for the ICDAR 2023 Competition on Robust Layout Segmentation in Corporate Documents
CN116910650A (zh) 数据识别方法、装置、存储介质及计算机设备
CN115952282A (zh) 基于nlp技术的银行客户投诉智能分流处置方法和系统
CN112199287B (zh) 基于强化混合专家模型的跨项目软件缺陷预测方法
CN113987170A (zh) 基于卷积神经网络的多标签文本分类方法
CN109684615B (zh) 一种行人碰撞试验报告生成方法及装置
CN109754159B (zh) 一种电网运行日志的信息提取方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant