CN116069629B - 测试设计的方法、电子设备及存储介质 - Google Patents

测试设计的方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116069629B
CN116069629B CN202211651842.4A CN202211651842A CN116069629B CN 116069629 B CN116069629 B CN 116069629B CN 202211651842 A CN202211651842 A CN 202211651842A CN 116069629 B CN116069629 B CN 116069629B
Authority
CN
China
Prior art keywords
test
information
design
point
target
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
CN202211651842.4A
Other languages
English (en)
Other versions
CN116069629A (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.)
Core Huazhang Technology Xiamen Co ltd
Original Assignee
Core Huazhang Technology Xiamen Co ltd
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 Core Huazhang Technology Xiamen Co ltd filed Critical Core Huazhang Technology Xiamen Co ltd
Publication of CN116069629A publication Critical patent/CN116069629A/zh
Application granted granted Critical
Publication of CN116069629B publication Critical patent/CN116069629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种测试设计的方法、电子设备及存储介质。该方法包括:执行所述设计的测试,所述测试包括多个测试段,所述多个测试段包括一个目标测试段和多个非目标测试段;在所述测试过程中获取多个标记信息;根据给定保存密度保存所述多个标记信息用于回溯所述测试;以及基于所述多个标记信息回溯所述测试,其中,根据给定保存密度保存多个标记信息用于回溯所述测试进一步包括:响应于所述测试进行至目标测试段,按照第一保存密度将所述目标测试段内的多个标记信息保存;以及按照所述第二保存密度将所述多个非目标测试段内的多个标记信息保存,所述第一保存密度高于所述第二保存密度。

Description

测试设计的方法、电子设备及存储介质
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种测试设计的方法、电子设备及存储介质。
背景技术
在进行逻辑系统设计(例如,芯片设计)的测试时,通常随着时间的推移对逻辑系统设计施加不同的激励信号,并且观察逻辑系统设计的输出信号在时间上的变化(例如,波形)。通过输出信号的变化可以发现设计的问题,并对设计进行修改。
为了更好地实现设计的调试,工程师通常需要反复地将测试还原到特定的时间点,来观察该时间点的输入信号以及输出信号,从而进行设计的调试。这就意味着,设计的测试需要能够快速地在工程师指定的时间点还原测试,包括在该时间点的输入信号、输出信号以及设计内部的多个信号的值。
为了快速复原测试,传统做法是在不同的时间点大量保存设计的测试的信息作为测试还原信息(在本申请中也称为标记信息)。这样,根据工程师选择的时间点载入对应的测试还原信息并且根据测试还原信息来运行设计的测试可以快速还原指定时间点的测试。
但是,随着芯片设计规模的增大,测试过程中产生的数据也越发庞大。因此,传统做法会大量侵占计算系统的存储资源和计算资源。
如何在保持还原测试的速度的前提下,尽可能降低对计算系统的各种资源的占用是一个亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提出一种测试设计的方法、电子设备及存储介质用以解决或部分解决上述技术问题。
本申请的第一方面,提供了一种测试设计的方法,包括:执行所述设计的测试,所述测试包括多个测试段,所述多个测试段包括一个目标测试段和多个非目标测试段;在所述测试过程中获取多个标记信息;根据给定保存密度保存所述多个标记信息用于回溯所述测试;以及基于所述多个标记信息回溯所述测试,其中,根据给定保存密度保存多个标记信息用于回溯所述测试进一步包括:响应于所述测试进行至目标测试段,按照第一保存密度将所述目标测试段内的多个标记信息保存;以及按照所述第二保存密度将所述多个非目标测试段内的多个标记信息保存,所述第一保存密度高于所述第二保存密度。
本申请的第二方面,提供了一种电子设备,包括:存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以进行第一方面所述的方法。
本申请的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子装置的一组指令,该组指令用于使所述电子装置执行第一方面所述的方法。
本申请实施例提供的测试设计的方法、电子设备及存储介质,在设计执行测试过程中,会将用户关注的目标测试段内的多个标记信息按照存储密度较高的第一保存密度进行保存,将不是用户关注的多个非目标测试段内的多个标记信息按照密度较低的第二保存密度进行保存,这样由于用户关注的目标测试段保存的标记信息数量较多,使得用户能够基于这些标记信息更加精确的进行回溯测试,进而准确快速地找出故障位置进行修改,提高测试效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的示例性电子设备的结构示意图。
图2为本申请实施例的示例性仿真工具的示意图。
图3A为本申请实施例的设计在测试过程中保存标记信息的时间逻辑示意图。
图3B为本申请实施例的存储标记信息的过程的示意图。
图3C为本申请实施例的存储标记信息的又一过程的示意图。
图3D为本申请实施例的回溯测试设计的示意图;
图4示出了本申请实施例所提供的一种测试设计的示例性方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
测试设计可以是在运行仿真工具的电子设备上对设计进行运行测试。在一些实施例中,设计在测试过程中可以包括一个或多个测试段。这些测试段可以按时间划分也可以按设计的代码段划分。该设计(例如,芯片设计),可以由软件编程语言(例如,java、JavaScript、C语言、C++语言、或PHP(Hypertext Preprocessor))编写,也可以由硬件编程语言(例如Verilog、VHDL、System C、或System Verilog)编写。
在对设计进行测试过程中,工程师通常会在出现故障的时刻分析错误发生的现象和原因(cause and effect analysis)。
对于一些潜在问题导致的故障(malfunctions caused by latent fault),在出现故障的时刻点无法找到问题原由。利用时间回溯测试让测试返回至该时刻的上一个时刻点,这样工程师就可以在上一个时刻点分析查找问题原由,进而有效地进行故障溯源并解决该故障。理论上时间回溯测试可以返回至测试的任意时刻点进行回溯测试。
常用的应用场景包括:(1)工程师针对潜在问题进行回溯;(2)工程师测试过程中错过关键测试点,想要回到该关键测试点对应的时刻点进行测试。
在对设计进行测试的过程中,例如可以先从设计的零时刻开始测试,将整个设计的测试过程被划分为多个单位时间段。当测试进行至对应单位时间段的中间时刻点时,记录该中间时刻点对应的信息,以供工程师能够根据记录的该中间时刻点快速返回到工程师指定的测试位置。但是由于设计(例如,DUT(Device Under Test,待测设备))规模较大,如果在每一个时刻点都进行记录保存,会占用较大的存储空间,浪费存储资源。
一般情况,进行回溯测试(reverse debug)的思路是加大存储信号时间间隔点,而非存储所有时间点的信息。例如,对于用户选择的一个回测的时间点A,查找与时间点A对应的间隔点B,该间隔点B的时间早于时间点A。这样,通过让仿真工具从间隔点B开始仿真到时间点A来获取时间点A处的仿真数据。
相比于传统的软件调试,仿真工具(例如,EDA(Electronic design automation)指利用计算机辅助设计(CAD,Computer Aided Design)软件,来完成超大规模集成电路(VLSI)芯片的设计)的回溯测试面临的主要问题是,随着芯片设计规模的变大,一个时间点的数据变得越发庞大。这使得存储大量的时间点需要大量的存储空间,从而变得在技术上不经济。同时,每个时间点上用于驱动仿真的数据量越大,进行回溯测试时的响应就越慢。这是因为回溯测试的实质是仿真工具根据保存下来的初始数据重新进行测试,并且达到预定的时间点。当设计变得庞大时,仿真工具在起始时间点开始重新进行测试的开销也会逐渐变大,使得回溯测试的效率降低,用户体验变差。
有鉴于上述问题,本申请提出一种测试设计的方法、电子设备及存储介质。
图1为本申请实施例所提供的示例性电子设备100的结构示意图。
如图1所示,电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在电子设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以设置数据库,在数据库中存储运行过程中的数据(例如,指令集、计算机代码、中间数据等)。用于测试设计的仿真工具可以是存储器104中存储的计算机程序。如图1所示,存储器104存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及存储运行数据(例如,存储器可以存储在编译过程产生的临时代码)的数据库。处理器102也可以访问存储器存储的程序指令和数据库。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述电子设备100的构成架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该电子设备100的构成架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述电子设备100的构成架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本申请实施例的仿真工具202和调试工具200的示意图。仿真工具202和调试工具200可以是运行在电子设备100上的计算机程序。
在芯片设计领域,通常可以利用仿真工具对一个设计进行仿真。仿真工具202例如可以是芯华章科技股份有限公司出品的GalaxSim仿真工具。图2示出的示例性仿真工具202可以包括编译器120和仿真器220。编译器120可以将设计(例如,逻辑系统设计210)编译为目标代码204,仿真器220可以根据目标代码204进行仿真,并将仿真结果206输出。例如,仿真工具202可以将仿真结果(例如,仿真波形图)经由图1的外围接口108输出到输出设备上(例如,显示在显示器上)。
调试工具200也可以读取仿真结果206。例如,调试工具200可以读取以波形文件存储的仿真结果206,并且生成相应的仿真波形用于调试。调试工具200还可以读取逻辑系统设计210的描述(通常是SystemVerilog和Verilog代码),并且显示(例如,经由图1的输出设备)给用户。调试工具200还可以生成各种图形化界面以方便用户的调试工作。用户可以向调试工具200发出调试命令(例如,运行验证系统210到某个时刻),调试工具200则将该调试命令施加到仿真工具202以相应地执行。
可以理解的是,除了与仿真工具202连接,调试工具200还可以与硬件仿真器(emulator)连接。
图3A为本申请实施例的设计在测试过程中保存标记信息的时间逻辑示意图。
在一些实施例中,标记信息可以是执行测试过程的进程(thread)在给定的时刻在内存中的数据的副本。例如,调试工具200可以在给定时刻将进程在内存中的数据中进行复制,将复制结果存储在数据库中,进而完成对标记信息的抓取过程。在一些实施例中,标记信息可以是进行设计的测试所需的一切数据,例如,设计的源代码、编译器的参数、设计在特定时刻的每个信号的输出等。因此,调试工具200可以根据标记信息将测试过程复原到上述给定时刻。
在对逻辑系统设计210进行测试之前,或者在该逻辑系统设计210测试过程中,用户可以观察设计210在兴趣点3024处的运行(例如,信号304的波形)。兴趣点3024可以是沿着设计210的运行时间在时间轴上的某个时间点,也可以是设计210的源代码中的某个位置。在一些实施例中,兴趣点3024是设计210在运行过程中的报错点。在一些实施例中,兴趣点3024是由用户指定的。例如,用户指定要观察某一行代码的运行,那么可以在调试工具200中将该一行代码设置为兴趣点3024。又例如,用户可以指定要观察某个时间点的波形,那么这个时间点就可以被设置为兴趣点3024。
用户可以根据实际需要设定一个或多个兴趣点3024。例如,测试过程中筛选出来的测试报错点可能存在一个或多个,这些报错点都可以被设置为兴趣点3024。
如上所述,如何降低回溯测试所需的标记信息3023而不降低用户体验是一个亟待解决的问题。为了解决这一问题,在本申请中,逻辑系统设计210的测试过程按时间被划分为多个测试段。针对不同的测试段设置不同的标记信息的密度,从而降低回溯测试所需的标记信息。
如图3A所示,逻辑系统设计210的测试过程可以包括多个测试段302A。在一些实施例中,为了方便说明,多个测试段302A可以包括一个目标测试段302a1和多个非目标测试段302a2。目标测试段302a1是指包含了兴趣点3024的一个测试段。在一些实施例中,目标测试段302a1是以兴趣点3024为中心的一段时间期间。
在一些实施例中,多个测试段可以是具有相同时间长度的测试段。
可以理解的是,在另一些实施例中,根据技术实现的方式不同,多个测试段可以是具有不同时间长度的测试段。例如,测试段可以具有相同的波形数据量,但是在时间长度上不同。
本申请在此给出两种确定目标测试段302a1的方式。
在一些实施例中,测试过程可以被预先划分为多个测试段302A。对于测试段中包含兴趣点3024的测试段,调试工具200可以将该测试段设置为目标测试段302a1。
在一些实施例中,在调试工具200执行逻辑系统设计210的测试过程中,当该测试进行至一个兴趣点3024时,调试工具200以该兴趣点3024为中心创建一个目标测试段302a1。当测试结束时,整个测试可能包含一个或多个目标测试段302a1。对于测试中其他测试段,调试工具200则可以将它们设置为非目标测试段302a2。
调试工具200可以按照密度较高的第一保存密度3021对该目标测试段302a1的多个标记信息3023进行保存,保存至用于存储标记信息3023的数据库中。该数据库可以存储在存储器104内。当该测试进行至非目标测试段302a2时,调试工具200可以按照密度较低的第二保存密度3022对非目标测试段302a2的标记信息3023进行保存,同样也是保存至数据库中。
在本申请实施例的背景下,保存密度是指单位时间长度内保存的标记信息的数量。例如,在1分钟的仿真测试的时间长度内保存了10个标记信息,此时的保存密度可以是10标记信息/分钟。可以理解的是,单位时间长度可以根据具体技术实现方式而不同,上述示例不作为限定。保存密度越高意味着单位时间长度内保存的标记信息的数量越多,保存密度越低意味着单位时间长度内保存的标记信息的数量越少。
在一些实施例中,调试工具200中存储有对应目标测试段302a1的第一保存密度3021,以及对应非目标测试段302a2的第二保存密度3022。
图3B为本申请实施例的存储标记信息的过程的示意图。
如图3B所示,在逻辑系统设计210的第一次测试过程310中,在触及兴趣点3024之前,调试工具200可以按照第二保存密度3022保存测试的标记信息3023。
当调试工具200触及兴趣点3024时,调试工具200可以记录到达该兴趣点3024的时间点,进而确定包含该时间点的测试段为目标测试段302a1。同时,取决于目标测试段302a1如何被确定(上文提供了2种示例性的方式),调试工具200可以确定目标测试段302a1的开始和结束的时间点。
在一些实施例中,当测试段是以数据量为衡量标准时,目标测试段可以是以兴趣点为起点产生给定数据量的一段时间。可以理解的是,目标测试段的确定方式可以取决于测试段的定义而有所不同,本申请在此仅给出2种示例,本领域技术人员可以根据技术方案而具体定义并实现。
由于此时逻辑系统设计210的测试刚刚运行到该兴趣点3024,所以调试工具200可以继续运行逻辑系统设计210的测试,并且从该兴趣点3024的时间点开始到目标测试段302a1的结束,调试工具200可以按第一保存密度3021保存标记信息3023。
当第一次测试过程310运行结束,从该兴趣点3024开始到目标测试段302a1的结束之间的标记信息3023得到保存。但是从目标测试段302a1的开始到兴趣点3024之间的标记信息3023尚未保存。
因此,调试工具200需要对设计210进行第二次测试过程320以获取额外的标记信息3023。
在一些实施例中,在第二次测试过程320中,调试工具200可以从目标测试段302a1的上一个测试段的标记信息重新开始测试。可以理解的是,只要能确保目标测试段302a1的开始被覆盖,从何处开始第二次测试过程并不做限定。
当测试到达目标测试段302a1的开始时,调试工具200按照第一保存密度3021从目标测试段302a1的开始到兴趣点3024的时间点之间抓取多个标记信息3023。
最后将两次抓取的多个标记信息3023一起打包发送至存储器104的数据库中进行存储。
图3C为本申请实施例的存储标记信息的又一过程的示意图。
如图3C所示,调试工具200在进行对逻辑系统设计210进行测试时,按照第一保存密度3021抓取并保存测试的多个标记信息3023。此时,保存标记信息的密度较高。
伴随着测试的进行,调试工具200会到达兴趣点3024并且确定相应的目标测试段302a1的范围。相应地,非目标测试段302a2也可以被确定。
因此,当调试工具200完成对逻辑系统设计210的测试时,调试工具200可以保留目标测试段302a1的范围内的标记信息3023,从而使得目标测试段302a1依然是按第一保存密度3021来记录标记信息。同时,调试工具200可以对非目标测试段302a2内的标记信息进行删除,从而降低非目标测试段302a2的保存密度为第二保密密度3022。
上述两种保存方式,第一种在测试过程中,需要重复测试过程,这种标记信息3023的存储方式需要消耗的时间较长,但是占用存储单元330的存储空间相对较少。第二种在测试过程中,由于预先要按照密度较高的第一保存密度3021进行存储,需要占用的存储单元330的存储空间相对较多,但是无需重复测试,消耗的时间相对较短。
因此,如果用户测试的逻辑系统设计210对时间没有要求,对应的存储单元330的存储空间较少,可以采用第一种方式;如果用户测试的逻辑系统设计210时间要求比较急,对应的存储单元330的存储空间较大,可以采用第二种方式;如果用户测试的逻辑系统设计210对时间没有要求,并且对应的存储单元330的存储空间较大,可以从第一种方式和第二种方式中任选。
图3D为本申请实施例的回溯测试设计的示意图。
如图3D所示,基于上述过程,多个标记信息3023保存完成之后,调试工具200可以获知各个标记信息3023的内容,也就可以利用这些标记信息3023进行回溯测试。
在一些实施例中,用户可以经由调试工具200输入想要重现测试的给定位置342(例如,代码行或某个时间点或从保存的多个标记信息3023中选定的目标标记信息)。也就是说,给定位置342可能与标记信息重叠或不重叠。通过在给定位置342处重现测试,用户可以重点观察逻辑系统设计210在给定位置342的运行,包括各个信号的值以及变化,从而有助于用户对逻辑系统设计210进行调试。
调试工具200可以根据该给定位置342确定与给定位置342对应的目标标记信息。该对应的目标标记信息可以是相对于给定位置342的在先标记信息344。在一些实施例中,在先标记信息344是离给定位置342最近的在先标记。这样,调试工具200可以获取该在先标记信息344并且根据在先标记信息344来恢复逻辑系统设计210的测试,并将逻辑系统设计210的测试运行到给定位置342。由于在先标记信息344是离给定位置342最近的标记信息,调试工具200在恢复测试到与该在线标记信息344对应的位置后,仅需要继续执行测试很短的一段时间就可以到达用户的给定位置342。这样,用户仅需要等待极少的时间就可以获得到自己指定的调试场景,可以改善用户体验。
其中,若用户从保存的多个标记信息3023中选定目标标记信息,则可以直接获取该目标标记信息并且根据该目标标记信息来恢复逻辑系统设计210的测试,并将逻辑系统设计210的测试运行到给定位置342。
通常,用户更加经常回溯测试到兴趣点(例如,报错点或自己指定的点)附近去进行调试,也就是用户更加容易去访问目标测试段,而不会经常访问非目标测试段。由于在本申请中在目标测试段的标记信息的保存密度较高,这样使得回溯测试可以快速运行到用户的给定位置,从而减少用户等待测试运行时间,改善用户体验。同时,由于非目标测试段的标记信息的保存密度较低,可以减少对存储空间的要求,降低对计算系统的要求,为用户节约成本。
在一些实施例中,调试工具200可以利用人工智能/机器学习来确定要获取标记信息3023的位置和密度。在上面的示例中,要获取标记信息3023的位置和密度是事先按固定的规则确定的。由于一个逻辑系统设计210的调试是需要反复进行的,用户会在多次调试中多次给出给定位置,要求调试工具200运行逻辑系统设计210到这些给定位置。因此,调试工具200可以在反复的调试中获取当前逻辑系统设计210的给定位置的分布,从而可以根据给定位置在多次调试中的分布来预测下一次调试中给定位置的分布并且增加预测的给定位置的附近的保存密度。
因此,调试工具200可以根据多次测试中涉及的逻辑系统设计210的描述以及用户给出的给定位置的分布来训练神经网络模型。这样,当一个逻辑系统设计210在前一次测试中被更新后,调试工具200可以根据更新的逻辑系统设计210的描述以及已训练的神经网络模型来预测在当前测试中该更新的逻辑系统设计210的给定位置的分布,并且根据预测的给定位置的分布来确定要获取的标记信息的位置和密度。
在一些实施例中,报错点与错误的根本原因可能并不相同。也就是说,与报错点对应的标记信息可能无法起到快速复原调试场景的作用。也就是说,用户很可能会反复地回溯到错误的根本原因而非报错点。为了解决这个问题,调试工具200可以利用神经网络模型根据报错点来预测错误的根本原因。相应地,调试工具200可以保存与预测的根本原因对应的多个标记信息。在一些实施例中,这些多个标记信息位于非目标测试段中。
这样,利用人工智能/机器学习,调试工具200可以更加智能地保存标记信息,进一步优化用户体验。
本申请实施例还提供了一种测试设计的方法,能够将用户关注的目标测试段的多个标记信息按照较高的密度保存,以便更加精确的进行回溯测试,进而准确快速地找出故障位置。
图4示出了本申请实施例所提供的一种测试设计的示例性方法400的流程示意图。方法300可以由图1的电子设备100执行,更具体地,由在电子设备100上运行的调试工具200执行。方法400可以包括如下步骤。
在步骤401,调试工具200可以执行所述设计(例如,图2中的210)的测试。所述测试包括多个测试段(例如,如3A中的302A),所述多个测试段包括一个目标测试段(例如,图3A中的302a1)和多个非目标测试段(例如,图3A中的302a2)。调试工具200可以指示仿真工具202对设计进行仿真并获取仿真结果(例如,波形等)。
在一些实施例中,所述目标测试段包括一个兴趣点(例如,图3A中的3024),所述兴趣点包括用户设置的观察点或测试报错点。用户可以根据实际需要设定一个或多个观察点,并且测试过程中筛选出来的测试报错点可能存在一个或多个。
在步骤402,调试工具200可以在所述测试过程中获取多个标记信息(例如,图3A中的3023)。
在一些实施例中,所述标记信息包括:在与所述标记信息对应的时刻执行所述测试的进程在内存中的数据的副本,将得到的数据的副本进行存储。
在步骤403,调试工具200可以根据给定保存密度保存所述多个标记信息用于回溯所述测试。保存密度是指单位时间长度内保存的标记信息的数量。给定保存密度可以包括第一保存密度和第二保存密度。
在一些实施例中,响应于所述测试进行至目标测试段,调试工具200可以按照第一保存密度(例如,图3A中的3021)将所述目标测试段内的多个标记信息保存,并可以按照所述第二保存密度(例如,图3A中的3022)将所述多个非目标测试段内的多个标记信息保存。所述第一保存密度高于所述第二保存密度。例如,设定第一保存密度为10个标记信息/给定时间段,第二保存密度为5个标记信息/给定时间段。给定时间段可以是一个测试段的时间长度。
在本申请中,给出了2种示例性的保存标记信息的方式。
在第一实施例中,响应于所述测试到达所述兴趣点,调试工具200可以确定到达所述兴趣点的时间点,并且确定包含所述时间点的测试段为所述目标测试段。调试工具200可以按照所述第一保存密度将所述时间点到所述目标测试段的结束之间多个标记信息保存(例如,保存到图1的存储器104)。然后,调试工具200可以重新测试所述设计以按照所述第一保存密度将所述目标测试段的开始到所述时间点之间多个标记信息保存。
在第二实施例中,在测试的过程中,调试工具200可以按照所述第一保存密度保存一个测试段中的多个标记信息。调试工具200可以确定所述测试段中是否存在所述兴趣点。响应于确定所述测试段中不存在所述兴趣点,调试工具200可以删除保存的多个标记信息中的一部分以使得所述测试段的保存密度降低为所述第二保存密度。
在一些实施例中,调试工具200可以接收从给定位置(例如,图3D中的342)重现所述测试的指令;在所述数据库中的多个标记信息中确定与所述给定位置对应的目标标记信息(例如,图3D中的344)。在一些实施例中,所述目标标记信息是离所述给定位置最近的在先标记信息。调试工具200可以获取该目标标记信息中存储的对应的数据的副本,恢复该数据的副本对应的测试,并在所述给定位置处暂停所述测试。
在一些实施例中,调试工具200可以获取所述设计;获取用户测试所述设计时提供的多个给定位置;以及基于所述设计的修改和所述多个给定位置训练神经网络模型。
在一些实施例中,调试工具200可以接收待检测的设计;将所述待检测的设计输入至所述神经网络模型以及获得多个预测的位置;根据所述多个预测的位置确定一个或多个目标测试段。然后再对这些目标测试段按照上述过程,为该目标测试段的多个标记信息按照密度较高的第一保存密度进行保存。
在步骤404,调试工具200可以基于所述多个标记信息回溯所述测试。
本申请实施例提供的测试设计的方法,在设计执行测试过程中,会将用户关注的目标测试段内的多个标记信息按照密度较高的第一保存密度进行保存,将不是用户关注的多个非目标测试段内的多个标记信息按照密度较低的第二保存密度进行保存,这样由于用户关注的目标测试段保存的标记信息数量较多,使得用户能够基于这些标记信息更加精确的进行回溯测试,进而准确快速地找出故障位置进行修改,提高测试效率。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种测试设计的方法,包括:
执行所述设计的测试,所述测试包括多个测试段,所述多个测试段包括一个目标测试段和多个非目标测试段;
在所述测试过程中获取多个标记信息;
根据给定保存密度保存所述多个标记信息用于回溯所述测试,保存密度是指单位时间长度内保存的标记信息的数量;以及
基于所述多个标记信息回溯所述测试,其中,
根据给定保存密度保存多个标记信息用于回溯所述测试进一步包括:
响应于所述测试进行至目标测试段,按照第一保存密度将所述目标测试段内的多个标记信息保存;以及
按照第二保存密度将所述多个非目标测试段内的多个标记信息保存,所述第一保存密度高于所述第二保存密度。
2.根据权利要求1所述的方法,其中,所述目标测试段包括一个兴趣点,所述兴趣点包括用户设置的观察点或测试报错点。
3.根据权利要求2所述的方法,其中,保存所述多个标记信息用于回溯所述测试进一步包括:
响应于所述测试到达所述兴趣点,确定到达所述兴趣点的时间点;
确定包含所述时间点的测试段为所述目标测试段;
按照所述第一保存密度抓取所述时间点到所述目标测试段的结束之间多个标记信息保存;
重新测试所述设计以按照所述第一保存密度抓取所述目标测试段的开始到所述时间点之间多个标记信息保存。
4.根据权利要求2所述的方法,其中,保存所述多个标记信息用于回溯所述测试还包括:
按照所述第一保存密度抓取并保存一个测试段中的多个标记信息;
确定所述测试段中是否存在所述兴趣点;
响应于确定所述测试段中不存在所述兴趣点,删除保存的多个标记信息中的一部分以使得所述测试段的保存密度降低为所述第二保存密度。
5.根据权利要求1所述的方法,其中,所述标记信息包括:在与所述标记信息对应的时刻执行所述测试的进程在内存中的数据的副本。
6.根据权利要求1所述的方法,还包括:
接收从给定位置重现所述测试的指令;
在保存的多个标记信息中确定与所述给定位置对应的目标标记信息;
载入所述目标标记信息以恢复所述测试;以及
在所述给定位置处暂停所述测试。
7.根据权利要求6所述的方法,还包括:
获取所述设计;
获取用户测试所述设计时提供的多个给定位置;以及
基于所述设计的修改和所述多个给定位置训练神经网络模型。
8.根据权利要求7所述的方法,还包括:
接收待检测的设计;
将所述待检测的设计输入至所述神经网络模型以及获得多个预测的位置;
根据所述多个预测的位置确定一个或多个目标测试段。
9.一种电子设备,包括:
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行该组指令以进行如权利要求1至8任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行权利要求1至8任意一项所述的方法。
CN202211651842.4A 2021-12-27 2022-12-21 测试设计的方法、电子设备及存储介质 Active CN116069629B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021116149919 2021-12-27
CN202111614991.9A CN114546822A (zh) 2021-12-27 2021-12-27 测试设计的方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116069629A CN116069629A (zh) 2023-05-05
CN116069629B true CN116069629B (zh) 2023-10-17

Family

ID=81669078

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111614991.9A Withdrawn CN114546822A (zh) 2021-12-27 2021-12-27 测试设计的方法、电子设备及存储介质
CN202211651842.4A Active CN116069629B (zh) 2021-12-27 2022-12-21 测试设计的方法、电子设备及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111614991.9A Withdrawn CN114546822A (zh) 2021-12-27 2021-12-27 测试设计的方法、电子设备及存储介质

Country Status (1)

Country Link
CN (2) CN114546822A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3553681A1 (en) * 2018-04-12 2019-10-16 Optima Design Automation Ltd Method and apparatus for error test coverage determination for a circuit by simulation
CN112015665A (zh) * 2020-09-30 2020-12-01 北京百度网讯科技有限公司 测试验证的回溯方法、装置、电子设备及存储介质
CN112015655A (zh) * 2020-09-01 2020-12-01 中国银行股份有限公司 测试案例的分配方法、装置、设备及可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834364B2 (en) * 2001-04-19 2004-12-21 Agilent Technologies, Inc. Algorithmically programmable memory tester with breakpoint trigger, error jamming and 'scope mode that memorizes target sequences
US7546585B2 (en) * 2005-01-24 2009-06-09 International Business Machines Corporation Method, system and computer program product for testing computer programs
US9535818B2 (en) * 2012-10-16 2017-01-03 Microsoft Technology Licensing, Llc Identifying high impact bugs
CN109471793B (zh) * 2018-09-29 2021-08-13 天津大学 一种基于深度学习的网页自动化测试缺陷定位方法
CN110515854B (zh) * 2019-08-30 2023-08-11 网易(杭州)网络有限公司 应用程序异常的复现方法、装置和电子设备
CN110647473A (zh) * 2019-09-29 2020-01-03 江苏满运软件科技有限公司 自动化回归测试的抗干扰方法、装置、计算机设备及存储介质
CN112181853A (zh) * 2020-10-28 2021-01-05 上海豹云网络信息服务有限公司 程序调试方法、装置及系统
CN112783781B (zh) * 2021-01-28 2024-06-04 网易(杭州)网络有限公司 游戏测试方法、装置、电子设备及存储介质
CN113468058B (zh) * 2021-07-09 2024-05-03 深圳希施玛数据科技有限公司 软件即服务平台的回归测试方法、装置及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3553681A1 (en) * 2018-04-12 2019-10-16 Optima Design Automation Ltd Method and apparatus for error test coverage determination for a circuit by simulation
CN112015655A (zh) * 2020-09-01 2020-12-01 中国银行股份有限公司 测试案例的分配方法、装置、设备及可读存储介质
CN112015665A (zh) * 2020-09-30 2020-12-01 北京百度网讯科技有限公司 测试验证的回溯方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114546822A (zh) 2022-05-27
CN116069629A (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN114662427B (zh) 一种逻辑系统设计的调试方法及设备
CN107562610A (zh) 获取页面加载时间的方法、装置、终端和介质
US20190018917A1 (en) Hybrid timing analysis method and associated system and non-transitory computer readable medium
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
US20090125290A1 (en) Automatic verification of device models
US20140214396A1 (en) Specification properties creation for a visual model of a system
US20110185332A1 (en) Model based simulation and optimization methodology for design checking
US11635462B2 (en) Library cell modeling for transistor-level test pattern generation
KR101422212B1 (ko) 시험 패턴 생성 장치, 시험 프로그램 생성 장치, 생성 방법, 프로그램 및 시험 장치
CN112597064A (zh) 对程序进行仿真的方法、电子设备及存储介质
JP2002099584A (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
CN109783837A (zh) 仿真设备、仿真系统、仿真方法和仿真程序
CN113742221A (zh) 生成测试用例的方法、电子设备及存储介质
US10929584B1 (en) Environmental modification testing for design correctness with formal verification
US8938646B2 (en) Mutations on input for test generation
CN116069629B (zh) 测试设计的方法、电子设备及存储介质
CN117094269A (zh) 一种验证方法、装置、电子设备及可读存储介质
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
CN115470125B (zh) 基于日志文件的调试方法、设备以及存储介质
CN114328062B (zh) 校验缓存一致性的方法、装置和存储介质
CN110866370A (zh) 一种电路可靠性逻辑仿真方法、装置、设备及存储介质
CN115827636A (zh) 存储及从波形数据库读取逻辑系统设计的仿真数据的方法
US9946624B1 (en) Systems and methods to capture data signals from a dynamic circuit
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
Langner et al. Framework for using real driving data in automotive feature development and validation

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
GR01 Patent grant
GR01 Patent grant