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

技术编号:39567763 阅读:6 留言:0更新日期:2023-12-03 19:18
本发明专利技术公开了一种基于跨模块缺陷关联性的缺陷预测方法和系统,属于软件缺陷诊断技术领域,方法包括:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;获取模块的度量数据,构建数据集;基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;对测试集中的关键重复实例进行过滤;通过训练集对缺陷预测模型进行训练;将测试集输入至缺陷预测模型,对比缺陷预测模型的预测结果与真实结果之间的差异,评估缺陷预测模型

【技术实现步骤摘要】
一种基于跨模块缺陷关联性的缺陷预测方法和系统


[0001]本专利技术属于软件缺陷诊断
,具体涉及一种基于跨模块缺陷关联性的缺陷预测方法和系统


技术介绍

[0002]在软件开发过程中,缺陷是一个常见的问题,它们可能导致程序出现错误

崩溃或功能异常,严重影响软件产品的质量和可靠性

因此,及时发现和解决缺陷对于确保软件产品的高质量至关重要

[0003]为了提高软件质量并减少缺陷,研究者们提出了许多缺陷预测技术

缺陷预测旨在通过分析历史缺陷数据和软件模块的特征,来预测新的软件模块是否容易出现缺陷

这样的预测有助于开发人员优先处理高风险的模块,从而更高效地进行测试和修复工作

[0004]然而,在过去的研究中,缺陷预测模型通常依赖于来自单个模块的特征,忽略同一个缺陷涉及的多个模块之间的关联性

当一个缺陷跨越多个模块时,所有涉及的模块通常都被标记为有缺陷,而不考虑它们之间的潜在关系

[0005]进一步地,忽视缺陷内的关联,将导致模型也会忽略缺陷在模块内部或跨不同模块之间的传播潜力

这种对缺陷传播的不完整理解,导致模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,进而可能阻碍对缺陷的识别

尤其在复杂的软件系统中,缺陷可能是由于不同模块之间的相互作用和依赖性而产生的

例如,一个模块的更改可能会引入一个缺陷,影响另一个模块的行为或性能

现有的缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失


技术实现思路

[0006]为了解决现有技术中缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失的技术问题,本专利技术提供一种基于跨模块缺陷关联性的缺陷预测方法和系统

[0007]第一方面
[0008]本专利技术提供了一种基于跨模块缺陷关联性的缺陷预测方法,包括:
[0009]S101
:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;
[0010]S102
:获取模块的度量数据,构建数据集;
[0011]S103
:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;
[0012]S104
:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;
[0013]S105
:对测试集中的关键重复实例进行过滤;
[0014]S106
:通过训练集对缺陷预测模型进行训练;
[0015]S107
:将测试集输入至所述缺陷预测模型,对比所述缺陷预测模型的预测结果与真实结果之间的差异,评估所述缺陷预测模型

[0016]第二方面
[0017]本专利技术提供了一种基于跨模块缺陷关联性的缺陷预测系统,用于执行第一方面中的基于跨模块缺陷关联性的缺陷预测方法

[0018]与现有技术相比,本专利技术至少具有以下有益技术效果:
[0019]在本专利技术中,利用跨模块缺陷关联性构建缺陷预测模型,通过更全面地考虑缺陷的跨模块特性,可以更好地理解缺陷传播的过程和机制,考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性,降低缺陷损失

附图说明
[0021]下面将以明确易懂的方式,结合附图说明优选实施方式,对本专利技术的上述特性

技术特征

优点及其实现方式予以进一步说明

[0022]图1是本专利技术提供的一种基于跨模块缺陷关联性的缺陷预测方法的流程示意图;
[0023]图2是本专利技术提供的一种基于跨模块缺陷关联性的缺陷预测方法的结构示意图

具体实施方式
[0024]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对照附图说明本专利技术的具体实施方式

显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式

[0025]为使图面简洁,各图中只示意性地表示出了与专利技术相关的部分,它们并不代表其作为产品的实际结构

[0026]还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和
/
或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合

[0027]另外,在本专利技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性

[0028]实施例1[0029]在一个实施例中,参考说明书附图1,示出了本专利技术提供的基于跨模块缺陷关联性的缺陷预测方法的流程示意图

参考说明书附图2,示出了本专利技术提供的一种基于跨模块缺陷关联性的缺陷预测方法的结构示意图

[0030]本专利技术提供的一种基于跨模块缺陷关联性的缺陷预测方法,包括:
[0031]S101
:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系

[0032]在一种可能的实施方式中,
S101
具体包括子步骤
S1011

S1014

[0033]S1011
:获取开发过程数据

[0034]其中,开发过程数据可以指在软件开发过程中产生的各种记录

信息和指标,这些数据可以反映出软件的开发

维护和演化的不同方面

[0035]其中,开发过程数据包括版本控制系统中的代码提交记录

缺陷报告

代码审查信息等

[0036]S1012
:识别开发过程数据中有关缺陷修复的变更以及缺陷修复时所同时修改的模块

[0037]需要说明的是,与缺陷修复相关的代码变更,以及在缺陷修复过程中同时被修改的模块,这些模块往往可是视为与缺陷具有相关性

[0038]S1013
:将对同一个缺陷进行修复时所同时修改的模块组成关联组

[0039]需要说明的是,将对同一个缺陷进行修复时所同时修改的模块组成关联组,有助于分析跨模块的缺陷关联性

[0040]S1014
:生成缺陷与模块之间的映射关系:
[0041]M
=本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于跨模块缺陷关联性的缺陷预测方法,其特征在于,包括:
S101
:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;
S102
:获取模块的度量数据,构建数据集;
S103
:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;
S104
:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;
S105
:对测试集中的关键重复实例进行过滤;
S106
:通过训练集对缺陷预测模型进行训练;
S107
:将测试集输入至所述缺陷预测模型,对比所述缺陷预测模型的预测结果与真实结果之间的差异,评估所述缺陷预测模型
。2.
根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述
S101
具体包括:
S1011
:获取开发过程数据;
S1012
:识别所述开发过程数据中有关缺陷修复的变更以及缺陷修复时所同时修改的模块;
S1013
:将对同一个缺陷进行修复时所同时修改的模块组成关联组;
S1014
:生成缺陷与模块之间的映射关系:
M

{(d
i
,M
i
)}M
i

{m
ij
}
其中,
M
表示映射关系,
d
i
表示第
i
个缺陷,
M
i
表示与第
i
个缺陷具有关联关系的关联组,
m
ij
表示与第
i
个缺陷具有关联关系的第
j
个模块
。3.
根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述
S102
具体包括:
S1021
:选取多个度量指标,量化各个样本的特征,得到各个样本的样本特征;

【专利技术属性】
技术研发人员:赵泱泱黎乘霖
申请(专利权)人:浙江理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1