本发明属于软件缺陷诊断,具体涉及一种基于跨模块缺陷关联性的缺陷预测方法和系统。
背景技术:
1、在软件开发过程中,缺陷是一个常见的问题,它们可能导致程序出现错误、崩溃或功能异常,严重影响软件产品的质量和可靠性。因此,及时发现和解决缺陷对于确保软件产品的高质量至关重要。
2、为了提高软件质量并减少缺陷,研究者们提出了许多缺陷预测技术。缺陷预测旨在通过分析历史缺陷数据和软件模块的特征,来预测新的软件模块是否容易出现缺陷。这样的预测有助于开发人员优先处理高风险的模块,从而更高效地进行测试和修复工作。
3、然而,在过去的研究中,缺陷预测模型通常依赖于来自单个模块的特征,忽略同一个缺陷涉及的多个模块之间的关联性。当一个缺陷跨越多个模块时,所有涉及的模块通常都被标记为有缺陷,而不考虑它们之间的潜在关系。
4、进一步地,忽视缺陷内的关联,将导致模型也会忽略缺陷在模块内部或跨不同模块之间的传播潜力。这种对缺陷传播的不完整理解,导致模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,进而可能阻碍对缺陷的识别。尤其在复杂的软件系统中,缺陷可能是由于不同模块之间的相互作用和依赖性而产生的。例如,一个模块的更改可能会引入一个缺陷,影响另一个模块的行为或性能。现有的缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失。
技术实现思路
1、为了解决现有技术中缺陷预测模型未能考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,导致缺陷预测准确性低,甚至会产生误导,导致更大的损失的技术问题,本发明提供一种基于跨模块缺陷关联性的缺陷预测方法和系统。
2、第一方面
3、本发明提供了一种基于跨模块缺陷关联性的缺陷预测方法,包括:
4、s101:获取缺陷数据,标记缺陷跨模块信息,构建关联组,生成缺陷与模块之间的映射关系;
5、s102:获取模块的度量数据,构建数据集;
6、s103:基于缺陷与模块之间的映射关系生成约束,对数据集进行划分,划分出训练集和测试集;
7、s104:在训练集中,将同一个关联组中的模块合并为新的实例,对数据集进行扩增;
8、s105:对测试集中的关键重复实例进行过滤;
9、s106:通过训练集对缺陷预测模型进行训练;
10、s107:将测试集输入至所述缺陷预测模型,对比所述缺陷预测模型的预测结果与真实结果之间的差异,评估所述缺陷预测模型。
11、第二方面
12、本发明提供了一种基于跨模块缺陷关联性的缺陷预测系统,用于执行第一方面中的基于跨模块缺陷关联性的缺陷预测方法。
13、与现有技术相比,本发明至少具有以下有益技术效果:
14、在本发明中,利用跨模块缺陷关联性构建缺陷预测模型,通过更全面地考虑缺陷的跨模块特性,可以更好地理解缺陷传播的过程和机制,考虑缺陷在模块内部和跨模块之间产生的连锁效应和广泛影响,提升缺陷预测准确性,降低缺陷损失。
1.一种基于跨模块缺陷关联性的缺陷预测方法,其特征在于,包括:
2.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s101具体包括:
3.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s102具体包括:
4.根据权利要求3所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述度量指标包括:代码复杂性、代码覆盖率、代码行数和函数调用关系。
5.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s103具体包括:
6.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s104具体包括:
7.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s104具体包括:
8.根据权利要求1所述的基于跨模块缺陷关联性的缺陷预测方法,其特征在于,所述s105具体为:
9.一种基于跨模块缺陷关联性的缺陷预测系统,其特征在于,用于执行权利要求1至8任一项所述的基于跨模块缺陷关联性的缺陷预测方法。