一种软件测试方法、装置以及电子设备制造方法及图纸

技术编号:34917239 阅读:20 留言:0更新日期:2022-09-15 07:07
本申请实施例公开了一种软件测试方法、装置以及电子设备,该方法包括:确定待测软件中每个软件模块各自的模块复杂度,以及每个软件模块各自的参量数目;基于每个软件模块的模块复杂度和参量数目,确定每个软件模块各自的缺陷概率,其中,缺陷概率用于表征软件模块产生缺陷的概率;基于每个软件模块的缺陷概率,确定目标测试模块;对目标测试模块进行测试,用以提高软件测试的结果的准确性。以提高软件测试的结果的准确性。以提高软件测试的结果的准确性。

【技术实现步骤摘要】
一种软件测试方法、装置以及电子设备


[0001]本专利技术涉及计算机领域,特别是涉及一种软件测试方法、装置以及电子设备。

技术介绍

[0002]随着计算机技术的普及和发展,软件逐渐受到人们的关注。对于软件的测试,特别是基于软件缺陷分析的软件测试得到了广泛地应用。软件缺陷,指的是在对软件进行开发或维护过程中所存在的各种问题,也指软件所需要实现的某种功能的失效或违背。基于软件缺陷分析的软件测试指的是基于缺陷分析得到的结果展开的测试。
[0003]然而,目前基于软件缺陷分析的软件测试,通常仅是基于缺陷本身的属性进行分析和研究,根据分析和研究的结果展开软件测试,导致软件测试的结果不准确。

技术实现思路

[0004]有鉴于此,本申请提供一种软件测试方法、装置以及电子设备,用以提高软件测试的结果的准确性。
[0005]第一方面,本申请提供一种软件测试方法,该方法包括:
[0006]确定待测软件中每个软件模块各自的模块复杂度,以及每个软件模块各自的参量数目;
[0007]基于每个软件模块的模块复杂度和参量数目,确定每个软件模块各自的缺陷概率,其中,缺陷概率用于表征软件模块产生缺陷的概率;
[0008]基于每个软件模块的缺陷概率,确定目标测试模块;
[0009]对目标测试模块进行测试。
[0010]在一种可能的实现方式中,基于每个软件模块的缺陷概率,确定目标测试模块,具体包括:
[0011]确定每个软件模块的功能贡献度,其中,功能贡献度用于表征软件模块对于待测软件的重要程度;
[0012]基于每个软件模块的缺陷概率以及功能贡献度,确定目标测试模块。
[0013]在一种可能的实现方式中,基于每个软件模块的模块复杂度和参量数目,确定每个软件模块各自的缺陷概率,其中,缺陷概率用于表征软件模块产生缺陷的概率,具体包括:
[0014]对每个软件模块的模块复杂度和参量数目进行加权求和,得到每个软件模块各自的缺陷概率。
[0015]在一种可能的实现方式中,对每个软件模块的模块复杂度和参量数目进行加权求和,得到每个软件模块各自的缺陷概率,具体包括:
[0016]对于每个软件模块,确定软件模块的模块复杂度的权重和参量数目的权重,并利用软件模块的模块复杂度、参量数目、模块复杂度的权重,以及参量数目权重,确定软件模块的缺陷概率。
[0017]在一种可能的实现方式中,基于每个软件模块的缺陷概率,确定目标测试模块,具体包括:
[0018]当至少一个软件模块的缺陷概率大于预设的概率阈值时,确定至少一个软件模块为目标测试模块。
[0019]在一种可能的实现方式中,基于每个软件模块的缺陷概率以及功能贡献度,确定目标测试模块,具体包括:
[0020]基于每个软件模块的缺陷概率以及功能贡献度,确定每个软件模块的测试符合度;
[0021]当至少一个软件模块的测试符合度大于预设的符合度阈值时,确定至少一个软件模块为目标测试模块。
[0022]第二方面,本申请提供一种软件测试装置,该装置包括:
[0023]参数确定单元,用于确定待测软件中每个软件模块各自的模块复杂度,以及每个软件模块各自的参量数目;
[0024]概率确定单元,用于基于每个软件模块的模块复杂度和参量数目,确定每个软件模块各自的缺陷概率,其中,缺陷概率用于表征软件模块产生缺陷的概率;
[0025]目标确定单元,用于基于每个软件模块的缺陷概率,确定目标测试模块;
[0026]模块测试单元,用于对目标测试模块进行测试。
[0027]在一种可能的实现方式中,目标确定单元具体用于:
[0028]确定每个软件模块的功能贡献度,其中,功能贡献度用于表征软件模块对于待测软件的重要程度;
[0029]基于每个软件模块的缺陷概率以及功能贡献度,确定目标测试模块。
[0030]第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序用于执行上述任一的方法。
[0031]第四方面,本申请提供一种电子设备,该电子设备包括处理器和存储器,其中,存储器存储有代码,处理器用于调用存储器中存储的代码,以执行上述任一的方法。
附图说明
[0032]图1为本申请实施例提供的软件测试方法的流程图;
[0033]图2为本申请实施例提供的软件测试装置的结构示意图;
[0034]图3为本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0035]为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的一种软件测试方法、装置以及电子设备进行说明。
[0036]虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。基于本申请中的实施例,本领域技术人员在没有作出创造性贡献前提下所获得的其他实施例,都属于本申请的保护范围。
[0037]在本申请的权利要求书和说明书以及说明书附图中,术语“包括”和“具有”以及它们的任何变形,目的在于覆盖不排他的包含。
[0038]目前基于软件缺陷分析的软件测试,通常仅是基于缺陷本身的属性进行分析和研究,根据分析和研究的结果展开软件测试,导致软件测试的结果不准确。
[0039]基本软件缺陷分析通常指的是基于缺陷属性的一些常规分析,主要分为两种:一种为基于单一缺陷属性分析,只根据某个缺陷属性对缺陷进行分析,例如基于发现人员缺陷分析、缺陷类型分布分析、缺陷发现阶段分析、缺陷收敛趋势分析等;另一种为复杂缺陷分析,通过分析软件缺陷几种属性之间的联系,更深一层次评估软件质量,例如移除率分析、缺陷损耗分析以及缺陷状态分析等。
[0040]目前软件缺陷分析通常是基于缺陷基本属性的一些缺陷分析。例如从缺陷发现阶段、缺陷类型等角度来进行缺陷分析。上述方式虽然可以衡量缺陷数,或者用来评估软件质量表现,却忽略了缺陷本身与软件产品内部模块之间的联系。
[0041]在实际开发中,软件缺陷通常是存在二八定律,也即百分之八十的缺陷来自百分之二十的代码或模块中。因此,如果能够确定产生大量缺陷的模块,并对其进行分析改进,则可以提高软件开发以及测试的效率,从而使软件产品质量得到很大提高。
[0042]软件缺陷与模块的复杂度有着密切关系,复杂度高的模块有着更多缺陷的可能,而修复这些缺陷需要更多的时间。因此缺陷的产生与代码模块属性之间有着密切的联系,可以从多维角度(缺陷基本属性、缺陷所处状态及缺陷关联模块)进行软件缺陷分析,例如缺陷数与模块复杂度、模块参数以及模块扇入/扇出数的关系分析。
[0043]在实际软件开发过程中,申请人发现缺陷不仅有其自身常规的属性,而且与其所在特定的模块有着密切的联系,因此本申请给出了基于缺陷与模块属性的缺陷分析方法。具体地,根据缺陷自身属性以及其所在模块属性进行缺陷分析,不但可以进行基于缺陷属性的基本缺陷分析,还可以结合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件测试方法,其特征在于,所述方法包括:确定待测软件中每个软件模块各自的模块复杂度,以及每个软件模块各自的参量数目;基于所述每个软件模块的模块复杂度和所述参量数目,确定所述每个软件模块各自的缺陷概率,其中,所述缺陷概率用于表征软件模块产生缺陷的概率;基于所述每个软件模块的缺陷概率,确定目标测试模块;对所述目标测试模块进行测试。2.根据权利要求1所述的方法,其特征在于,所述基于所述每个软件模块的缺陷概率,确定目标测试模块,具体包括:确定所述每个软件模块的功能贡献度,其中,所述功能贡献度用于表征软件模块对于所述待测软件的重要程度;基于所述每个软件模块的缺陷概率以及功能贡献度,确定所述目标测试模块。3.根据权利要求1所述的方法,其特征在于,所述基于所述每个软件模块的模块复杂度和所述参量数目,确定所述每个软件模块各自的缺陷概率,其中,所述缺陷概率用于表征软件模块产生缺陷的概率,具体包括:对所述每个软件模块的模块复杂度和参量数目进行加权求和,得到所述每个软件模块各自的缺陷概率。4.根据权利要求3所述的方法,其特征在于,所述对所述每个软件模块的模块复杂度和参量数目进行加权求和,得到所述每个软件模块各自的缺陷概率,具体包括:对于每个软件模块,确定所述软件模块的模块复杂度的权重和参量数目的权重,并利用所述软件模块的所述模块复杂度、所述参量数目、所述模块复杂度的权重,以及所述参量数目权重,确定所述软件模块的缺陷概率。5.根据权利要求1所述的方法,其特征在于,所述基于所述每个软件模块的缺陷概率,确定目标测试模块,具体包括:当至少一个软件模块的所述...

【专利技术属性】
技术研发人员:姚璇
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

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

1