CN115982058B - 一种计算流体力学代码错误定位方法、装置、设备及介质 - Google Patents

一种计算流体力学代码错误定位方法、装置、设备及介质 Download PDF

Info

Publication number
CN115982058B
CN115982058B CN202310268753.XA CN202310268753A CN115982058B CN 115982058 B CN115982058 B CN 115982058B CN 202310268753 A CN202310268753 A CN 202310268753A CN 115982058 B CN115982058 B CN 115982058B
Authority
CN
China
Prior art keywords
code
fluid dynamics
computational fluid
target
calculation
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.)
Active
Application number
CN202310268753.XA
Other languages
English (en)
Other versions
CN115982058A (zh
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.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
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 Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202310268753.XA priority Critical patent/CN115982058B/zh
Publication of CN115982058A publication Critical patent/CN115982058A/zh
Application granted granted Critical
Publication of CN115982058B publication Critical patent/CN115982058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Testing And Monitoring For Control Systems (AREA)

Abstract

本申请公开了一种计算流体力学代码错误定位方法、装置、设备及介质,涉及计算机技术领域,包括:确定出目标计算流体力学算例;根据各代码生成计算流体力学软件和记录信息,对记录信息进行分析,得到代码块集合,对目标计算流体力学算例进行计算,得到代码覆盖率信息和计算结果;若计算结果异常,则判断历史记录表中是否存在与异常标签相同的历史标签,若不存在,则确定出基准代码覆盖率信息,以确定出差异信息,根据差异信息确定出目标代码块,计算出代码错误率,判断代码错误率是否大于预设阈值,若大于,则将目标代码块作为错误代码块,并确定出位置信息。本申请能提高代码错误定位效率,增加代码错误定位准确性,降低代码错误定位复杂度。

Description

一种计算流体力学代码错误定位方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,特别涉及一种计算流体力学代码错误定位方法、装置、设备及介质。
背景技术
目前,软件的代码错误定位的方法主要包括手工调试方法和自动化代码错误定位方法。其中手工调试方法主要利用集成开发环境中调试工具(Eclipse,visual studio等),通过设置断点,执行程序查看中间结果,再逐步分析程序运行结果来定位错误。目前,手工调试方法,仍然是CFD(Computational Fluid Dynamics,计算流体力学)软件开发人员应用较多的一种方法,这种方法利用集成开发环境中调试工具(Eclipse,visual studio等),通过设置断点,执行程序查看中间结果,再逐步分析程序运行结果来定位错误。由于CFD软件行业领域未找到现有的自动化错误代码定位技术,因此下面对传统IT(InformationTechnology,信息技术)软件行业领域中常用的自动化代码错误定位技术做简要阐述。在传统IT软件行业,目前运用较为广泛的一种软件自动化错误定位方法是基于代码覆盖分析的自动化错误定位方法,这种方法不需要考虑程序实体之间的控制依赖和数据依赖关系,通过运行大量的测试用例,收集程序执行结果成功或者失败的覆盖信息,然后采用统计方法对程序实体(语句、分支、函数和类等)的可疑度进行计算排序,实现定位,基于覆盖分析的错误定位技术包含三个关键步骤:(1)准备测试用例集并确定每条测试用例的测试预言;(2)测试执行。实际运行测试用例,获得程序的执行结果和测试用例运行时的状态信息(代码覆盖信息)(3)可疑度计算排序,错误定位。基于程序的异常会导致测试用例的失败执行的假设,利用测试用例的成功执行和失败执行的差异信息,对程序的行为特性进行分析,设计度量公式计算程序代码的可疑度,再对可疑度进行排序从而实现定位。手工调试方法,缺点开发人员需要非常了解程序的逻辑、结构、功能、语义等,并且具有良好的经验去设置断点。由于在调试程序的过程中,将所有的语句错误的可能性看作是一样的,而不是按照一定的优先级考虑语句检查顺序,开发人员需要从程序入口开始逐条检查每一条执行语句。CFD软件具有代码量多、规模大、代码结构复杂,功能模块多的特点,采用手工调试的方法需要开发者花费大量时间和精力去理清实现逻辑并定位错误代码片段,极大的影响软件的开发进度。基于代码覆盖分析的错误定位方法的优点是计算复杂度低,可自动化程度高。缺点是没有充分分析程序实体间的控制依赖和数据依赖关系,大多数基于覆盖分析的定位方法只是为开发人员提供单独的可疑句排序来指导定位错误,没有考虑程序功能模块与函数之间的对应关系对测试用例的影响,也没有代码更新的历史轨迹信息。目前,由于大型工业CFD软件复杂性高,规模大,且对于大规模并行 CFD 科学计算,传统IT软件测试技术不适用,难以找到适用于CFD行业领域自动化代码错误定位技术,采用基于代码覆盖分析的错误定位方法,仅仅提供单独可疑句排序,开发人员还需要进行遍历程序执行失效相关的文件、查询程序更改的代码,寻找错误相关的函数,整个过程是一个遍历和回溯的过程,并不能实现代码错误的快速定位。
由上可见,如何提高计算流体力学代码错误定位的效率,增加计算流体力学代码错误定位的准确性,降低计算流体力学代码错误定位的复杂度是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种计算流体力学代码错误定位方法、装置、设备及介质,能够提高计算流体力学代码错误定位的效率,增加计算流体力学代码错误定位的准确性,降低计算流体力学代码错误定位的复杂度。其具体方案如下:
第一方面,本申请公开了一种计算流体力学代码错误定位方法,包括:
获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;
获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;
对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
可选的,所述为所述计算流体力学算例添加标签,以得到目标计算流体力学算例,包括:
基于所述计算流体力学算例确定出计算输入信息;
根据所述计算输入信息为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。
可选的,所述利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,包括:
确定出所述计算流体力学软件的版本信息,建立所述版本信息与所述代码块集合之间的映射关系;
利用所述计算流体力学软件和预设的代码覆盖率工具对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,建立所述目标计算流体力学算例进行计算和所述代码覆盖率信息之间的映射关系。
可选的,所述若所述计算结果为异常之后,还包括:
获取所有的所述计算结果为异常的所述目标计算流体力学算例;
按照标签分类方法对所述目标计算流体力学算例进行分类,以得到各类所述目标计算流体力学算例;其中,所述标签分类方法为按照所述目标计算流体力学算例中的标签对所述目标计算流体力学算例进行统计分类。
可选的,所述利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息,包括:
利用预设的基准计算流体力学软件和代码覆盖率工具运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
建立所述基准代码覆盖率信息和所述计算流体力学算例之间的映射关系。
可选的,所述根据所述差异信息从所述代码块集合中确定出各目标代码块之后,还包括:
获取所有的所述目标代码块,并建立与所述差异信息相对应的所述目标计算流体力学算例中的标签和所述目标代码块之间的映射关系;
基于所述映射关系对所述历史记录表进行更新,以得到更新后的所述历史记录表。
可选的,所述计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,包括:
对所述计算结果和所述目标代码块进行分析并计算,以得到各代码错误率;
根据各所述代码错误率对各所述目标代码块进行排序,确定出预设阈值,并判断各所述代码错误率是否大于所述预设阈值。
第二方面,本申请公开了一种计算流体力学代码错误定位装置,包括:
计算流体力学算例获取模块,用于获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;
计算模块,用于获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;
分析模块,用于对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
错误代码块位置信息确定模块,用于基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的计算流体力学代码错误定位方法。
第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的计算流体力学代码错误定位方法的步骤。
可见,本申请提供了一种计算流体力学代码错误定位方法,包括获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。本申请通过解析CFD软件的参数输入,建立测试算例对应标签,在不断查找错误代码块的过程中,形成了算例标签与函数之间的历史经验表(该表记录的是标签及其具备该标签的算例在运行时代码覆盖信息表里共同经过的函数集合),查找该共同标签对应的函数表,如果更改的函数在该函数表里就可迅速定位,减少了代码审查量,提高了基于代码覆盖分析方法错误代码定位效果,极大的减少了时间和人力成本,促进了软件的研发进度,并且是结合Git记录信息和代码覆盖工具得到新版本解算器与基准版本解算器之间的代码覆盖差异信息来实现,根据Git对CFD软件进行版本控制中的Git更改的记录信息,针对每个更改的代码块,找到代码覆盖差异信息包含该块的测试算例集,给出算例异常率,即为代码块的异常率,可迅速找到更改的代码及其源文件,开发人员不需要遍历程序执行失效相关的文件、查询程序更改的代码,从而实现错误代码自动化快速定位。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种计算流体力学代码错误定位方法流程图;
图2为本申请公开的一种版本信息与代码块集合的映射关系示例图;
图3为本申请公开的一种历史记录表示例图;
图4为本申请公开的一种计算流体力学代码错误定位方法流程图;
图5为本申请公开的一种代码错误定位示例图;
图6为本申请公开的一种计算流体力学代码错误定位方法具体流程图;
图7为本申请公开的一种计算流体力学代码错误定位装置结构示意图;
图8为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,软件的代码错误定位的方法主要包括手工调试方法和自动化代码错误定位方法。其中手工调试方法主要利用集成开发环境中调试工具(Eclipse,visual studio等),通过设置断点,执行程序查看中间结果,再逐步分析程序运行结果来定位错误。目前,手工调试方法,仍然是CFD(Computational Fluid Dynamics,计算流体力学)软件开发人员应用较多的一种方法,这种方法利用集成开发环境中调试工具(Eclipse,visual studio等),通过设置断点,执行程序查看中间结果,再逐步分析程序运行结果来定位错误。由于CFD软件行业领域未找到现有的自动化错误代码定位技术,因此下面对传统IT(InformationTechnology,信息技术)软件行业领域中常用的自动化代码错误定位技术做简要阐述。在传统IT软件行业,目前运用较为广泛的一种软件自动化错误定位方法是基于代码覆盖分析的自动化错误定位方法,这种方法不需要考虑程序实体之间的控制依赖和数据依赖关系,通过运行大量的测试用例,收集程序执行结果成功或者失败的覆盖信息,然后采用统计方法对程序实体(语句、分支、函数和类等)的可疑度进行计算排序,实现定位,基于覆盖分析的错误定位技术包含三个关键步骤:(1)准备测试用例集并确定每条测试用例的测试预言;(2)测试执行。实际运行测试用例,获得程序的执行结果和测试用例运行时的状态信息(代码覆盖信息)(3)可疑度计算排序,错误定位。基于程序的异常会导致测试用例的失败执行的假设,利用测试用例的成功执行和失败执行的差异信息,对程序的行为特性进行分析,设计度量公式计算程序代码的可疑度,再对可疑度进行排序从而实现定位。手工调试方法,缺点开发人员需要非常了解程序的逻辑、结构、功能、语义等,并且具有良好的经验去设置断点。由于在调试程序的过程中,将所有的语句错误的可能性看作是一样的,而不是按照一定的优先级考虑语句检查顺序,开发人员需要从程序入口开始逐条检查每一条执行语句。CFD软件具有代码量多、规模大、代码结构复杂,功能模块多的特点,采用手工调试的方法需要开发者花费大量时间和精力去理清实现逻辑并定位错误代码片段,极大的影响软件的开发进度。基于代码覆盖分析的错误定位方法的优点是计算复杂度低,可自动化程度高。缺点是没有充分分析程序实体间的控制依赖和数据依赖关系,大多数基于覆盖分析的定位方法只是为开发人员提供单独的可疑句排序来指导定位错误,没有考虑程序功能模块与函数之间的对应关系对测试用例的影响,也没有代码更新的历史轨迹信息。目前,由于大型工业CFD软件复杂性高,规模大,且对于大规模并行 CFD 科学计算,传统IT软件测试技术不适用,难以找到适用于CFD行业领域自动化代码错误定位技术,采用基于代码覆盖分析的错误定位方法,仅仅提供单独可疑句排序,开发人员还需要进行遍历程序执行失效相关的文件、查询程序更改的代码,寻找错误相关的函数,整个过程是一个遍历和回溯的过程,并不能实现代码错误的快速定位。由上可见,如何提高计算流体力学代码错误定位的效率,增加计算流体力学代码错误定位的准确性,降低计算流体力学代码错误定位的复杂度是本领域有待解决的问题。
参见图1所示,本发明实施例公开了一种计算流体力学代码错误定位方法,具体可以包括:
步骤S11:获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。
本实施例中,在获取计算流体力学算例之后,基于所述计算流体力学算例确定出计算输入信息,然后根据所述计算输入信息为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。也就是说,根据CFD软件计算的特点,当前主流的CFD软件通常采用参数文件作为输入,首先通过解析参数文件里的每个参数建立相应的标签。如二维/三维、串行/并行、结构/非结构、层流/湍流、定常/非定常、SA/SST、单重/二重/三重/四重等,获取CFD算例、并添加到CFD算例库,对每个算例进行标签的标定。通过对每个算例的参数文件进行解析,可以获得相应算例的计算输入信息,根据这些计算输入信息可以对每个算例贴上相应标签。
步骤S12:获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果。
本实施例中,在得到包含各所述代码的代码块集合之后,确定出所述计算流体力学软件的版本信息,建立所述版本信息与所述代码块集合之间的映射关系,然后利用所述计算流体力学软件和预设的代码覆盖率工具对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,建立所述目标计算流体力学算例进行计算和所述代码覆盖率信息之间的映射关系。也就是说,获取CFD软件代码之后,代码基于Git进行版本控制,当软件开发人员每次提交代码后,会生成一条Git记录信息,记录信息中包含了此次代码更改的所有内容,对Git记录信息进行解析,将这些内容视为多个代码块(Block)组成的集合({Blockn}),每个代码块对应某源文件的某个函数的某几行代码。代码提交后,编译生成新版本的计算流体力学软件。建立计算流体力学软件的版本信息系和更改代码块集合的映射关系,并存储在一个Map里面,具体如图2所示。
步骤S13:对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息。
本实施例中,若所述计算结果为异常之后,还包括:获取所有的所述计算结果为异常的所述目标计算流体力学算例;按照标签分类方法对所述目标计算流体力学算例进行分类,以得到各类所述目标计算流体力学算例;其中,所述标签分类方法为按照所述目标计算流体力学算例中的标签对所述目标计算流体力学算例进行统计分类。也就是说,CFD算例(cases)计算完成后,对算例的计算结果进行分析,将算例结果分为正常和异常,将所有异常算例按照标签进行统计分类,得到各类所述目标计算流体力学算例。
本实施例中,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件和代码覆盖率工具运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;建立所述基准代码覆盖率信息和所述计算流体力学算例之间的映射关系。也就是说,统计异常CFD case的标签分布,把异常算例分为具备共同的标签的算例集合,分别进行下列操作:根据历史记录表(该表记录的是标签及其具备该标签的算例在运行时代码覆盖信息表里共同经过的函数集合)查找该共同历史标签对应的函数表,如果更改的函数在该函数表里就可迅速定位,若不在则转到下一阶段,其中历史记录表如图3所示。
步骤S14:基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
本实施例中,获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。本申请通过解析CFD软件的参数输入,建立测试算例对应标签,在不断查找错误代码块的过程中,形成了算例标签与函数之间的历史经验表(该表记录的是标签及其具备该标签的算例在运行时代码覆盖信息表里共同经过的函数集合),查找该共同标签对应的函数表,如果更改的函数在该函数表里就可迅速定位,减少了代码审查量,提高了基于代码覆盖分析方法错误代码定位效果,极大的减少了时间和人力成本,促进了软件的研发进度,并且是结合Git记录信息和代码覆盖工具得到新版本解算器与基准版本解算器之间的代码覆盖差异信息来实现,根据Git对CFD软件进行版本控制中的Git更改的记录信息,针对每个更改的代码块,找到代码覆盖差异信息包含该块的测试算例集,给出算例异常率,即为代码块的异常率,可迅速找到更改的代码及其源文件,开发人员不需要遍历程序执行失效相关的文件、查询程序更改的代码,从而实现错误代码自动化快速定位。
参见图4所示,本发明实施例公开了一种计算流体力学代码错误定位方法,具体可以包括:
步骤S21:获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。
步骤S22:获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果。
步骤S23:对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息。
步骤S24:基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,获取所有的所述目标代码块,并建立与所述差异信息相对应的所述目标计算流体力学算例中的标签和所述目标代码块之间的映射关系,基于所述映射关系对所述历史记录表进行更新,以得到更新后的所述历史记录表。
本实施例中,用基准CFD软件解算器(即基准计算流体力学软件)分别运行所有算例,运用代码覆盖率工具生成每个算例(case1、case2…)运行中的代码覆盖信息(f10、f20…)。并建立算例与代码覆盖信息之间的映射关系,然后用代码覆盖信息(f1、f2…)和基准版本解算器生成的基准代码覆盖信息(f10、f20…)进行对比生成差异信息(
Figure SMS_1
f1、/>
Figure SMS_2
f2…)。根据计算流体力学软件对应的更改代码块集合信息({Blockn}),针对每个代码块Blocki,查找哪些差异信息(/>
Figure SMS_3
f1、/>
Figure SMS_4
f2…)包含了该块,即找到该块对应的算例集,统计这些算例相同的标签,将这些标签与函数之间建立映射关系,添加到历史记录表中。然后对这些算例计算结果进行分析,给出异常率。该异常率即该块代码错误的出错的概率。
步骤S25:对所述计算结果和所述目标代码块进行分析并计算,以得到各代码错误率,然后根据各所述代码错误率对各所述目标代码块进行排序,确定出预设阈值,并判断各所述代码错误率是否大于所述预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
本实施例中,按出错概率对Block进行排序,列出概率大于50%的Block,最终实现错误代码的快速自动定位,如图5所示,确定出的差异信息为
Figure SMS_5
f1、/>
Figure SMS_6
f2以及/>
Figure SMS_7
f3,然后将差异信息与记录信息中的进行对比,假如记录信息中包含/>
Figure SMS_8
f1和/>
Figure SMS_9
f3,则得到目标代码块为case1和case3,然后计算出代码错误率,并对错误代码率进行排序,然后判断错误代码率是否50%,如果大于50%,则将case1和case3作为错误代码块。
本申请的具体流程如图6所示,第一步,CFD算例的收集、添加和标定:获取计算流体力学算例,基于所述计算流体力学算例确定出计算输入信息,然后根据所述计算输入信息为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;第二步,编译生成新版本解算器(即计算流体力学软件),采用提交的新版本解算器执行CFD算例,并分别建立解算器版本和更改代码块集合、算例与代码覆盖信息之间的映射关系:获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,确定出所述计算流体力学软件的版本信息,建立所述版本信息与所述代码块集合之间的映射关系,然后利用所述计算流体力学软件和预设的代码覆盖率工具对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,建立所述目标计算流体力学算例进行计算和所述代码覆盖率信息之间的映射关系;第三步,CFD算例计算结果信息的分析:CFD算例(cases)计算完成后,对算例的计算结果进行分析,将算例结果分为正常和异常,将所有异常算例按照标签进行统计分类;第四步,代码提交记录和计算结果信息的综合分析,代码错误定位:迅速定位法,基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
本实施例中,获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。本申请通过解析CFD软件的参数输入,建立测试算例对应标签,在不断查找错误代码块的过程中,形成了算例标签与函数之间的历史经验表(该表记录的是标签及其具备该标签的算例在运行时代码覆盖信息表里共同经过的函数集合),查找该共同标签对应的函数表,如果更改的函数在该函数表里就可迅速定位,减少了代码审查量,提高了基于代码覆盖分析方法错误代码定位效果,极大的减少了时间和人力成本,促进了软件的研发进度,并且是结合Git记录信息和代码覆盖工具得到新版本解算器与基准版本解算器之间的代码覆盖差异信息来实现,根据Git对CFD软件进行版本控制中的Git更改的记录信息,针对每个更改的代码块,找到代码覆盖差异信息包含该块的测试算例集,给出算例异常率,即为代码块的异常率,可迅速找到更改的代码及其源文件,开发人员不需要遍历程序执行失效相关的文件、查询程序更改的代码,从而实现错误代码自动化快速定位。
参见图7所示,本发明实施例公开了一种计算流体力学代码错误定位装置,具体可以包括:
计算流体力学算例获取模块11,用于获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;
计算模块12,用于获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;
分析模块13,用于对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
错误代码块位置信息确定模块14,用于基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
本实施例中,获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。本申请通过解析CFD软件的参数输入,建立测试算例对应标签,在不断查找错误代码块的过程中,形成了算例标签与函数之间的历史经验表(该表记录的是标签及其具备该标签的算例在运行时代码覆盖信息表里共同经过的函数集合),查找该共同标签对应的函数表,如果更改的函数在该函数表里就可迅速定位,减少了代码审查量,提高了基于代码覆盖分析方法错误代码定位效果,极大的减少了时间和人力成本,促进了软件的研发进度,并且是结合Git记录信息和代码覆盖工具得到新版本解算器与基准版本解算器之间的代码覆盖差异信息来实现,根据Git对CFD软件进行版本控制中的Git更改的记录信息,针对每个更改的代码块,找到代码覆盖差异信息包含该块的测试算例集,给出算例异常率,即为代码块的异常率,可迅速找到更改的代码及其源文件,开发人员不需要遍历程序执行失效相关的文件、查询程序更改的代码,从而实现错误代码自动化快速定位。
在一些具体实施例中,所述计算流体力学算例获取模块11,具体可以包括:
计算输入信息确定模块,用于基于所述计算流体力学算例确定出计算输入信息;
标签添加模块,用于根据所述计算输入信息为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。
在一些具体实施例中,所述计算模块12,具体可以包括:
版本信息确定模块,用于确定出所述计算流体力学软件的版本信息,建立所述版本信息与所述代码块集合之间的映射关系;
映射关系建立模块,用于利用所述计算流体力学软件和预设的代码覆盖率工具对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,建立所述目标计算流体力学算例进行计算和所述代码覆盖率信息之间的映射关系。
在一些具体实施例中,所述分析模块13,具体可以包括:
目标计算流体力学算例获取模块,用于获取所有的所述计算结果为异常的所述目标计算流体力学算例;
分类模块,用于按照标签分类方法对所述目标计算流体力学算例进行分类,以得到各类所述目标计算流体力学算例;其中,所述标签分类方法为按照所述目标计算流体力学算例中的标签对所述目标计算流体力学算例进行统计分类。
在一些具体实施例中,所述分析模块13,具体可以包括:
基准代码覆盖率信息确定模块,用于利用预设的基准计算流体力学软件和代码覆盖率工具运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
映射关系建立模块,用于建立所述基准代码覆盖率信息和所述计算流体力学算例之间的映射关系。
在一些具体实施例中,所述错误代码块位置信息确定模块14,具体可以包括:
映射关系建立模块,用于获取所有的所述目标代码块,并建立与所述差异信息相对应的所述目标计算流体力学算例中的标签和所述目标代码块之间的映射关系;
历史记录表更新模块,用于基于所述映射关系对所述历史记录表进行更新,以得到更新后的所述历史记录表。
在一些具体实施例中,所述错误代码块位置信息确定模块14,具体可以包括:
代码错误率确定模块,用于对所述计算结果和所述目标代码块进行分析并计算,以得到各代码错误率;
判断模块,用于根据各所述代码错误率对各所述目标代码块进行排序,确定出预设阈值,并判断各所述代码错误率是否大于所述预设阈值。
图8为本申请实施例提供的一种电子设备的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的计算流体力学代码错误定位方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的计算流体力学代码错误定位方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括计算流体力学代码错误定位设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的计算流体力学代码错误定位方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种计算流体力学代码错误定位方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种计算流体力学代码错误定位方法,其特征在于,包括:
获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;
获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;
对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
2.根据权利要求1所述的计算流体力学代码错误定位方法,其特征在于,所述为所述计算流体力学算例添加标签,以得到目标计算流体力学算例,包括:
基于所述计算流体力学算例确定出计算输入信息;
根据所述计算输入信息为所述计算流体力学算例添加标签,以得到目标计算流体力学算例。
3.根据权利要求1所述的计算流体力学代码错误定位方法,其特征在于,所述利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,包括:
确定出所述计算流体力学软件的版本信息,建立所述版本信息与所述代码块集合之间的映射关系;
利用所述计算流体力学软件和预设的代码覆盖率工具对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果,建立所述目标计算流体力学算例进行计算和所述代码覆盖率信息之间的映射关系。
4.根据权利要求1所述的计算流体力学代码错误定位方法,其特征在于,所述若所述计算结果为异常之后,还包括:
获取所有的所述计算结果为异常的所述目标计算流体力学算例;
按照标签分类方法对所述目标计算流体力学算例进行分类,以得到各类所述目标计算流体力学算例;其中,所述标签分类方法为按照所述目标计算流体力学算例中的标签对所述目标计算流体力学算例进行统计分类。
5.根据权利要求1所述的计算流体力学代码错误定位方法,其特征在于,所述利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息,包括:
利用预设的基准计算流体力学软件和代码覆盖率工具运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
建立所述基准代码覆盖率信息和所述计算流体力学算例之间的映射关系。
6.根据权利要求1所述的计算流体力学代码错误定位方法,其特征在于,所述根据所述差异信息从所述代码块集合中确定出各目标代码块之后,还包括:
获取所有的所述目标代码块,并建立与所述差异信息相对应的所述目标计算流体力学算例中的标签和所述目标代码块之间的映射关系;
基于所述映射关系对所述历史记录表进行更新,以得到更新后的所述历史记录表。
7.根据权利要求1至6任一项所述的计算流体力学代码错误定位方法,其特征在于,所述计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,包括:
对所述计算结果和所述目标代码块进行分析并计算,以得到各代码错误率;
根据各所述代码错误率对各所述目标代码块进行排序,确定出预设阈值,并判断各所述代码错误率是否大于所述预设阈值。
8.一种计算流体力学代码错误定位装置,其特征在于,包括:
计算流体力学算例获取模块,用于获取计算流体力学算例,并为所述计算流体力学算例添加标签,以得到目标计算流体力学算例;
计算模块,用于获取各代码,并根据各所述代码生成计算流体力学软件和记录信息,对各所述记录信息进行分析,以得到包含各所述代码的代码块集合,利用所述计算流体力学软件对所述目标计算流体力学算例进行计算,以得到代码覆盖率信息和计算结果;
分析模块,用于对所述计算结果进行分析,若所述计算结果为异常,则判断历史记录表中是否存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,若历史记录表中不存在与计算结果为异常的所述目标计算流体力学算例中的标签相同的历史标签,则利用预设的基准计算流体力学软件运行所有的所述计算流体力学算例,以得到基准代码覆盖率信息;
错误代码块位置信息确定模块,用于基于所述基准代码覆盖率信息和所述代码覆盖率信息确定出差异信息,根据所述差异信息从所述代码块集合中确定出各目标代码块,计算出所述目标代码块的代码错误率,判断所述代码错误率是否大于预设阈值,若所述代码错误率大于预设阈值,则将所述目标代码块确定为错误代码块,并确定出所述错误代码块位置信息。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的计算流体力学代码错误定位方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的计算流体力学代码错误定位方法。
CN202310268753.XA 2023-03-20 2023-03-20 一种计算流体力学代码错误定位方法、装置、设备及介质 Active CN115982058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310268753.XA CN115982058B (zh) 2023-03-20 2023-03-20 一种计算流体力学代码错误定位方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310268753.XA CN115982058B (zh) 2023-03-20 2023-03-20 一种计算流体力学代码错误定位方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN115982058A CN115982058A (zh) 2023-04-18
CN115982058B true CN115982058B (zh) 2023-07-07

Family

ID=85958557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310268753.XA Active CN115982058B (zh) 2023-03-20 2023-03-20 一种计算流体力学代码错误定位方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115982058B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050071969A (ko) * 2004-01-05 2005-07-08 에스케이 텔레콤주식회사 광대역 배열 안테나의 틸팅각 보정 방법 및 장치
CN108491321A (zh) * 2018-03-06 2018-09-04 平安科技(深圳)有限公司 测试用例范围确定方法、装置及存储介质
CN111831321A (zh) * 2019-04-22 2020-10-27 北京世纪好未来教育科技有限公司 代码覆盖率的分析方法、装置及其电子设备
US11119898B1 (en) * 2020-05-07 2021-09-14 International Business Machines Corporation Automatic code coverage file recommendation
CN113568839A (zh) * 2021-08-03 2021-10-29 京东科技控股股份有限公司 软件测试和统计测试覆盖率的方法、装置、设备及介质
CN114661588A (zh) * 2022-03-14 2022-06-24 浙江迪捷软件科技有限公司 代码执行覆盖率统计的方法、装置及计算设备
WO2022148300A1 (zh) * 2021-01-07 2022-07-14 苏州浪潮智能科技有限公司 一种bios问题定位方法、装置和计算机可读存储介质
CN115422065A (zh) * 2022-09-07 2022-12-02 中国工商银行股份有限公司 基于代码覆盖率的故障定位方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321017A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Computer code debugging method and apparatus providing exception breakpoints

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050071969A (ko) * 2004-01-05 2005-07-08 에스케이 텔레콤주식회사 광대역 배열 안테나의 틸팅각 보정 방법 및 장치
CN108491321A (zh) * 2018-03-06 2018-09-04 平安科技(深圳)有限公司 测试用例范围确定方法、装置及存储介质
CN111831321A (zh) * 2019-04-22 2020-10-27 北京世纪好未来教育科技有限公司 代码覆盖率的分析方法、装置及其电子设备
US11119898B1 (en) * 2020-05-07 2021-09-14 International Business Machines Corporation Automatic code coverage file recommendation
WO2022148300A1 (zh) * 2021-01-07 2022-07-14 苏州浪潮智能科技有限公司 一种bios问题定位方法、装置和计算机可读存储介质
CN113568839A (zh) * 2021-08-03 2021-10-29 京东科技控股股份有限公司 软件测试和统计测试覆盖率的方法、装置、设备及介质
CN114661588A (zh) * 2022-03-14 2022-06-24 浙江迪捷软件科技有限公司 代码执行覆盖率统计的方法、装置及计算设备
CN115422065A (zh) * 2022-09-07 2022-12-02 中国工商银行股份有限公司 基于代码覆盖率的故障定位方法及装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Effective Fault Localization using Code Coverage;W. Eric Wong;《31st Annual International Computer Software and Applications Conference (COMPSAC 2007)》;1-8 *
国家数值风洞(NNW)软件自动化集成与测试平台设计与研发;何磊;《空气动力学报》;1158-1164 *
大型 CFD 软件自动化测试平台的初步设计与实现;何磊等;《空气动力学报》;418-425 *
自动化软件错误定位方法的分析与比较;刘佩;《信息与电脑》;42-45 *
面向软件错误定位与理解的测试执行离散特征筛选;刘梦冷;《计算机科学》;179-187 *

Also Published As

Publication number Publication date
CN115982058A (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
US11899800B2 (en) Open source vulnerability prediction with machine learning ensemble
US11790256B2 (en) Analyzing test result failures using artificial intelligence models
Ray et al. The uniqueness of changes: Characteristics and applications
US20110154117A1 (en) Methods and apparatus to perform log file analyses
CN111143226B (zh) 自动化测试方法及装置、计算机可读存储介质、电子设备
US8645761B2 (en) Precise fault localization
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
CN111104335A (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN109388573B (zh) 一种无漏报的中断驱动型程序运行时错误检测方法和系统
CN113094625B (zh) 页面元素定位方法、装置、电子设备及存储介质
CN110990575A (zh) 测试用例失败原因分析方法、装置及电子设备
CN115982058B (zh) 一种计算流体力学代码错误定位方法、装置、设备及介质
CN112163132A (zh) 一种数据标注方法、装置、存储介质及电子设备
CN106844218B (zh) 一种基于演化切片的演化影响集预测方法
Wang et al. Invariant based fault localization by analyzing error propagation
US20220366330A1 (en) Method and system for determining a predicted operation time for a manufacturing operation using a time prediction model
US7844627B2 (en) Program analysis method and apparatus
CN116028329A (zh) 检测代码缺陷的方法、电子设备和计算机程序产品
US20210049008A1 (en) Identifying implicit dependencies between code artifacts
CN116383834B (zh) 针对源码漏洞检测工具异常的检测方法以及相关设备
CN116483735B (zh) 一种代码变更的影响分析方法、装置、存储介质及设备
US11829230B2 (en) Globally unique error codes for knowledge document indexing in software systems
US20180196735A1 (en) Automatic instrumentation of code
CN111581184B (zh) 基于数据库迁移的语义对比方法及装置
CN110866557B (zh) 数据评价方法及装置、存储介质及电子设备

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
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant