CN117112429A - 一种基于跨模块缺陷关联性的缺陷预测方法和系统 - Google Patents

一种基于跨模块缺陷关联性的缺陷预测方法和系统 Download PDF

Info

Publication number
CN117112429A
CN117112429A CN202311122718.3A CN202311122718A CN117112429A CN 117112429 A CN117112429 A CN 117112429A CN 202311122718 A CN202311122718 A CN 202311122718A CN 117112429 A CN117112429 A CN 117112429A
Authority
CN
China
Prior art keywords
defect
module
cross
modules
defect prediction
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.)
Pending
Application number
CN202311122718.3A
Other languages
English (en)
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.)
Zhejiang Sci Tech University ZSTU
Original Assignee
Zhejiang Sci Tech University ZSTU
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 Zhejiang Sci Tech University ZSTU filed Critical Zhejiang Sci Tech University ZSTU
Priority to CN202311122718.3A priority Critical patent/CN117112429A/zh
Publication of CN117112429A publication Critical patent/CN117112429A/zh
Pending legal-status Critical Current

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
    • 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/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于跨模块缺陷关联性的缺陷预测方法和系统,属于软件缺陷诊断技术领域,方法包括:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;获取模块的度量数据,构建数据集;基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;对测试集中的关键重复实例进行过滤;通过训练集对缺陷预测模型进行训练;将测试集输入至缺陷预测模型,对比缺陷预测模型的预测结果与真实结果之间的差异,评估缺陷预测模型。本发明可以考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性。

Description

一种基于跨模块缺陷关联性的缺陷预测方法和系统
技术领域
本发明属于软件缺陷诊断技术领域,具体涉及一种基于跨模块缺陷关联性的缺陷预测方法和系统。
背景技术
在软件开发过程中,缺陷是一个常见的问题,它们可能导致程序出现错误、崩溃或功能异常,严重影响软件产品的质量和可靠性。因此,及时发现和解决缺陷对于确保软件产品的高质量至关重要。
为了提高软件质量并减少缺陷,研究者们提出了许多缺陷预测技术。缺陷预测旨在通过分析历史缺陷数据和软件模块的特征,来预测新的软件模块是否容易出现缺陷。这样的预测有助于开发人员优先处理高风险的模块,从而更高效地进行测试和修复工作。
然而,在过去的研究中,缺陷预测模型通常依赖于来自单个模块的特征,忽略同一个缺陷涉及的多个模块之间的关联性。当一个缺陷跨越多个模块时,所有涉及的模块通常都被标记为有缺陷,而不考虑它们之间的潜在关系。
进一步地,忽视缺陷内的关联,将导致模型也会忽略缺陷在模块内部或跨不同模块之间的传播潜力。这种对缺陷传播的不完整理解,导致模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,进而可能阻碍对缺陷的识别。尤其在复杂的软件系统中,缺陷可能是由于不同模块之间的相互作用和依赖性而产生的。例如,一个模块的更改可能会引入一个缺陷,影响另一个模块的行为或性能。现有的缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失。
发明内容
为了解决现有技术中缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失的技术问题,本发明提供一种基于跨模块缺陷关联性的缺陷预测方法和系统。
第一方面
本发明提供了一种基于跨模块缺陷关联性的缺陷预测方法,包括:
S101:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;
S102:获取模块的度量数据,构建数据集;
S103:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;
S104:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;
S105:对测试集中的关键重复实例进行过滤;
S106:通过训练集对缺陷预测模型进行训练;
S107:将测试集输入至所述缺陷预测模型,对比所述缺陷预测模型的预测结果与真实结果之间的差异,评估所述缺陷预测模型。
第二方面
本发明提供了一种基于跨模块缺陷关联性的缺陷预测系统,用于执行第一方面中的基于跨模块缺陷关联性的缺陷预测方法。
与现有技术相比,本发明至少具有以下有益技术效果:
在本发明中,利用跨模块缺陷关联性构建缺陷预测模型,通过更全面地考虑缺陷的跨模块特性,可以更好地理解缺陷传播的过程和机制,考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性,降低缺陷损失。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明提供的一种基于跨模块缺陷关联性的缺陷预测方法的流程示意图;
图2是本发明提供的一种基于跨模块缺陷关联性的缺陷预测方法的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与发明相关的部分,它们并不代表其作为产品的实际结构。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
另外,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
在一个实施例中,参考说明书附图1,示出了本发明提供的基于跨模块缺陷关联性的缺陷预测方法的流程示意图。参考说明书附图2,示出了本发明提供的一种基于跨模块缺陷关联性的缺陷预测方法的结构示意图。
本发明提供的一种基于跨模块缺陷关联性的缺陷预测方法,包括:
S101:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系。
在一种可能的实施方式中,S101具体包括子步骤S1011至S1014:
S1011:获取开发过程数据。
其中,开发过程数据可以指在软件开发过程中产生的各种记录、信息和指标,这些数据可以反映出软件的开发、维护和演化的不同方面。
其中,开发过程数据包括版本控制系统中的代码提交记录、缺陷报告、代码审查信息等。
S1012:识别开发过程数据中有关缺陷修复的变更以及缺陷修复时所同时修改的模块。
需要说明的是,与缺陷修复相关的代码变更,以及在缺陷修复过程中同时被修改的模块,这些模块往往可是视为与缺陷具有相关性。
S1013:将对同一个缺陷进行修复时所同时修改的模块组成关联组。
需要说明的是,将对同一个缺陷进行修复时所同时修改的模块组成关联组,有助于分析跨模块的缺陷关联性。
S1014:生成缺陷与模块之间的映射关系:
M={(di,Mi)}
Mi={mij}
其中,M表示映射关系,di表示第i个缺陷,Mi表示与第i个缺陷具有关联关系的关联组,mij表示与第i个缺陷具有关联关系的第j个模块。
在本发明中,通过识别关联的模块和生成映射关系,系统能够更好地理解每个缺陷如何影响不同的模块。这有助于捕捉模块之间的相互影响和连锁效应。将同时被修改的模块组成关联组,使系统能够在更细粒度的层面上分析模块之间的关联性,提供更具针对性的数据。
S102:获取模块的度量数据,构建数据集。
在一种可能的实施方式中,S102具体包括子步骤S1021和S1022:
S1021:选取多个度量指标,量化各个样本的特征,得到各个样本的样本特征。
其中,度量指标包括:代码复杂性、代码覆盖率、代码行数和函数调用关系。本领域技术人员可以根据实际情况设置度量指标的具体内容,本发明不做限定。
其中,代码复杂性是指测量代码中逻辑结构的复杂程度的度量。
其中,代码覆盖率是指测量测试用例覆盖代码的百分比。
其中,代码行数是指代码文件中的物理行数。
其中,函数调用关系是指代码中函数之间的调用关系。
S1022:构建数据集:
P={(X1,y1),(X2,y2),…,(Xm,ym)}
其中,P表示数据集,Xi表示第i个样本的样本特征,yi表示第i个样本的样本标签,m表示样本的总数,i=1,2,…,m。
在本发明中,通过将每个样本的多个度量指标组合成样本特征,构建出多维度的数据集,使得模型能够在更广泛的特征空间中进行学习,更好地捕捉不同模块的差异和相似性。
S103:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集。
在一种可能的实施方式中,S103具体包括子步骤S1031和S1032:
S1031:基于缺陷与模块之间的映射关系生成约束,将对同一个缺陷进行修复时所同时修改的模块进行绑定。
S1032:按照预设比例,将数据集划分为训练集和测试集。
其中,本领域技术人员可以根据实际情况设置预设比例的大小,本发明不做限定。
在本发明中,通过基于缺陷与模块之间的映射关系生成约束,将对同一个缺陷进行修复时同时修改的模块进行绑定。这样做考虑了缺陷之间的关联性,确保了在训练集和测试集中都能涵盖同一个关联组的样本。确保与同一缺陷相关的模块得到适当的考虑,从而减少由模块分离引入的潜在偏差。进一步地,为了避免在训练集中有意集中所有涉及跨模块缺陷的模块,从而导致测试集中只包含涉及单一模块缺陷和非缺陷模块的情况,在此步骤中采用了随机的约束划分。这样的随机划分更符合实际情况,并有助于避免性能评估中的偏差引入。
S104:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增。
在一种可能的实施方式中,S104具体包括子步骤S1041:
S1041:通过计算同一个关联组中各个模块的模块特征的平均数,扩增出第一跨模块实例。
在一种可能的实施方式中,S104具体包括子步骤S1042:
S1042:通过计算同一个关联组中各个模块的模块特征的中位数,扩增出第二跨模块实例。
在本发明中,为了使模型获得更好的性能,需要为其提供具有多样性、高质量的训练数据集,因此保留原始的单模块实例,并在训练数据中增加了新的跨模块实例,以达到数据平衡的目标。经过这个过程,缺陷内的关联可以得到有效利用。
进一步地,本发明利用了跨模块缺陷内的关联关系,有效识别相邻模块,提高数据扩增的有效性,解决了当前缺陷预测模型不能有效捕获缺陷传播范围等问题,能够有效提高缺陷预测的准确率和有效性。
S105:对测试集中的关键重复实例进行过滤。
在一种可能的实施方式中,S105具体为:对测试集中的已在训练集中使用过实例进行过滤,得到新的测试集。
需要说明的是,当测试集中包含了与训练集相同的实例时,模型在测试阶段可能会表现得更好,因为它在之前已经见过这些实例。然而,这并不能准确地反映模型对于新数据的泛化能力。通过对测试集中的重复实例进行过滤,可以减少因此引起的偏差,确保模型评估更加准确。
在本发明中,可以提升后续通过测试集进行模型评估的可靠性、准确性和真实性,为决策提供更可信的依据。
S106:通过训练集对缺陷预测模型进行训练。
S107:将测试集输入至缺陷预测模型,对比缺陷预测模型的预测结果与真实结果之间的差异,评估缺陷预测模型。
与现有技术相比,本发明至少具有以下有益技术效果:
在本发明中,利用跨模块缺陷关联性构建缺陷预测模型,通过更全面地考虑缺陷的跨模块特性,可以更好地理解缺陷传播的过程和机制,考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性,降低缺陷损失。
实施例2
在一个实施例中,本发明提供的一种基于跨模块缺陷关联性的缺陷预测系统,用于执行实施例1中的基于跨模块缺陷关联性的缺陷预测方法。
本发明提供的一种基于跨模块缺陷关联性的缺陷预测系统可以实现上述实施例1中的基于跨模块缺陷关联性的缺陷预测方法的步骤和效果,为避免重复,本发明不再赘述。
与现有技术相比,本发明至少具有以下有益技术效果:
在本发明中,利用跨模块缺陷关联性构建缺陷预测模型,通过更全面地考虑缺陷的跨模块特性,可以更好地理解缺陷传播的过程和机制,考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性,降低缺陷损失。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种基于跨模块缺陷关联性的缺陷预测方法,其特征在于,包括:
S101:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;
S102:获取模块的度量数据,构建数据集;
S103:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;
S104:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;
S105:对测试集中的关键重复实例进行过滤;
S106:通过训练集对缺陷预测模型进行训练;
S107:将测试集输入至所述缺陷预测模型,对比所述缺陷预测模型的预测结果与真实结果之间的差异,评估所述缺陷预测模型。
2.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S101具体包括:
S1011:获取开发过程数据;
S1012:识别所述开发过程数据中有关缺陷修复的变更以及缺陷修复时所同时修改的模块;
S1013:将对同一个缺陷进行修复时所同时修改的模块组成关联组;
S1014:生成缺陷与模块之间的映射关系:
M={(di,Mi)}
Mi={mij}
其中,M表示映射关系,di表示第i个缺陷,Mi表示与第i个缺陷具有关联关系的关联组,mij表示与第i个缺陷具有关联关系的第j个模块。
3.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S102具体包括:
S1021:选取多个度量指标,量化各个样本的特征,得到各个样本的样本特征;
S1022:构建数据集:
P={(X1,y1),(X2,y2),…,(Xm,ym)}
其中,P表示数据集,Xi表示第i个样本的样本特征,yi表示第i个样本的样本标签,m表示样本的总数,i=1,2,…,m。
4.根据权利要求3所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述度量指标包括:代码复杂性、代码覆盖率、代码行数和函数调用关系。
5.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S103具体包括:
S1031:基于缺陷与模块之间的映射关系生成约束,将对同一个缺陷进行修复时所同时修改的模块进行绑定;
S1032:按照预设比例,将数据集划分为训练集和测试集。
6.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S104具体包括:
S1041:通过计算同一个关联组中各个模块的模块特征的平均数,扩增出第一跨模块实例。
7.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S104具体包括:
S1042:通过计算同一个关联组中各个模块的模块特征的中位数,扩增出第二跨模块实例。
8.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述S105具体为:
对测试集中的已在训练集中使用过实例进行过滤,得到新的测试集。
9.一种基于跨模块缺陷关联性的缺陷预测系统,其特征在于,用于执行权利要求1至8任一项所述的基于跨模块缺陷关联性的缺陷预测方法。
CN202311122718.3A 2023-08-31 2023-08-31 一种基于跨模块缺陷关联性的缺陷预测方法和系统 Pending CN117112429A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311122718.3A CN117112429A (zh) 2023-08-31 2023-08-31 一种基于跨模块缺陷关联性的缺陷预测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311122718.3A CN117112429A (zh) 2023-08-31 2023-08-31 一种基于跨模块缺陷关联性的缺陷预测方法和系统

Publications (1)

Publication Number Publication Date
CN117112429A true CN117112429A (zh) 2023-11-24

Family

ID=88807355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311122718.3A Pending CN117112429A (zh) 2023-08-31 2023-08-31 一种基于跨模块缺陷关联性的缺陷预测方法和系统

Country Status (1)

Country Link
CN (1) CN117112429A (zh)

Similar Documents

Publication Publication Date Title
D'Ambros et al. On the relationship between change coupling and software defects
Al Dallal Object-oriented class maintainability prediction using internal quality attributes
Theisen et al. Approximating attack surfaces with stack traces
US20190073293A1 (en) System and method for automated software testing based on Machine Learning (ML)
US7451051B2 (en) Method and system to develop a process improvement methodology
CN116450399B (zh) 微服务系统故障诊断及根因定位方法
Theisen et al. Risk-based attack surface approximation: how much data is enough?
CN111860698A (zh) 确定学习模型的稳定性的方法和装置
CN117034143B (zh) 一种基于机器学习的分布式系统故障诊断方法及装置
Yang et al. Vuldigger: A just-in-time and cost-aware tool for digging vulnerability-contributing changes
CN111752833B (zh) 一种软件质量体系准出方法、装置、服务器及存储介质
CN116823063A (zh) 数据集质量评估模型的有效性测试方法、装置及设备
Hryszko et al. Cost effectiveness of software defect prediction in an industrial project
Yan et al. Revisiting the correlation between alerts and software defects: A case study on myfaces, camel, and cxf
CN117112429A (zh) 一种基于跨模块缺陷关联性的缺陷预测方法和系统
CN116627804A (zh) 基于人工智能的测试方法、系统、电子设备及存储介质
CN115587333A (zh) 一种基于多分类模型的失效分析故障点预测方法及系统
CN115659271A (zh) 传感器异常检测方法、模型训练方法、系统、设备及介质
CN115981911A (zh) 内存故障的预测方法、电子设备和计算机可读存储介质
CN113791980A (zh) 测试用例的转化分析方法、装置、设备及存储介质
CN116991149B (zh) 一种费控产品检验方法、装置、电子设备及存储介质
CN112445632A (zh) 基于故障数据建模的hpc可靠性评估方法
CN117319355B (zh) 一种检测数字称重仪CANopen编寻址的方法及系统
Vetro et al. Investigating automatic static analysis results to identify quality problems: An inductive study
CN114386743A (zh) 一种resar性能工程的性能分析方法及系统

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