基于程序谱技术的FPGA代码缺陷定位方法及系统技术方案

技术编号:34274124 阅读:27 留言:0更新日期:2022-07-24 16:44
本发明专利技术公开了基于程序谱技术的FPGA代码缺陷定位方法及系统,涉及硬件测试技术领域,其技术方案要点是:构建对目标程序进行缺陷定位测试的包含所有测试用例的测试集;以测试集中的测试用例对动态执行的目标程序进行依次测试,得到测试结果;依据已完成测试的测试用例所对应的测试结果计算出目标程序中每条程序语句的可疑值;若存在程序语句的可疑值大于定位阈值,则输出相应的程序语句作为目标程序的代码缺陷定位结果;若不存在,则继续执行下一个测试用例进行测试。本发明专利技术有效对硬件代码缺陷定位中的静态分析方法的不足进行弥补,同时无需将所有测试用例都运行进行测试,有效提高了测试效率。高了测试效率。高了测试效率。

FPGA code defect location method and system based on program spectrum technology

【技术实现步骤摘要】
基于程序谱技术的FPGA代码缺陷定位方法及系统


[0001]本专利技术涉及硬件测试
,更具体地说,它涉及基于程序谱技术的FPGA代码缺陷定位方法及系统。

技术介绍

[0002]HDL(硬件描述语言)是一种使用形式化方法来描述数字电路和系统的语言。据统计,目前90%以上的ASIC和FPGA都是采用HDL设计的。HDL已成功应用于设计的各个阶段:建模、仿真、验证和综合。迄今为止,已经出现了数百种硬件描述语言,极大地促进了设计自动化。如今基于源代码的方法的生产使用使设计人员能够创建非常复杂的片上系统,从而将源代码用作逻辑综合的基础。形式验证技术的最新成就甚至允许在大型现实世界设计中进行缺陷检测,其中用于本地化错误语句的工具支持至关重要,因为它可以减少开发时间和总体项目成本。
[0003]目前,在软件系统中对于缺陷定位的研究已经有很长的历程了,但是在硬件领域相关研究还很少,主要原因在于硬件描述语言是并发执行,与软件代码的串行不同。此外,硬件描述语言需要考虑时序,在其它高级语言中是没有时序这个概念的。然而,到目前为止,只有少数研究涉及HDL中的缺陷定位。文献表明,目前对HDLs缺陷定位的研究具有以下特点:首先,对门级代码的研究较多,对RTL(Register Transfer Level)级代码的研究较少。其次,虽然硬件描述语言已经被大量广泛使用,但还是有更多的研究集中在VHDL上。最重要的一点是,目前主要的HDLs缺陷定位方法都是基于模型的。然而,通过包括基于模型方法在内的静态分析定位算术符号错误或条件语句错误是一个很大的挑战,这是静态分析的特性决定的。
[0004]因此,如何研究设计一种能够克服上述缺陷的基于程序谱技术的FPGA代码缺陷定位方法及系统是我们目前急需解决的问题。

技术实现思路

[0005]为解决现有技术中的不足,本专利技术的目的是提供基于程序谱技术的FPGA代码缺陷定位方法及系统,既可以有效对硬件代码缺陷定位中的静态分析方法的不足进行弥补,同时无需将所有测试用例都运行进行测试,有效提高了测试效率。
[0006]本专利技术的上述技术目的是通过以下技术方案得以实现的:
[0007]第一方面,提供了基于程序谱技术的FPGA代码缺陷定位方法,包括以下步骤:
[0008]构建对目标程序进行缺陷定位测试的包含所有测试用例的测试集;
[0009]以测试集中的测试用例对动态执行的目标程序进行依次测试,得到测试结果;
[0010]依据已完成测试的测试用例所对应的测试结果计算出目标程序中每条程序语句的可疑值;
[0011]若存在程序语句的可疑值大于定位阈值,则输出相应的程序语句作为目标程序的代码缺陷定位结果;若不存在,则继续执行下一个测试用例进行测试。
[0012]进一步的,所述测试结果的表达式具体为:
[0013][0014]其中,P(Q)表示P个测试用例对Q条程序语句的测试结果;x
PQ
表示第P个测试用例对第Q条程序语句的执行结果;e
P
表示第P个测试用例的测试结果。
[0015]进一步的,所述可疑值的计算公式具体为:
[0016]A:
[0017]B:
[0018]C:
[0019]D:
[0020]E:
[0021]F:
[0022]或,G:
[0023]其中,S表示可疑值;α
ef
表示测试用例已执行程序语句后测试失败所对应的测试用例数量;α
nf
表示测试用例不执行程序语句时测试失败所对应的测试用例数量;α
ep
表示测试用例已执行程序语句后测试通过所对应的测试用例数量;α
np
表示测试用例不执行程序语句时测试通过所对应的测试用例数量。
[0024]进一步的,所述程序语句的测试结果中已执行、不执行、测试失败、测试通过所对应的测试用例数量均通过映射函数转换成单个数字。
[0025]进一步的,该方法还包括:
[0026]依据目标程序的缺陷类型确定已完成测试的测试用例中对应类别的执行语句占比;
[0027]根据各个测试用例的执行语句占比以及已完成测试的测试用例数量动态更新定位阈值。
[0028]进一步的,所述执行语句占比的更新过程具体为:
[0029]依据目标程序的缺陷类型确定标记值范围;
[0030]从测试用例中筛选出执行语句的标记值在标记值范围内的执行语句数量;
[0031]以执行语句数量与测试用例中的总执行语句数之比作为执行语句占比。
[0032]进一步的,所述定位阈值的更新公式具体为:
[0033][0034]其中,S
N
表示N测试用例已完成测试后更新的定位阈值;S0表示基准阈值;M(k)表示第k个测试用例中所筛选的执行语句数量;M0(k)表示第k个测试用例中的总执行语句数。
[0035]第二方面,基于程序谱技术的FPGA代码缺陷定位系统,包括:
[0036]用例构建模块,用于构建对目标程序进行缺陷定位测试的包含所有测试用例的测试集;
[0037]动态测试模块,用于以测试集中的测试用例对动态执行的目标程序进行依次测试,得到测试结果;
[0038]可疑值计算模块,用于依据已完成测试的测试用例所对应的测试结果计算出目标程序中每条程序语句的可疑值;
[0039]定位分析模块,用于若存在程序语句的可疑值大于定位阈值,则输出相应的程序语句作为目标程序的代码缺陷定位结果;若不存在,则继续执行下一个测试用例进行测试。
[0040]第三方面,提供了一种计算机终端,包含存储器、处理器及存储在存储器并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面中任意一项所述的基于程序谱技术的FPGA代码缺陷定位方法。
[0041]第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行可实现如第一方面中任意一项所述的基于程序谱技术的FPGA代码缺陷定位方法。
[0042]与现有技术相比,本专利技术具有以下有益效果:
[0043]1、本专利技术提出的基于程序谱技术的FPGA代码缺陷定位方法,通过测试用例对动态执行的存在缺陷的目标程序进行测试,并以可疑值大于定位阈值对于目标程序中存在的单一缺陷进行定位,既可以有效对硬件代码缺陷定位中的静态分析方法的不足进行弥补,如算术符号缺陷和条件语句缺陷的定位,同时无需将所有测试用例都运行进行测试,有效提高了测试效率;
[0044]2、本专利技术依据目标程序的缺陷类型确定已完成测试的测试用例中对应类别的执行语句占比,并根据各个测试用例的执行语句占比以及已完成测试的测试用例数量动态更新定位阈值,能够精准筛选出存在缺陷的程序语句,进一步降低了FPGA代码缺陷定位过程中测试用例的数量,测试效率更高。
附图说明
[0045]此处所说明的附图用来提供对本专利技术实施例的进一步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于程序谱技术的FPGA代码缺陷定位方法,其特征是,包括以下步骤:构建对目标程序进行缺陷定位测试的包含所有测试用例的测试集;以测试集中的测试用例对动态执行的目标程序进行依次测试,得到测试结果;依据已完成测试的测试用例所对应的测试结果计算出目标程序中每条程序语句的可疑值;若存在程序语句的可疑值大于定位阈值,则输出相应的程序语句作为目标程序的代码缺陷定位结果;若不存在,则继续执行下一个测试用例进行测试。2.根据权利要求1所述的基于程序谱技术的FPGA代码缺陷定位方法,其特征是,所述测试结果的表达式具体为:其中,P(Q)表示P个测试用例对Q条程序语句的测试结果;x
PQ
表示第P个测试用例对第Q条程序语句的执行结果;e
P
表示第P个测试用例的测试结果。3.根据权利要求1所述的基于程序谱技术的FPGA代码缺陷定位方法,其特征是,所述可疑值的计算公式具体为:A:B:C:D:E:F:或,G:其中,S表示可疑值;α
ef
表示测试用例已执行程序语句后测试失败所对应的测试用例数量;α
nf
表示测试用例不执行程序语句时测试失败所对应的测试用例数量;α
ep
表示测试用例已执行程序语句后测试通过所对应的测试用例数量;α
np
表示测试用例不执行程序语句时测
试通过所对应的测试用例数量。4.根据权利要求3所述的基于程序谱技术的FPGA代码缺陷定位方法,其特征是,所述程序语句的测试结果中已执行、不执行、测试失败、测试通过所对应的测试用例数量均通过映射函数转换成单个数字。5.根据权利要求1

4任意一项所述的基于程序谱技术的FPGA代码缺陷定位方法,其特征是,该方法还包括:依据目标程序的缺陷类型确定已完成...

【专利技术属性】
技术研发人员:徐建军毛晓光吴江张卓杨德亨何枷瑜李盼盼
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1