CN112015665B - 测试验证的回溯方法、装置、电子设备及存储介质 - Google Patents
测试验证的回溯方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112015665B CN112015665B CN202011062300.4A CN202011062300A CN112015665B CN 112015665 B CN112015665 B CN 112015665B CN 202011062300 A CN202011062300 A CN 202011062300A CN 112015665 B CN112015665 B CN 112015665B
- Authority
- CN
- China
- Prior art keywords
- simulation
- simulation state
- test case
- backtracking
- state
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了测试验证的回溯方法、装置、电子设备及存储介质,涉及人工智能、深度学习、智能芯片处理等领域。具体实现方案为:加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。采用本申请,可以及时回溯测试用例出现错误的位置及出错情况,以便于及时纠错,并提高测试验证的处理效率。
Description
技术领域
本申请涉及人工智能领域。本申请尤其涉及深度学习、智能芯片处理等领域。
背景技术
就测试而言,一方面,软件由数据和程序构成,一款软件在正式面向市场使用之前需要预先进行代码测试,可以采用测试用例来进行测试验证;另一方面,随着设计芯片规模的增加,芯片的验证工作显得越来越重要,在大规模芯片设计的验证工作中,也要预先对芯片中各个处理逻辑的运行代码进行代码测试,也可以采用测试用例来进行测试验证。其中,测试用例是为了验证测试项目的功能或者性能而编写一系列的代码,以完成测试功能或测试性能。测试用例是否准确,对后续实际运行该软件具备指导意义。
目前的测试验证中,是将测试用例中所有异常报错的错误事件都找到后再去查找测试用例中报错的位置及情况,导致占用了大量的时间,且测试验证的处理效率低下。
发明内容
本申请提供了一种测试验证的回溯方法、装置、电子设备及存储介质。
根据本申请的一方面,提供了一种测试验证的回溯方法,包括:
加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;
在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;
根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。
根据本申请的另一方面,提供了一种测试验证的回溯装置,包括:
运行模块,用于加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;
上报接收模块,用于在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;
检测模块,用于根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本申请任意一实施例所提供的方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行本申请任意一项实施例所提供的方法。
根据本申请的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
采用本申请,可以加载验证环境,在验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果,在预设步长所指定的仿真时间内,通过仿真工具接收到该测试用例运行中的错误上报事件。根据错误上报事件触发回溯处理,以检测出该测试用例的出错情况。由于是在接收到该测试用例运行中的错误上报事件即可触发回溯处理,因此,可以及时回溯测试用例出现错误的位置及出错情况,以便于及时纠错,并提高测试验证的处理效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的测试验证的回溯方法的流程示意图;
图2是根据本申请实施例一应用示例的回溯运行过程的示意图;
图3是报错的测试用例自动回溯运行过程的示意图;
图4是根据本申请实施例的测试验证的回溯装置的组成结构示意图;
图5是用来实现本申请实施例的测试验证的回溯方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。本文中术语“第一”、“第二”表示指代多个类似的技术用语并对其进行区分,并不是限定顺序的意思,或者限定只有两个的意思,例如,第一特征和第二特征,是指代有两类/两个特征,第一特征可以为一个或多个,第二特征也可以为一个或多个。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
针对芯片设计的验证工作场景而言,随着设计芯片规模的增加,芯片的验证工作显得越来越重要。在大规模芯片设计的验证工作中,经常涉及到运行时间超长的测试用例。一种测试用例的回溯方法,主要是基于验证仿真用例的运行结果进行用例的回溯,是需要测试用例的运行全部执行结束之后进行回溯处理,以及需要开启所有用于定位测试用例报错问题的程序除错(debug)调试信息的开关,以进行报错定位及错误情况分析,包括如下内容:
一、对各测试用例的运行结果进行判断,找出运行出错的测试用例以用于上述回溯处理。
二、在测试用例回溯之前,预先将验证测试用例运行过程中必要的debug调试信息的开关打开,以确保回溯后的测试用例运行结果所提供的信息,足够定位之前测试用例所发现的问题。
三、带着相同的随机化种子(如测试用例报错)和足够详细的debug信息,重新运行需要回溯的测试用例。
上述测试用例的回溯方法具有如下缺点:
1、测试用例是否需要回溯,需要根据测试用例运行结果判定,而实际上测试用例运行过程中如果出错,即可判定测试用例需要回溯,因此,基于测试用例的全部运行结果结束后再回溯的该方法,在判定测试用例是否需要回溯方面是不及时的。
2、回溯用例的过程中,为了完全复现错误场景,需要从头开始运行出错用例,势必浪费大量的工作时间,以及相关的验证资源,因此,基于测试用例的全部运行结果结束后再回溯的该方法,回溯测试用例的过程是耗时的。
3、回溯用例的过程中,为了确保回溯结果提供的信息能够确保定位相应的错误问题,需要打开所有的debug调试信息的开关,因此,回溯的过程会比之前运行测试用例的过程要慢的多,可是只有在报错的运行时间点附近的debug调试信息才真正对定位问题有用,因此,基于测试用例的全部运行结果结束后再回溯的该方法,回溯测试用例的过程是低效的。
综上所述,对于这类运行时间超长的测试用例,本身就运行时间长,导致运行效率低下,采用上述测试用例的回溯方法,需要等待基于测试用例的全部运行结果结束后再回溯并找出错误情况,以及需要打开所有的debug调试信息的开关才可以定位问题,导致效率更为低下。
在芯片设计中,对于这类运行时间超长的测试用例的芯片验证场景,需要一套高效的、自动化的自动回溯方法,对于提升验证工作效率,加速验证收敛来说显得尤为重要。采用本申请,可以在测试用例上报出错附近就开始执行回溯,无需等到基于测试用例的全部运行结果都执行完毕才回溯,且无需打开所有的debug调试信息的开关,可以加速定位芯片验证中运行时间超长的测试用例的问题,可以节省验证测试用例的回溯时间,节省各种验证资源,比如采用仿真工具进行验证时所占用该仿真工具的使用时间、在测试终端、测试服务器、测试平台上运行该仿真工具所占用的使用时间等等。
根据本申请的实施例,提供了一种测试验证的回溯方法,图1是根据本申请实施例的测试验证的回溯方法的流程示意图,该方法可以应用于测试验证的回溯装置,例如,该装置可以部署于终端或服务器或其它处理设备执行的情况下,可以执行测试用例运行及验证、测试用例错误上报的回溯、检测测试用例出错情况等等。其中,终端可以为用户设备(UE,User Equipment)、移动设备、蜂窝电话、无绳电话、个人数字处理(PDA,PersonalDigital Assistant)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图1所示,该测试验证的回溯方法,包括:
S101、加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果。
S102、在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件。
一示例中,预设步长所指定的仿真时间可以设置为1000纳秒、2000纳秒或3000纳秒等,以在该仿真时间内设置至少一个仿真状态点,可以在至少一个仿真状态点所标识的位置采集对应的至少一个仿真状态。为了达到快速回溯的目的,可以至少同时保持两个仿真状态点及对应采集的两个仿真状态,以便在异常报错的运行时间点附近,以两个仿真状态点中的第一仿真状态点为起点,以第二仿真状态点为终点,对采集的两个仿真状态进行回溯,以便快速定位出异常报错的运行时间点及错误情况。
S103、根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。
一示例中,可以将回溯处理与debug调试信息相结合,以检测出测试用例的出错情况。具体的,可以获取对应测试用例的debug调试信息,该debug调试信息为用于验证该测试用例运行过程中异常发生位置的定位信息。可以通过打开debug调试信息的开关,来追踪测试用例中代码的运行流程,在代码运行过程中出现异常报错时,启用debug模式可以分析定位异常报错发生的位置,以及在代码运行过程中的参数变化。其中,在debug模式中可以打开所有的debug调试信息的开关,也可以只打开必需的debug调试信息的开关,由于在异常报错的运行时间点附近的debug调试信息才真正对定位错误的位置及错误情况有用,因此,在本示例中,回溯处理中,与异常报错的运行时间点附近的debug调试信息相结合,从而可以快速、准确的定位出错误的位置,最终检测出测试用例的出错情况。
采用本申请,可以加载验证环境,在验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果,在预设步长所指定的仿真时间内,通过仿真工具接收到该测试用例运行中的错误上报事件。根据错误上报事件触发回溯处理,以检测出该测试用例的出错情况。由于是在接收到该测试用例运行中的错误上报事件即可触发回溯处理,因此,可以及时回溯测试用例出现错误的位置及出错情况,以便于及时纠错,并提高测试验证的处理效率。
一示例中,该测试验证的回溯方法,可以应用于测试终端,则可以在测试终端上加载验证环境,在验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果,在预设步长所指定的仿真时间内,测试终端通过仿真工具接收到测试用例运行中的错误上报事件。测试终端根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。本申请不限于应用上述测试终端,还可以应用于测试服务器、测试平台等。
一实施方式中,还包括:每间隔所述预设步长所指定的仿真时间,在至少一个仿真状态点采集对应测试用例运行情况下的至少一个仿真状态,存储所述至少一个仿真状态。通过在回溯之前预先存储至少一个仿真状态,可以在执行回溯处理时直接重载该仿真状态,以便快速定位出异常报错的运行时间点及错误情况。
一实施方式中,还包括:触发所述回溯处理后,将所述至少一个仿真状态点作为所述回溯处理的处理节点,以便根据所述至少一个仿真状态点对应的至少一个仿真状态来执行回溯操作。比如,发现了错误上报事件之后,立即开始回溯,而回溯的起点是之前的仿真状态点,根据该仿真状态点采集的仿真状态来执行回溯操作,可以快速定位出异常报错的运行时间点及错误情况。
一实施方式中,还包括:在所述测试用例的当前运行环境中,检测当前同时保持的仿真状态;在所述预设步长所指定的仿真时间已经存储有第一仿真状态和第二仿真状态的情况下,存储当前采集的第三仿真状态,将所述第三仿真状态作为更新后的第二仿真状态并予以存储;删除早于所述第二仿真状态所采集的所述第一仿真状态,将所述第二仿真状态作为更新后的第一仿真状态并予以存储。通过保证当前运行的验证环境中至多同时保持两个仿真状态,再发现新的仿真状态时,可以删除已有两个仿真状态中最早创建的一个仿真状态,并更新仿真状态,从而可以保持在相对短的有效时间内进行回溯,可以据此重载回最新的仿真状态。
一实施方式中,所述根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况,包括:触发所述回溯处理之前,每间隔所述预设步长所指定的仿真时间存储对应仿真状态点的仿真状态。第一种情况:所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点中最早创建的第一仿真状态点,将所述第一仿真状态点作为所述回溯处理的起点,并重载回对应所述第一仿真状态点的第一仿真状态,以根据所述第一仿真状态执行所述回溯处理。第二种情况:仿真状态点为一个仿真状态点的情况下,退回初始状态,以根据所述初始状态从所述测试用例的起点开始从头执行所述回溯处理。一旦接收到该错误上报事件,则可以立即触发回溯处理,存在两个仿真状态的情况,回溯处理时可以重载最早创建的一个仿真状态;存在一个仿真状态的情况,回溯处理时退回初始状态。确保在无论哪种情况下都可以及时触发回溯并执行回溯处理,以快速定位出异常报错的运行时间点及错误情况。
一实施方式中,还包括:未接收到所述错误上报事件,每间隔所述预设步长所指定的仿真时间存储对应仿真状态点的仿真状态;所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点分别对应的两个仿真状态,删除所述两个仿真状态中最早创建的第一仿真状态点;所述仿真状态点为一个仿真状态点的情况下,存储在当前仿真状态点采集的当前仿真状态。未接收到该错误上报事件,则可以立即触发存储处理并对在仿真状态点采集到的对应仿真状态进行预先存储,以便于后续触发回溯,可以根据该仿真状态点和对应仿真状态执行回溯处理,以快速定位出异常报错的运行时间点及错误情况。
一示例中,针对出错用例,在接收上报的错误上报事件并及时回溯的处理过程中,可以利用仿真工具(simulator)和验证环境及时捕捉测试用例运行过程上报错误的事件,并根据错误上报的事件及时回溯当前用例,可以包括如下内容:
一、设置一个可配置的步长(step),step的单位是仿真时间(芯片验证环境中,仿真的时间单位通常是ms,us,ns或ps),根据该步长控制仿真工具每经过一个step的仿真时间,存储当前的仿真状态点(check point),在check point采集对应的仿真状态。并且保证当前运行的验证环境中,至多同时保持两个仿真状态,如果当前运行环境中已经保存了两个仿真状态,则在step仿真时间点存储当前仿真状态的同时,淘汰当前已存在的两个仿真状态中最早创建的那个仿真状态。
二、当仿真工具得到相应的仿真状态时,仿真工具可以无差别复现在check point所记录的仿真状态,并从check point所记录的仿真时间开始继续运行,不同的仿真工具提供的check point的记录格式会有所不同,check point的记录格式和重载方法需要根据不同的仿真工具分别设计。
三、可以采用统一的错误事件上报方式,比如可以在验证环境中构造一个专用的上报问题的函数或任务,在该函数或任务中提供一系列上报错误的各种选项,例如统一的上报内容格式,可替换的错误关键字等等。
四、可以将上述统一错误事件的上报,作为仿真工具运行回溯的触发条件,捕捉到该上报后立即触发回溯:即当上报问题的函数或任务被调用时,立即停止当前仿真的继续运行,接着重载上述步骤一中存储的两个仿真状态中比较早创建的那个仿真状态,重载该仿真状态之后,可以打开全部或必需的debug信息开关,然后带着debug信息,从重载该仿真状态的check point开始运行,直到运行完上述步骤一中定义的step仿真时间为止。
采用本示例,可以节省回溯用例的时间,如上述步骤一所指出的,自动回溯的芯片前端验证方法无需回溯用例从头开始运行,因为用例回溯是在当前用例运行过程中,发现了错误上报事件之后,立即开始回溯的,而回溯的起点是之前记录的用例运行状态,因此节省了用例复现所需要的运行时间。还可以实现高效的回溯,从而节省回溯用例使用的资源,如上述步骤一所指出的,自动回溯的芯片前端验证方法无需回溯用例从头开始运行,即使打开全部debug信息开关,也只是从出错的时间点附近开始回溯,因此不会如相关技术中“基于验证仿真用例的运行结果进行用例的回溯”的方法一样消耗过多的仿真资源。
应用示例:
图2是根据本申请实施例一应用示例的回溯运行过程的示意图,应用本申请实施例一处理流程,图3为报错的测试用例自动回溯运行过程的示意图如图2-图3所示,包括如下内容:
S201、运行step步长所指定的仿真时间,若达到仿真结束时间,则退出,否则跳转S202;
S202、若在step步长所指定的仿真时间内,出现错误上报,则跳转到步骤S203,否则跳转到步骤S206;
S203、若当前已经存储了之前的仿真状态,则重载最早创建的仿真状态或直接退回到仿真的初始状态;
S204、打开全部的debug信息;
S205、运行2倍step仿真时间后退出;
其中,如图3所示,对于回溯的错误用例,如图3中粗实线所示的错误位置,由于在回溯之前已经在step步长所指定的仿真时间内于至少两个仿真状态点采集了对应的至少两个仿真状态,该至少两个仿真状态在如图3中粗虚线所示的错误位置附近,则在接收到上报的错误事件后触发回溯,可以回溯到该已存储的该仿真状态,可以运行2倍step仿真时间后退出回溯处理过程。
S206、如果当前已经存储了两个仿真状态,则跳转到S207,否则跳转到步骤S208;
S207、淘汰最早创建的仿真状态;
S208、存储当前的仿真状态,跳转到上述步骤S201。
采用本应用示例,可以加速定位芯片验证中运行时间超长的错误用例的问题,节省错误用例的回溯时间,从而节省各种验证资源(如使用仿真工具license所占用的时间,服务器所占用的时间等等)。
根据本申请的实施例,提供了一种测试验证的回溯装置,图4是根据本申请实施例的测试验证的回溯装置的组成结构示意图,如图4所示,包括:运行模块41,用于加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;上报接收模块42,用于在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;检测模块43,用于根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况。
一实施方式中,所述检测模块,用于获取对应所述测试用例的debug调试信息,所述debug调试信息为用于验证所述测试用例运行过程中异常发生位置的定位信息;将所述回溯处理与所述debug调试信息相结合,以检测出所述测试用例的出错情况。
一实施方式中,还包括采集模块,用于每间隔所述预设步长所指定的仿真时间,在至少一个仿真状态点采集对应所述测试用例运行情况下的至少一个仿真状态;存储所述至少一个仿真状态。
一实施方式中,还包括节点获取模块,用于触发所述回溯处理后,将所述至少一个仿真状态点作为所述回溯处理的处理节点。
一实施方式中,还包括仿真状态更新模块,用于在所述测试用例的当前运行环境中,检测当前同时保持的仿真状态;在所述预设步长所指定的仿真时间已经存储有第一仿真状态和第二仿真状态的情况下,存储当前采集的第三仿真状态,将所述第三仿真状态作为更新后的第二仿真状态并予以存储;删除早于所述第二仿真状态所采集的所述第一仿真状态,将所述第二仿真状态作为更新后的第一仿真状态并予以存储。
一实施方式中,所述检测模块,用于触发所述回溯处理之前,每间隔所述预设步长所指定的仿真时间存储对应仿真状态点的仿真状态;所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点中最早创建的第一仿真状态点,将所述第一仿真状态点作为所述回溯处理的起点,并重载回对应所述第一仿真状态点的第一仿真状态,以根据所述第一仿真状态执行所述回溯处理;所述仿真状态点为一个仿真状态点的情况下,退回初始状态,以根据所述初始状态从所述测试用例的起点开始从头执行所述回溯处理。
一实施方式中,还包括存储状态更新模块,用于未接收到所述错误上报事件,每间隔所述预设步长所指定的仿真时间存储对应仿真状态点的仿真状态;所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点分别对应的两个仿真状态,删除所述两个仿真状态中最早创建的第一仿真状态点;所述仿真状态点为一个仿真状态点的情况下,存储在当前仿真状态点采集的当前仿真状态。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图5所示,是用来实现本申请实施例的测试验证的回溯方法的电子设备的框图。该电子设备可以为前述部署设备或代理设备。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的测试验证的回溯方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的测试验证的回溯方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的测试验证的回溯方法对应的程序指令/模块(例如,附图4所示的运行模块、上报接收模块、检测模块等模块)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的测试验证的回溯方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
测试验证的回溯方法的电子设备,还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
采用本申请,可以加载验证环境,在验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果,在预设步长所指定的仿真时间内,通过仿真工具接收到该测试用例运行中的错误上报事件。根据错误上报事件触发回溯处理,以检测出该测试用例的出错情况。由于是在接收到该测试用例运行中的错误上报事件即可触发回溯处理,因此,可以及时回溯测试用例出现错误的位置及出错情况,以便于及时纠错,并提高测试验证的处理效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种测试验证的回溯方法,所述方法包括:
加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;
在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;
根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况;
其中,所述根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况,包括:
获取对应所述测试用例的程序除错debug调试信息,所述debug调试信息为用于验证所述测试用例运行过程中异常发生位置的定位信息;
将所述回溯处理与异常报错的运行时间点附近的debug调试信息相结合,以检测出所述测试用例的出错情况;
所述方法还包括:
每间隔所述预设步长所指定的仿真时间,在至少一个仿真状态点采集对应所述测试用例运行情况下的至少一个仿真状态;
存储所述至少一个仿真状态;
触发所述回溯处理后,将所述至少一个仿真状态点作为所述回溯处理的处理节点。
2.根据权利要求1所述的方法,还包括:
在所述测试用例的当前运行环境中,检测当前同时保持的仿真状态;
在所述预设步长所指定的仿真时间已经存储有第一仿真状态和第二仿真状态的情况下,存储当前采集的第三仿真状态,将所述第三仿真状态作为更新后的第二仿真状态并予以存储;
删除早于所述第二仿真状态所采集的所述第一仿真状态,将所述第二仿真状态作为更新后的第一仿真状态并予以存储。
3.根据权利要求1所述的方法,还包括:
所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点中最早创建的第一仿真状态点,将所述第一仿真状态点作为所述回溯处理的起点,并重载回对应所述第一仿真状态点的第一仿真状态,以根据所述第一仿真状态执行所述回溯处理;
所述仿真状态点为一个仿真状态点的情况下,退回初始状态,以根据所述初始状态从所述测试用例的起点开始从头执行所述回溯处理。
4.根据权利要求1所述的方法,还包括:
未接收到所述错误上报事件,
所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点分别对应的两个仿真状态,删除所述两个仿真状态中最早创建的第一仿真状态点;
所述仿真状态点为一个仿真状态点的情况下,存储在当前仿真状态点采集的当前仿真状态。
5.一种测试验证的回溯装置,所述装置包括:
运行模块,用于加载验证环境,在所述验证环境上运行仿真工具,以仿真方式验证测试用例的运行结果;
上报接收模块,用于在预设步长所指定的仿真时间内,通过所述仿真工具接收到所述测试用例运行中的错误上报事件;
检测模块,用于根据错误上报事件触发回溯处理,以检测出所述测试用例的出错情况;
其中,所述检测模块,用于:
获取对应所述测试用例的程序除错debug调试信息,所述debug调试信息为用于验证所述测试用例运行过程中异常发生位置的定位信息;
将所述回溯处理与异常报错的运行时间点附近的debug调试信息相结合,以检测出所述测试用例的出错情况;
所述装置还包括采集模块,用于:
每间隔所述预设步长所指定的仿真时间,在至少一个仿真状态点采集对应所述测试用例运行情况下的至少一个仿真状态;
存储所述至少一个仿真状态;
所述装置还包括节点获取模块,用于:
触发所述回溯处理后,将所述至少一个仿真状态点作为所述回溯处理的处理节点。
6.根据权利要求5所述的装置,还包括仿真状态更新模块,用于:
在所述测试用例的当前运行环境中,检测当前同时保持的仿真状态;
在所述预设步长所指定的仿真时间已经存储有第一仿真状态和第二仿真状态的情况下,存储当前采集的第三仿真状态,将所述第三仿真状态作为更新后的第二仿真状态并予以存储;
删除早于所述第二仿真状态所采集的所述第一仿真状态,将所述第二仿真状态作为更新后的第一仿真状态并予以存储。
7.根据权利要求5所述的装置,其中,所述检测模块,还用于:
所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点中最早创建的第一仿真状态点,将所述第一仿真状态点作为所述回溯处理的起点,并重载回对应所述第一仿真状态点的第一仿真状态,以根据所述第一仿真状态执行所述回溯处理;
所述仿真状态点为一个仿真状态点的情况下,退回初始状态,以根据所述初始状态从所述测试用例的起点开始从头执行所述回溯处理。
8.根据权利要求5所述的装置,还包括存储状态更新模块,用于:
未接收到所述错误上报事件,
所述仿真状态点为两个仿真状态点的情况下,获取所述两个仿真状态点分别对应的两个仿真状态,删除所述两个仿真状态中最早创建的第一仿真状态点;
所述仿真状态点为一个仿真状态点的情况下,存储在当前仿真状态点采集的当前仿真状态。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062300.4A CN112015665B (zh) | 2020-09-30 | 2020-09-30 | 测试验证的回溯方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062300.4A CN112015665B (zh) | 2020-09-30 | 2020-09-30 | 测试验证的回溯方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015665A CN112015665A (zh) | 2020-12-01 |
CN112015665B true CN112015665B (zh) | 2023-04-11 |
Family
ID=73528120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011062300.4A Active CN112015665B (zh) | 2020-09-30 | 2020-09-30 | 测试验证的回溯方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015665B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312246B (zh) * | 2021-06-07 | 2023-04-11 | 海光信息技术股份有限公司 | 验证环境的控制方法、装置、平台、设备和存储介质 |
CN114546822A (zh) * | 2021-12-27 | 2022-05-27 | 芯华章科技股份有限公司 | 测试设计的方法、电子设备及存储介质 |
CN115510782B (zh) * | 2022-08-31 | 2024-04-26 | 芯华章科技股份有限公司 | 定位验证错误的方法、电子设备和存储介质 |
CN115620799A (zh) * | 2022-09-14 | 2023-01-17 | 得一微电子股份有限公司 | 基于固件仿真的故障现场回溯方法、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
JP2017062297A (ja) * | 2015-09-24 | 2017-03-30 | 株式会社東芝 | シミュレーション装置とそのモジュール、シミュレーション方法及びプログラム |
CN108491322A (zh) * | 2018-03-06 | 2018-09-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及存储介质 |
CN109974734A (zh) * | 2019-04-02 | 2019-07-05 | 百度在线网络技术(北京)有限公司 | 一种用于ar导航的事件上报方法、装置、终端及存储介质 |
-
2020
- 2020-09-30 CN CN202011062300.4A patent/CN112015665B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
JP2017062297A (ja) * | 2015-09-24 | 2017-03-30 | 株式会社東芝 | シミュレーション装置とそのモジュール、シミュレーション方法及びプログラム |
CN108491322A (zh) * | 2018-03-06 | 2018-09-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及存储介质 |
CN109974734A (zh) * | 2019-04-02 | 2019-07-05 | 百度在线网络技术(北京)有限公司 | 一种用于ar导航的事件上报方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
超宽带高速卷积译码器设计与实现;金英光等;《电子测量与仪器学报》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112015665A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015665B (zh) | 测试验证的回溯方法、装置、电子设备及存储介质 | |
US11307948B2 (en) | Fault injection method and apparatus, electronic device and storage medium | |
CN111666206B (zh) | 变更代码的影响范围的获取方法、装置、设备及存储介质 | |
US10592237B2 (en) | Efficient detection of architecture related bugs during the porting process | |
US10282276B2 (en) | Fingerprint-initiated trace extraction | |
CN111752843B (zh) | 用于确定影响面的方法、装置、电子设备及可读存储介质 | |
US9280451B2 (en) | Testing device | |
CN111858360B (zh) | 小程序测试方法、装置、设备及存储介质 | |
US9772924B2 (en) | Method and apparatus for finding bugs in computer program codes | |
KR102488582B1 (ko) | 애플리케이션 실행 상태 검증 방법 및 장치 | |
CN111984476A (zh) | 测试方法和装置 | |
CN111475164B (zh) | 组件依赖关系检测方法、装置以及电子设备 | |
CN111654495B (zh) | 用于确定流量产生来源的方法、装置、设备及存储介质 | |
KR101696694B1 (ko) | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 | |
CN115129573A (zh) | 程序运行的监控方法、装置、电子设备及存储介质 | |
US11249880B1 (en) | Debugging and simulating application runtime execution | |
CN111159023A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN114416578A (zh) | 测试方法和装置 | |
CN110737560B (zh) | 一种服务状态检测方法、装置、电子设备和介质 | |
CN111708653B (zh) | 内存故障处理方法、装置、电子设备和存储介质 | |
US20180260305A1 (en) | Unexpected Path Debugging | |
CN105912467A (zh) | 一种性能测试方法及装置 | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
US10884900B2 (en) | Intelligent processing of distributed breakpoints | |
CN110908701B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |