检测代码缺陷的方法、电子设备和计算机程序产品技术

技术编号:37404554 阅读:31 留言:0更新日期:2023-04-30 09:31
本公开的实施例提供了一种检测代码缺陷的方法、电子设备和计算机程序产品。在此描述的方法包括基于在软件产品的测试期间被报告的缺陷,确定与缺陷关联的日志信息。方法还包括基于日志信息,确定缺陷的性质。方法还包括响应于性质指示缺陷由软件产品的代码引起并且需要被修复,基于性质、日志信息和缺陷被报告时生成的内存镜像文件确定软件产品的代码中引起缺陷的目标代码。利用本申请的方案,可以基于缺陷的性质来采取对缺陷的不同分析策略,从而提高检测代码缺陷的效率。从而提高检测代码缺陷的效率。从而提高检测代码缺陷的效率。

【技术实现步骤摘要】
检测代码缺陷的方法、电子设备和计算机程序产品


[0001]本公开的实施例涉及数据处理领域,并且具体地,涉及检测代码缺陷的方法、电子设备和计算机程序产品。

技术介绍

[0002]在开发软件产品时,需要对软件产品进行测试以检测软件产品中是否存在代码缺陷。通常,可以在测试环境中利用测试代码来测试软件产品。测试人员和开发人员可以基于在测试时被报告的缺陷来检测软件产品中的代码缺陷并对代码缺陷进行修复。然而,在测试时被报告的缺陷可能是由于多种原因导致的,对缺陷的分析需要消耗大量的人力资源。因此,需要能够高效地检测软件产品中的缺陷的方法。

技术实现思路

[0003]在本公开的第一方面,提供了一种检测代码缺陷的方法。该方法包括基于在软件产品的测试期间被报告的缺陷,确定与缺陷关联的日志信息。方法还包括基于日志信息,确定缺陷的性质。方法还包括响应于性质指示缺陷由软件产品的代码引起并且需要被修复,基于性质、日志信息和缺陷被报告时生成的内存镜像文件确定软件产品的代码中引起缺陷的目标代码。
[0004]在第一方面的一些实施例中,性质包括指示以下至少一项的至少一个性质:缺陷是否由软件产品的代码引起;缺陷是否由用于测试软件产品的测试代码引起;缺陷是否由与软件产品的代码和测试代码无关的环境因素引起,环境因素包括网络质量、供电稳定性、存储装置质量;以及缺陷是否需要被修复。
[0005]在第一方面的一些实施例中,确定与缺陷关联的日志信息包括确定以下至少一项:基于对缺陷的重现而产生的日志文件,以及用于描述缺陷的缺陷描述文件
[0006]在第一方面的一些实施例中,确定缺陷的性质包括:利用一组分类模型来确定缺陷的性质,一组分类模型中的分类模型针对性质中的每个性质分别被训练。
[0007]在第一方面的一些实施例中,分类模型基于经标注的训练数据被训练,训练数据包括从缺陷追踪工具收集的具有经标注的性质的多个缺陷以及与多个缺陷关联的多个日志信息。
[0008]在第一方面的一些实施例中,确定软件产品的代码中引起缺陷的目标代码包括:解析内存镜像文件以确定与缺陷关联的内存状态信息;以及基于性质、日志信息和内存状态信息确定目标代码。
[0009]在第一方面的一些实施例中,确定软件产品的代码中引起缺陷的目标代码包括:利用机器学习模型来确定目标代码,机器学习模型利用经标注的训练数据被训练,训练数据包括从缺陷追踪工具收集的被测试的源代码文件和源代码文件中引起缺陷的目标源代码文件。
[0010]在本公开的第二方面,提供了一种电子设备。该电子设备包括处理器以及与处理
器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作。动作包括基于在软件产品的测试期间被报告的缺陷,确定与缺陷关联的日志信息。动作还包括基于日志信息,确定缺陷的性质。动作还包括响应于性质指示缺陷由软件产品的代码引起并且需要被修复,基于性质、日志信息和缺陷被报告时生成的内存镜像文件确定软件产品的代码中引起缺陷的目标代码。
[0011]在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
[0012]在本公开的实施例中,利用本申请的方案,可以基于缺陷的性质来采取不同的分析策略,从而提高检测代码缺陷的效率。
[0013]提供
技术实现思路
部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的实施例的关键特征或主要特征,也无意限制本公开的范围。
附图说明
[0014]通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的实施例的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开的示例性实施例中,相同的参考标号通常代表相同部件。
[0015]图1示出了本公开的实施例能够在其中被实现的环境的示意图;
[0016]图2示出了根据本公开的一些实施例的检测代码缺陷的示例方法的流程图;
[0017]图3示出了根据本公开的一些实施例的用于检测代码缺陷的装置的示意图;以及
[0018]图4示出了可以用来实施本公开的实施例的示例计算设备的框图。
具体实施方式
[0019]下面将参考附图中示出的若干示例实施例来描述本公开的实施例的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
[0020]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一些实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0021]如上文所提及的,需要能够高效地检测软件产品中的缺陷的方法。通常,可以利用缺陷追踪工具(例如,JIRA、AA、Bugzilla等)来收集缺陷以及管理测试人员和开发人员对缺陷的分析和修复。然而,这些缺陷追踪工具不能代替人工来分析所报告的缺陷,因此难以有效地辅助测试人员和开发人员来检测、定位和修复软件产品中的缺陷。
[0022]本公开的实施例提出了一种检测代码缺陷的方案。在该方案中,基于在软件产品的测试期间被报告的缺陷,确定与缺陷关联的日志信息。方案还包括基于日志信息,确定缺陷的性质。方案还包括响应于性质指示缺陷由软件产品的代码引起并且需要被修复,基于
性质、日志信息和缺陷被报告时生成的内存镜像文件确定软件产品的代码中引起缺陷的目标代码。
[0023]以此方式,通过先确定缺陷的性质再基于缺陷的性质来进一步确定软件产品中的缺陷,可以分步骤地检测缺陷,从而提高分析和检测缺陷的效率。例如,对于具有指示缺陷不需要被修复的性质的缺陷,可以无需对其进行进一步分析。这样,可以节约大量资源。
[0024]以下参考图1至图4来说明本公开的基本原理和若干示例实施例。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
[0025]图1示出了本公开的实施例能够在其中被实现的环境100。如图1所示,环境100包括测试模块110、性质确定模块120和目标代码确定模块130。测试模块110可以在测试环境中利用测试代码对软件产品105进行测试。例如,测试模块110可以利用测试用例来检测软件产品105的代码。
[0026]在测试期间,测试模块110可以报告缺陷并且输出与缺陷关联的日志信息115。测试人员可以通过分析日志信息115来分析被报告的缺陷。日志信息115可以包括与缺陷关联的日志文件。测试模块110可以通过对缺陷进行一次或多次重现来产生与该缺陷关本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检测代码缺陷的方法,包括:基于在软件产品的测试期间被报告的缺陷,确定与所述缺陷关联的日志信息;基于所述日志信息,确定所述缺陷的性质;以及响应于所述性质指示所述缺陷由所述软件产品的代码引起并且需要被修复,基于所述性质、所述日志信息和所述缺陷被报告时生成的内存镜像文件确定所述软件产品的代码中引起所述缺陷的目标代码。2.根据权利要求1所述的方法,其中所述性质包括指示以下至少一项的至少一个性质:所述缺陷是否由所述软件产品的代码引起;所述缺陷是否由用于测试所述软件产品的测试代码引起;所述缺陷是否由与所述软件产品的代码和所述测试代码无关的环境因素引起,所述环境因素包括网络质量、供电稳定性、存储装置质量;以及所述缺陷是否需要被修复。3.根据权利要求1所述的方法,其中确定与所述缺陷关联的日志信息包括确定以下至少一项:基于对所述缺陷的重现而产生的日志文件,以及用于描述所述缺陷的缺陷描述文件。4.根据权利要求1所述的方法,其中确定所述缺陷的性质包括:利用一组分类模型来确定所述缺陷的性质,所述一组分类模型中的分类模型针对所述性质中的每个性质分别被训练。5.根据权利要求4所述的方法,其中所述分类模型基于经标注的训练数据被训练,所述训练数据包括从缺陷追踪工具收集的具有经标注的性质的多个缺陷以及与所述多个缺陷关联的多个日志信息。6.根据权利要求1所述的方法,其中确定所述软件产品的代码中引起所述缺陷的目标代码包括:解析所述内存镜像文件以确定与所述缺陷关联的内存状态信息;以及基于所述性质、所述日志信息和所述内存状态信息确定所述目标代码。7.根据权利要求1所述的方法,其中确定所述软件产品的代码中引起所述缺陷的目标代码包括:利用机器学习模型来确定所述目标代码,所述机器学习模型利用经标注的训练数据被训练,所述训练数据包括从缺陷追踪工具收集的被测试的源代码文件和所述源代码文件中引起缺陷的目标源代码文件。8.一种电子设备,包括:处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:基于在软件产品...

【专利技术属性】
技术研发人员:倪嘉呈盛荣单轲
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:

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

1