程序数据流诊断方法、装置及设备制造方法及图纸

技术编号:35727790 阅读:12 留言:0更新日期:2022-11-26 18:26
本发明专利技术实施例提供一种程序数据流诊断方法、装置及设备,该方法包括:响应于应用程序中的诊断请求,从诊断请求中获取诊断请求的诊断模态、诊断目标数据区域、数据诊断方式和程序定位标记;根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算;将对诊断目标数据区域中的数据进行诊断计算的结果与程序定位标记进行结合,得到诊断结果;根据诊断模态输出诊断结果。实现了对应用程序的诊断,根据输出的诊断结果可以对应用程序中隐含的错误进行准确定位。准确定位。准确定位。

【技术实现步骤摘要】
程序数据流诊断方法、装置及设备


[0001]本专利技术实施例涉及软件测试
,具体涉及一种程序数据流诊断方法、装置及设备。

技术介绍

[0002]软件程序中难免会存在错误(bug),存在错误的软件程序容易出现以下错误现象:1)程序运行因段错误等的出现而被中断;2)程序运行虽然正常结束,但是却产生了不合理的部分输出结果。软件程序中的错误可能会导致意想不到的不良后果,以定位并解决软件程序中的错误为核心目标的软件测试是软件工程中不可或缺的关键步骤,对于提高软件的质量和可靠性具有重要意义。
[0003]目前很多大公司都十分重视软件测试,通过建立测试标准体系,对编译器进行改进并开发大量的测试工具,来对软件程序中的错误进行检测。虽然现代编译器和一些测试工具(如Valgrind等)能够提供一定的检测功能,但是随着软件程序复杂性的不断提高和程序代码量的快速增加,软件程序中隐含的错误不断增多,准确定位错误的难度和工作量不断提升,这就导致软件程序中有很大一部分错误难以通过现有手段定位出来。

技术实现思路

[0004]本专利技术实施例提供一种程序数据流诊断方法、装置及设备,用于对软件程序进行诊断,以便对其中隐含的错误进行准确定位。
[0005]第一方面,本专利技术实施例提供程序数据流诊断方法,包括:响应于应用程序中的诊断请求,从诊断请求中获取诊断请求的诊断模态、诊断目标数据区域、数据诊断方式和程序定位标记;根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算;将对诊断目标数据区域中的数据进行诊断计算的结果与程序定位标记进行结合,得到诊断结果;根据诊断模态输出诊断结果。
[0006]一种实施例中,诊断模态包括参照数据流生成模态和数据流一致性检测模态,其中,在参照数据流生成模态下,将诊断结果输出到参照诊断日志文件;在数据流一致性检测模态下,从对应的参照诊断日志文件中获取参照诊断结果,如果当前诊断结果与参照诊断结果不同,输出程序错误警告。
[0007]一种实施例中,数据诊断方式包括以下至少一种:关键位置数据值追踪、区域数据值追踪、数据值有效范围诊断和异常值甄别。
[0008]一种实施例中,当应用程序为并行程序、诊断请求的诊断模态为参照数据流生成模态、诊断请求的数据诊断方式为关键位置数据值追踪时,所述方法包括:响应于在第一并行设置下运行应用程序时的当前诊断请求,从当前诊断请求获取若干特定位置的数组索引,从当前诊断请求的诊断目标数据区域获取各特定位置数组索引
对应的数据值,进行诊断计算,结合程序定位标记,得到诊断结果,将诊断结果写入各进程或线程所对应的诊断日志文件中,得到第一组诊断日志文件;响应于在第二并行设置下运行应用程序时的当前诊断请求,从当前诊断请求获取若干特定位置的数组索引,从当前诊断请求的诊断目标数据区域获取各特定位置数组索引对应的数据值,进行诊断计算,结合程序定位标记,得到诊断结果,将诊断结果写入各进程或线程所对应的诊断日志文件中,得到第二组诊断日志文件;根据第一组诊断日志文件和第二组诊断日志文件确定在第一并行设置和第二并行设置下运行结果不同的程序位置。
[0009]一种实施例中,当诊断请求的数据诊断方式为区域数据值追踪时,所述方法包括:响应于应用程序中诊断模态为参照数据流生成模态的诊断请求,计算诊断请求的诊断目标数据区域中数据的特征值,将各诊断请求对应的特征值和程序定位标记的组合作为诊断结果写入诊断日志文件中,得到参照诊断日志文件;响应于应用程序中诊断模态为数据流一致性检测模态的诊断请求,计算当前诊断请求的诊断目标数据区域中数据的特征值,根据当前诊断请求对应的特征值和程序定位标记的组合得到当前诊断结果;从参照诊断日志文件中获取当前诊断结果对应的参照诊断结果,当参照诊断结果与当前诊断结果不同时,根据当前诊断结果的程序定位标志确定导致两次运行结果不同的程序位置。
[0010]一种实施例中,诊断目标数据区域中数据的特征值为诊断目标数据区域中数据的二进制校验和。
[0011]一种实施例中,当诊断请求的数据诊断方式为异常值甄别时,根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算包括:判断诊断目标数据区域中是否存在异常数据值;当诊断目标数据区域中存在异常数据值时,生成程序错误警告的诊断结果。
[0012]一种实施例中,当诊断请求的数据诊断方式为数据值有效范围诊断时,方法还包括:从诊断请求中获取诊断请求的有效数据范围;根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算包括:判断诊断目标数据区域中的各数据是否位于有效数据范围内;当诊断目标数据区域中存在有效数据范围外的数据时,生成程序错误警告的诊断结果。
[0013]第二方面,本专利技术实施例提供一种程序数据流诊断装置,包括:响应模块,用于响应于应用程序中的诊断请求,从诊断请求中获取诊断请求的诊断模态、诊断目标数据区域、数据诊断方式和程序定位标记;诊断模块,用于根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算;组合模块,用于将对诊断目标数据区域中的数据进行诊断计算的结果与程序定位标记进行结合,得到诊断结果;输出模块,用于根据诊断模态输出诊断结果。
[0014]第三方面,本专利技术实施例提供一种程序数据流诊断设备,包括:至少一个处理器和存储器;
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的程序数据流诊断方法。
[0015]第四方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的程序数据流诊断方法。
[0016]本专利技术实施例提供的程序数据流诊断方法、装置及设备,通过响应于应用程序中的诊断请求,从诊断请求中获取诊断请求的诊断模态、诊断目标数据区域、数据诊断方式和程序定位标记;根据数据诊断方式对诊断目标数据区域中的数据进行诊断计算;将对诊断目标数据区域中的数据进行诊断计算的结果与程序定位标记进行结合,得到诊断结果;根据诊断模态输出诊断结果。实现了对应用程序的诊断,根据输出的诊断结果可以对应用程序中隐含的错误进行准确定位。
附图说明
[0017]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0018]图1为本专利技术一实施例提供的程序数据流诊断方法的流程图;图2为本专利技术一实施例提供的程序数据流诊断装置的结构示意图;图3为本专利技术一实施例提供的程序数据流诊断设备的结构示意图。
[0019]通过上述附图,已示出本专利技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本专利技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本专利技术的概念。
具体实施方式
[0020]下面通过具体实施方式结合附图对本专利技术作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序数据流诊断方法,其特征在于,包括:响应于应用程序中的诊断请求,从所述诊断请求中获取所述诊断请求的诊断模态、诊断目标数据区域、数据诊断方式和程序定位标记;根据所述数据诊断方式对所述诊断目标数据区域中的数据进行诊断计算;将对所述诊断目标数据区域中的数据进行诊断计算的结果与所述程序定位标记进行结合,得到诊断结果;根据所述诊断模态输出所述诊断结果。2.根据权利要求1所述的方法,其特征在于,所述诊断模态包括参照数据流生成模态和数据流一致性检测模态,其中,在参照数据流生成模态下,将诊断结果输出到参照诊断日志文件;在数据流一致性检测模态下,从对应的参照诊断日志文件中获取参照诊断结果,如果当前诊断结果与所述参照诊断结果不同,输出程序错误警告。3.根据权利要求1所述的方法,其特征在于,所述数据诊断方式包括以下至少一种:关键位置数据值追踪、区域数据值追踪、数据值有效范围诊断和异常值甄别。4.根据权利要求1

3任一项所述的方法,其特征在于,当所述应用程序为并行程序、所述诊断请求的诊断模态为参照数据流生成模态、所述诊断请求的数据诊断方式为关键位置数据值追踪时,所述方法包括:响应于在第一并行设置下运行所述应用程序时的当前诊断请求,从所述当前诊断请求获取若干特定位置的数组索引,从所述当前诊断请求的所述诊断目标数据区域获取所述各特定位置数组索引对应的数据值,进行诊断计算,结合程序定位标记,得到诊断结果,将诊断结果写入各进程或线程所对应的诊断日志文件中,得到第一组诊断日志文件;响应于在第二并行设置下运行所述应用程序时的当前诊断请求,从所述当前诊断请求获取若干特定位置的数组索引,从所述当前诊断请求的所述诊断目标数据区域获取所述各特定位置数组索引对应的数据值,进行诊断计算,结合程序定位标记,得到诊断结果,将诊断结果写入各进程或线程所对应的诊断日志文件中,得到第二组诊断日志文件;根据所述第一组诊断日志文件和所述第二组诊断日志文件确定在所述第一并行设置和所述第二并行设置下运行结果不同的程序位置。5.根据权利要求1

3任一项所述的方法,其特征在于,当所述诊断请求的数据诊断方式为区域数据值追踪时,所述方法包括:响应于应用程序中诊断模态为参照数据流生成模态的诊断请求,计算所述诊断请求的诊断目标数据区域中数据的特征值,将各诊断请求对应的特征值和程序定位标记的组合作为诊断结果写入诊断日志文件中,得到参照诊断日志文件;响应于应用程...

【专利技术属性】
技术研发人员:李锐喆赵彤
申请(专利权)人:北京卡普拉科技有限公司
类型:发明
国别省市:

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

1