CN114546510B - 一种挂起功能的验证方法、装置、电子设备及存储介质 - Google Patents
一种挂起功能的验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114546510B CN114546510B CN202210438911.7A CN202210438911A CN114546510B CN 114546510 B CN114546510 B CN 114546510B CN 202210438911 A CN202210438911 A CN 202210438911A CN 114546510 B CN114546510 B CN 114546510B
- Authority
- CN
- China
- Prior art keywords
- suspend
- state machine
- algorithm
- device model
- simulation
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/3676—Test management for coverage analysis
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及非易失性存储器技术领域,具体公开了一种挂起功能的验证方法、装置、电子设备及存储介质,其中,验证方法包括以下步骤:根据需要验证的算法类型创建测试用例;针对器件模型重复仿真运行测试用例,并在仿真过程中随机发送挂起及恢复指令;获取器件模型执行挂起及恢复指令时的状态机组合;获取所有已出现的状态机组合在功能覆盖率仓中的占比;在占比达到预设阈值时结束仿真并根据仿真过程获取验证结果;该验证方法通过在仿真执行包含需要验证的算法的测试用例的过程中随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,无需创建复杂、繁多的测试用例,减少挂起功能验证的工作量。
Description
技术领域
本申请涉及非易失性存储器技术领域,具体而言,涉及一种挂起功能的验证方法、装置、电子设备及存储介质。
背景技术
挂起(suspend)指令是非易失性存储器的一种常见指令,但是要确保该功能正常,需要对芯片进行大量的专项验证。
现有对芯片的挂起功能的验证方法,普遍是通过在相应挂起功能可插入运行的算法中的每一个流程状态发送挂起指令,然后根据对应的状态跳转和算法操作获取的仿真结果来验证芯片挂起功能是否正常。
由于芯片中不同算法中涉及多个不同状态机的状态组合,在同一个算法中不同阶段(不同时刻)发送挂起指令也可能产生不同的状态跳转和算法操作,导致验证挂起功能的过程中需要将挂起指令的发送时机覆盖各种状态机的状态组合,现有技术一般是针对所有状态机组合情况设计多个包含挂起指令的测试方案逐步进行测试,该验证方式存在验证工作量大的缺陷,需要人为设定数量众多的测试用例,难以如期完成挂起功能的验证。
针对上述问题,目前尚未有有效的技术解决方案。
发明内容
本申请的目的在于提供一种挂起功能的验证方法、装置、电子设备及存储介质,以减少挂起功能验证的工作量。
第一方面,本申请提供了一种挂起功能的验证方法,用于验证挂起功能,所述方法包括以下步骤:
根据需要验证的算法类型创建测试用例;
针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令;
获取所述器件模型执行所述挂起及恢复指令时的状态机组合;
获取所有已出现的所述状态机组合在功能覆盖率仓中的占比,所述功能覆盖率仓包括预先建立的关于所述需要验证的算法类型对应的所有状态机切换的组合方式;
在所述占比达到预设阈值时结束仿真并根据所述仿真过程获取验证结果。
本申请的一种挂起功能的验证方法,通过在仿真执行包含需要验证的算法的测试用例的过程中随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
所述的一种挂起功能的验证方法,其中,所述针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令的步骤包括:
根据所述测试用例重复发送对应的算法指令给所述器件模型进行仿真操作;
在所述仿真操作的过程中,不断随机改变发送时间间隔地发送挂起及恢复指令给所述器件模型。
在该示例的验证方法中,将时间间隔改变为随机变量,使得发送挂起及恢复指令的时间变为不确定值,进而使得挂起及恢复指令的发送时间逐渐遍历整个算法执行过程,使得算法挂起行为出现在器件模型仿真执行测试用例的随机阶段中,即无需在测试用例中设置各种算法和挂起指令组合样式的逻辑,便能实现算法不同阶段的挂起操作。
所述的一种挂起功能的验证方法,其中,所述获取所述器件模型执行所述挂起及恢复指令时的状态机组合的步骤包括:
在所述器件模型即将执行挂起指令时,或在所述器件模型执行所述挂起指令时,或在所述器件模型执行了所述挂起指令且尚未执行恢复指令时,或在所述器件模型执行所述恢复指令时,或在所述器件模型执行所述恢复指令后,获取所述器件模型中的所述状态机组合。
所述的一种挂起功能的验证方法,其中,所述获取所有已出现的所述状态机组合在功能覆盖率仓中的占比的步骤包括:
获取所有已出现的所述状态机组合的集合;
获取所有已出现的所述状态机组合的集合与所述功能覆盖率仓的交集;
获取所述交集在所述功能覆盖率仓中的占比。
在该示例的验证方法中,该交集反应了已验证的测试点(即对应的状态机组合)在功能覆盖率仓的覆盖情况,获取交集在功能覆盖率仓中的占比能获知整个挂起功能的验证进程。
所述的一种挂起功能的验证方法,其中,发送所述挂起及恢复指令的挂起指令和恢复指令之间设有预设的时间间隔。
该示例的验证方法在挂起指令和恢复指令之间预设合适的时间间隔以重启算法执行以减少操作变量。
所述的一种挂起功能的验证方法,其中,所述状态机包括电压状态机,或包括电压状态机及算法状态机。
所述的一种挂起功能的验证方法,其中,所述测试用例为一个或多个。
该示例的验证方法能根据验证需求设计一个或多个包含一种算法或多种不同算法的测试用例来进行挂起功能的验证,确保挂起功能验证的完备性。
第二方面,本申请还提供了一种挂起功能的验证装置,用于验证挂起功能,所述装置包括:
用例模块,用于根据需要验证的算法类型创建测试用例;
仿真模块,用于针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令;
获取模块,用于获取所述器件模型执行所述挂起及恢复指令时的状态机组合;
计算模块,用于获取所有已出现的所述状态机组合在功能覆盖率仓中的占比,所述功能覆盖率仓包括预先建立的关于所述需要验证的算法类型对应的所有状态机切换的组合方式;
验证模块,用于在所述占比达到预设阈值时结束仿真并根据所述仿真过程获取验证结果。
本申请的一种挂起功能的验证装置,通过在仿真执行包含需要验证的算法的测试用例的过程中利用仿真模块随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
第三方面,本申请还提供了一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
由上可知,本申请提供了一种挂起功能的验证方法、装置、电子设备及存储介质,其中,验证方法无需设计包含挂起指令的各种测试用例来进行挂起功能的验证,仅通过在仿真执行包含需要验证的算法的测试用例的过程中随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,无需创建复杂、繁多的测试用例,也无需采用时钟逐个卡发挂起指令,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
附图说明
图1为本申请实施例提供的挂起功能的验证方法的流程图。
图2为本申请实施例提供的挂起功能的验证装置的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
图4为本申请实施例提供的一种三层状态机的时序图。
附图标记:201、用例模块;202、仿真模块;203、获取模块;204、计算模块;205、验证模块;301、处理器;302、存储器;303、通信总线。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有技术的验证方法一般是针对所有状态机组合情况设计多个包含挂起指令的测试方案逐步进行测试,由于挂起操作在状态机稳定的时候少有出错,因此,测试点主要集中在状态机进行切换的时机,即在状态机切换前后发送挂起指令进行挂起功能的验证,故该方法需要根据各个状态机组合情况在对应时机发送挂起指令,使得该测试方案中包含了大量时机判断条件,并需人工根据覆盖范围逐步设定并完善测试方案,导致人工工作量倍增,也有采用时钟卡发挂起指令的方式,但这种方式需按照等量的时钟周期发送挂起指令,遍布了整个算法执行过程,对于状态机稳定的情况仍会按照等量的时钟周期发送挂起指令,导致整个验证工作量倍增。
第一方面,请参照图1,图1是本申请一些实施例中的一种挂起功能的验证方法,用于验证挂起功能,方法包括以下步骤:
S1、根据需要验证的算法类型创建测试用例;
具体地,测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,本申请实施例挂起功能的验证方法主要用于验证挂起功能,故需要验证的算法类型为能与挂起功能组合使用的算法类型,如擦除算法(Erase)、编程算法(Program)等,验证挂起功能的过程实质上是验证芯片在执行这些能与挂起功能配合使用的算法的过程中,算法在挂起及恢复后是否能正常使用;在芯片正常执行使用这些算法操作的过程中,若能在任意阶段进行挂起及恢复操作(Suspend & Resume),则证明芯片的挂起功能正常。
更具体地,测试用例包含芯片可执行的算法且不包含挂起及恢复指令,使得在验证过程中,器件模型仅执行测试用例时不会挂起。
S2、针对器件模型重复仿真运行测试用例,并在仿真过程中随机发送挂起及恢复指令;
具体地,芯片的功能验证过程一般在验证平台中进行,即在验证平台中建立与芯片电路一致的器件模型,然后对器件模型进行仿真,验证器件模型各类功能是否能正常使用,从而实现芯片的功能验证。
具体地,挂起及恢复指令包括挂起指令和恢复指令,两者为配套使用的指令,器件模型在仿真运行测试用例的过程中执行挂起指令会暂停执行当前测试用例的算法,并在执行恢复指令后,继续执行该当前测试用例的算法;本申请实施例的验证方法旨在验证器件模型在执行不同算法的不同阶段时进行挂起是否会出现非正常状态。
更具体地,随机发送挂起及恢复指令指在仿真过程随机阶段随机发送挂起及恢复指令,一般按照随机时间间隔随机发送挂起及恢复指令。
更具体地,本申请实施例的测试用例包含一种或多种算法,验证过程主要是验证算法功能,而不考虑器件模型中存储单元的数据变化,如测试用例仅包含擦除算法时,步骤S2包括针对器件模型重复仿真运行擦除算法,并在仿真过程中随机发送挂起及恢复指令,该操作行为用于验证擦除算法在不同阶段进行挂起功能是否会出现非正常状态,而不考虑存储单元是否会产生过擦除问题。
S3、获取器件模型执行挂起及恢复指令时的状态机组合;
具体地,器件模型执行算法是由多层状态机组合实现的,不同状态机组合代表了器件模型执行对应算法的不同阶段,步骤S2在仿真过程中随机发送挂起及恢复指令的行为使得器件模型每次执行挂起及恢复指令时处于算法的随机阶段中,即对应有可能相同或可能不相同的状态机组合,不同的状态机组合对应了算法执行的不同阶段;在持续重复仿真过程中,执行挂起及恢复指令时的状态机组合的类别越来越多,状态机组合也越来越丰富。
S4、获取所有已出现的状态机组合在功能覆盖率仓中的占比,功能覆盖率仓包括预先建立的关于需要验证的算法类型对应的所有状态机切换的组合方式;
具体地,已出现的状态机组合为步骤S3获取的状态机组合,所有已出现的状态机组合表征了仿真过程中所有执行挂起及恢复指令的时机,即表征了所有算法执行至不同阶段与挂起功能的搭配情况。
具体地,验证功能需要根据验证需求或设计文档确定需要验证的测试点,在所有测试点均验证通过的情况下才能认为该功能验证通过;本申请实施例设计功能覆盖率仓,在本申请实施例中,测试点为执行算法中不同阶段的状态机的组合方式;由实际操作运行可知,芯片进行挂起行为时出错的时机主要集中在状态机切换的过程中,因此,本申请实施例的验证方法主要验证的是状态机切换过程进行的挂起是否正常,故功能覆盖率仓包括关于需要验证的算法类型对应的所有状态机切换的组合方式,即测试点对应于所有状态机切换的时机。
更具体地,状态机切换包括算法状态机即将进行切换及算法状态机刚好完成切换的情况,由实际经验可知,运行错误主要是在算法状态机的起始及结束阶段使用挂起功能产生的,算法状态机的起始及结束阶段对应于算法状态机完成切换和即将进行切换的状态,测试点覆盖这些阶段能更准确地验证挂起功能。
更具体地,功能覆盖率仓相当于预先建立的数据库,步骤S4获取的占比反映了已出现的状态机组合与功能覆盖率仓的重合情况,反映了已出现的状态机组合是否遍历功能覆盖率仓中所有状态机切换的组合方式。
S5、在占比达到预设阈值时结束仿真并根据仿真过程获取验证结果。
具体地,该占比反映了挂起功能发送时机对应的状态机组合在功能覆盖率仓中的覆盖程度,即占比越高表明已验证的测试点越多、越完善,在占比达到预设阈值时可认为挂起功能的验证范围符合设计需求,此时根据仿真过程输出对应的验证结果便能完成整个验证过程。
更具体地,根据仿真过程获取验证结果可以是根据仿真过程中的具体情况记录对应的挂起及恢复指令执行前后的状态机状态进行分析获取验证结果,也可以是根据仿真过程生成的日志文本(Log)提取关键词分析获取验证结果。
更具体地,预设阈值为根据验证需求预先设置的百分比值。
本申请实施例的一种挂起功能的验证方法,无需设计包含挂起指令的各种测试用例来进行挂起功能的验证,仅通过在仿真执行包含需要验证的算法的测试用例的过程中随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,无需创建复杂、繁多的测试用例,也无需采用时钟逐个卡发挂起指令,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
在一些优选的实施方式中,步骤S5包括:在占比达到100%时结束仿真并根据仿真过程获取验证结果,即步骤S4获取的所有已出现的状态机组合完全覆盖功能覆盖率仓时结束仿真并根据仿真过程获取验证结果。
具体地,当占比达到100%时,所有测试点均已被验证,即功能覆盖率仓中所有关于需要验证的算法类型对应的所有状态机切换的组合方式均已进行了挂起功能的验证,此时获取的验证结果能全面地准确地反映芯片的挂起功能是否能正常使用。
更具体地,挂起功能在芯片使用过程中使用较为频繁,且穿插在各类算法的执行过程中,因此需保证挂起功能验证全面,避免芯片正式使用时出错,故需要在占比达到100%时结束仿真并根据仿真过程获取验证结果。
在一些优选的实施方式中,针对器件模型重复仿真运行测试用例,并在仿真过程中随机发送挂起及恢复指令的步骤包括:
S21、根据测试用例重复发送对应的算法指令给器件模型进行仿真操作;
具体地,完整的算法指令包含操作指令(如擦除、编程或读取等)、操作地址,包含编程指令时还需包含数据信息等;在仿真操作过程中,按照时钟将算法指令发送给器件模型,由器件模型按照时钟模拟执行相关操作。
更具体地,由前述内容可知,器件模型与芯片电路编排一致,即为芯片电路的虚拟模型,可以是基于实际芯片电路进行建模或根据设计需求直接建模,其用途是仿真模拟芯片电路运行以验证该芯片电路相关功能是否存在缺陷、是否能达到项目预期。
S22、在仿真操作的过程中,不断随机改变发送时间间隔地发送挂起及恢复指令给器件模型。
具体地,在仿真操作的过程中,按照发送时间间隔地发送挂起及恢复指令给器件模型,能使器件模型在执行算法的过程中按照时间间隔挂起算法操作,在此基础上,将时间间隔改变为随机变量,使得发送挂起及恢复指令的时间变为不确定值,进而使得挂起及恢复指令的发送时间逐渐遍历整个算法执行过程,使得算法挂起行为出现在器件模型仿真执行测试用例的随机阶段中,即无需在测试用例中设置各种算法和挂起指令组合样式的逻辑,便能实现算法不同阶段的挂起操作。
更具体地,时间间隔具有可调范围值,随机改变后的时间间隔位于该可调范围值内,避免出现时间间隔小于时钟的一个频率或横跨多个算法流程这种对于功能验证无用的时间间隔出现。
更具体地,不断随机改变发送时间间隔指不断改变每两次发出挂起及恢复指令之间的时间间隔,在本申请实施例中,具体表现为在每次发出挂起及恢复指令后随机生成发送时间间隔,在经过该发送时间间隔后再次发出挂起及恢复指令。
在一些优选的实施方式中,获取器件模型执行挂起及恢复指令时的状态机组合的步骤包括:
在器件模型即将执行挂起指令时,或在器件模型执行挂起指令时,或在器件模型执行了挂起指令且尚未执行恢复指令时,或在器件模型执行恢复指令时,或在器件模型执行恢复指令后,获取器件模型中的状态机组合。
具体地,实际仿真过程中,在一个挂起及恢复指令操作过程中,上述各种情况获取的状态机组合均一致,可根据逻辑编译方法选用对应的获取手段,在本申请实施例中,优选为在器件模型执行挂起指令时,获取器件模型中的状态机组合。
在一些优选的实施方式中,获取所有已出现的状态机组合在功能覆盖率仓中的占比的步骤包括:
S41、获取所有已出现的状态机组合的集合;
具体地,该步骤包括将所有已出现的状态机组合整合,并去除重复的状态机组合,从而获取所有已出现的状态机组合的集合;该集合能反映出挂起功能已出现在算法执行过程中的哪些阶段。
S42、获取所有已出现的状态机组合的集合与功能覆盖率仓的交集;
具体地,由于挂起及恢复指令为随机发送的,因此,步骤S41获取的集合中存在并非需要测试的测试点,步骤S42求交集的处理方式能去除步骤S41获取的集合中多余的状态机组合。
S43、获取交集在功能覆盖率仓中的占比。
具体地,该交集反应了已验证的测试点(即对应的状态机组合)在功能覆盖率仓的覆盖情况,获取交集在功能覆盖率仓中的占比能获知整个挂起功能的验证进程。
在一些优选的实施方式中,发送挂起及恢复指令的挂起指令和恢复指令之间设有预设的时间间隔。
具体地,本申请实施例的验证方法旨在验证算法执行中的挂起功能,而挂起功能需在恢复指令生效后才能再次选择启用,故需要将挂起指令和恢复指令配套使用,且算法在挂起后会暂停运行,因此,在本申请实施例的验证方法中,挂起指令和恢复指令之间的时间间隔为非必要验证项,故在挂起指令和恢复指令之间预设合适的时间间隔以重启算法执行以减少操作变量。
在一些优选的实施方式中,状态机包括电压状态机,或包括电压状态机及算法状态机。
具体地,由前述内容可知,器件模型执行算法是由多层状态机组合实现的,根据状态机的层级分布,越底层的状态机的状态类型越多,对应于一个算法运行执行过程变化次数也更多,其中,最高层的状态机为算法状态机,其余状态机为电压状态机,状态机的切换为由底层开始逐层切换以延迟驱动高一层状态机进行切换的,本申请实施例的验证方法主要验证的是算法状态机切换的起始及结束阶段的挂起功能,因此,测试点为算法状态机切换前后的状态机组合,故可根据所有电压状态机组合确认算法状态机状态或直接根据电压状态机及算法状态机确认算法状态机状态,使得本申请实施例验证方法中状态机组合的状态机可以是包括电压状态机,还可以是包括电压状态机及算法状态机。
更具体地,在本申请实施例中,状态机优选为包括电压状态机及算法状态机,如图4所示,以一个三层状态机为例:
V_state为电压状态机,A_state为算法状态机,V_state_pre为V_state的副电压状态机,时钟clk用于控制状态机进行切换。
每个A_state算法状态机在各个阶段都会有一个或多个V_state状态机的状态;V_state电压状态机切换之前会由V_state_pre副电压状态机先切换,并在一个clk时钟周期后,V_state电压状态机再进行切换;A_state算法状态机在V_state电压状态机切换后经过一定时间再进行切换;因此,在该示例中,状态机切换组合为A_state算法状态机切换前且V_state电压状态机或V_state_pre副电压状态机完成切换时的V_state_pre、V_state及A_state的状态组合,如:V_state_pre 为state2、V_state 为state1'、A_state为state_a为一个状态机的切换组合,V_state_pre 为state2、V_state 为state2'、A_state为state_a也为一个状态机的切换组合。
在一些优选的实施方式中,测试用例为一个或多个。
具体地,挂起功能能用在多种算法中,因此,本申请实施例的验证方法能根据验证需求设计一个或多个包含一种算法或多种不同算法的测试用例来进行挂起功能的验证,确保挂起功能验证的完备性。
第二方面,请参照图2,图2是本申请一些实施例中提供的一种挂起功能的验证装置,用于验证挂起功能,装置包括:
用例模块201,用于根据需要验证的算法类型创建测试用例;
仿真模块202,用于针对器件模型重复仿真运行测试用例,并在仿真过程中随机发送挂起及恢复指令;
获取模块203,用于获取器件模型执行挂起及恢复指令时的状态机组合;
计算模块204,用于获取所有已出现的状态机组合在功能覆盖率仓中的占比,功能覆盖率仓包括预先建立的关于需要验证的算法类型对应的所有状态机切换的组合方式;
验证模块205,用于在占比达到预设阈值时结束仿真并根据仿真过程获取验证结果。
本申请实施例的一种挂起功能的验证装置,无需设计包含挂起指令的各种测试用例来进行挂起功能的验证,仅通过在仿真执行包含需要验证的算法的测试用例的过程中利用仿真模块202随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,无需创建复杂、繁多的测试用例,也无需采用时钟逐个卡发挂起指令,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
在一些优选的实施方式中,本申请实施例的挂起功能的验证装置用于执行上述第一方面提供的挂起功能的验证方法。
第三方面,请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,本申请提供一种电子设备,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当计算设备运行时,处理器301执行该计算机程序,以执行时执行上述实施例的任一可选的实现方式中的方法。
第四方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
综上,本申请实施例提供了一种挂起功能的验证方法、装置、电子设备及存储介质,其中,验证方法无需设计包含挂起指令的各种测试用例来进行挂起功能的验证,仅通过在仿真执行包含需要验证的算法的测试用例的过程中随机发送挂起及恢复指令方式,便可实现算法随机性阶段和挂起功能的搭配,从而实现不同算法执行阶段挂起功能的验证,无需创建复杂、繁多的测试用例,也无需采用时钟逐个卡发挂起指令,有效简化了整个挂起功能的验证手段,减少挂起功能验证的工作量。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种挂起功能的验证方法,用于验证挂起功能,其特征在于,所述方法包括以下步骤:
根据需要验证的算法类型创建测试用例;
针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令;
获取所述器件模型执行所述挂起及恢复指令时的状态机组合;
获取所有已出现的所述状态机组合在功能覆盖率仓中的占比,所述功能覆盖率仓包括预先建立的关于所述需要验证的算法类型对应的所有状态机切换的组合方式;
在所述占比达到预设阈值时结束仿真并根据所述仿真过程获取验证结果。
2.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,所述针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令的步骤包括:
根据所述测试用例重复发送对应的算法指令给所述器件模型进行仿真操作;
在所述仿真操作的过程中,不断随机改变发送时间间隔地发送挂起及恢复指令给所述器件模型。
3.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,所述获取所述器件模型执行所述挂起及恢复指令时的状态机组合的步骤包括:
在所述器件模型即将执行挂起指令时,或在所述器件模型执行所述挂起指令时,或在所述器件模型执行了所述挂起指令且尚未执行恢复指令时,或在所述器件模型执行所述恢复指令时,或在所述器件模型执行所述恢复指令后,获取所述器件模型中的所述状态机组合。
4.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,所述获取所有已出现的所述状态机组合在功能覆盖率仓中的占比的步骤包括:
获取所有已出现的所述状态机组合的集合;
获取所有已出现的所述状态机组合的集合与所述功能覆盖率仓的交集;
获取所述交集在所述功能覆盖率仓中的占比。
5.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,发送所述挂起及恢复指令的挂起指令和恢复指令之间设有预设的时间间隔。
6.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,所述状态机包括电压状态机,或包括电压状态机及算法状态机。
7.根据权利要求1所述的一种挂起功能的验证方法,其特征在于,所述测试用例为一个或多个。
8.一种挂起功能的验证装置,用于验证挂起功能,其特征在于,所述装置包括:
用例模块,用于根据需要验证的算法类型创建测试用例;
仿真模块,用于针对器件模型重复仿真运行所述测试用例,并在仿真过程中随机发送挂起及恢复指令;
获取模块,用于获取所述器件模型执行所述挂起及恢复指令时的状态机组合;
计算模块,用于获取所有已出现的所述状态机组合在功能覆盖率仓中的占比,所述功能覆盖率仓包括预先建立的关于所述需要验证的算法类型对应的所有状态机切换的组合方式;
验证模块,用于在所述占比达到预设阈值时结束仿真并根据所述仿真过程获取验证结果。
9.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一项所述方法中的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210438911.7A CN114546510B (zh) | 2022-04-25 | 2022-04-25 | 一种挂起功能的验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210438911.7A CN114546510B (zh) | 2022-04-25 | 2022-04-25 | 一种挂起功能的验证方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114546510A CN114546510A (zh) | 2022-05-27 |
CN114546510B true CN114546510B (zh) | 2022-07-08 |
Family
ID=81667340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210438911.7A Active CN114546510B (zh) | 2022-04-25 | 2022-04-25 | 一种挂起功能的验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546510B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115312115B (zh) * | 2022-09-30 | 2022-12-13 | 芯天下技术股份有限公司 | 闪存芯片挂起功能的验证方法、装置、设备及介质 |
CN115309464B (zh) * | 2022-09-30 | 2022-12-16 | 芯天下技术股份有限公司 | 闪存芯片挂起功能的验证方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1274202A2 (en) * | 2001-07-05 | 2003-01-08 | ASUSTeK Computer Inc. | Local suspend function and reset procedure in a wireless communications system |
US6553513B1 (en) * | 1999-02-19 | 2003-04-22 | Texas Instruments Incorporated | Emulation suspend mode with differing response to differing classes of interrupts |
CN101339581A (zh) * | 2008-08-29 | 2009-01-07 | 北京中星微电子有限公司 | 基于中断通讯的嵌入式系统的在线调试仿真方法 |
CN104063325A (zh) * | 2014-07-11 | 2014-09-24 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
CN111426935A (zh) * | 2018-12-20 | 2020-07-17 | 爱德万测试公司 | 自动化测试设备装置 |
CN112084667A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种测试用例的生成方法、装置及电子设备 |
CN112115044A (zh) * | 2020-08-12 | 2020-12-22 | 中国电力科学研究院有限公司 | 电力信息通信设备自动化测试方法及系统 |
CN114021378A (zh) * | 2021-11-18 | 2022-02-08 | 北京索为系统技术股份有限公司 | 一种模型仿真方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193957A1 (en) * | 1989-07-31 | 2004-09-30 | Swoboda Gary L. | Emulation devices, systems and methods utilizing state machines |
US7454325B2 (en) * | 2004-12-07 | 2008-11-18 | International Business Machines Corporation | Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases |
US20170109667A1 (en) * | 2011-05-08 | 2017-04-20 | Panaya Ltd. | Automaton-Based Identification of Executions of a Business Process |
-
2022
- 2022-04-25 CN CN202210438911.7A patent/CN114546510B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553513B1 (en) * | 1999-02-19 | 2003-04-22 | Texas Instruments Incorporated | Emulation suspend mode with differing response to differing classes of interrupts |
EP1274202A2 (en) * | 2001-07-05 | 2003-01-08 | ASUSTeK Computer Inc. | Local suspend function and reset procedure in a wireless communications system |
CN101339581A (zh) * | 2008-08-29 | 2009-01-07 | 北京中星微电子有限公司 | 基于中断通讯的嵌入式系统的在线调试仿真方法 |
CN104063325A (zh) * | 2014-07-11 | 2014-09-24 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
CN111426935A (zh) * | 2018-12-20 | 2020-07-17 | 爱德万测试公司 | 自动化测试设备装置 |
CN112115044A (zh) * | 2020-08-12 | 2020-12-22 | 中国电力科学研究院有限公司 | 电力信息通信设备自动化测试方法及系统 |
CN112084667A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种测试用例的生成方法、装置及电子设备 |
CN114021378A (zh) * | 2021-11-18 | 2022-02-08 | 北京索为系统技术股份有限公司 | 一种模型仿真方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
雷斌 等." 基于状态机模型的构件健壮性测试".《软件学报》.2010, * |
Also Published As
Publication number | Publication date |
---|---|
CN114546510A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114546510B (zh) | 一种挂起功能的验证方法、装置、电子设备及存储介质 | |
Smith et al. | Availability analysis of blade server systems | |
EP3583562A1 (en) | Changing smart contracts recorded in block chains | |
CN104317960A (zh) | 一种批处理作业的处理方法和装置 | |
CN106575244A (zh) | 确保云应用的高可用性的修补过程 | |
CN104516796B (zh) | 一种基于命令集的网元备份与恢复方法及装置 | |
CN111694760A (zh) | 服务器系统、快闪存储器模块及更新固件映像文件的方法 | |
CN104461641A (zh) | 一种数据烧写方法、系统、烧写设备以及目标设备 | |
CN106033362A (zh) | 一种闪存分区的处理方法和装置 | |
CN105224422A (zh) | 一种数据备份方法及设备 | |
CN115657965B (zh) | 一种元数据的配置方法、装置及介质 | |
CN113238924A (zh) | 分布式图数据库系统中的混沌工程实现方法和系统 | |
CN107729541A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN106909382B (zh) | 输出不同类型系统启动信息的方法及装置 | |
CN111045858A (zh) | 一种坏道处理方法及系统 | |
CN103425932A (zh) | 签名校验方法和终端设备 | |
US20080189095A1 (en) | Method and tool for generating simulation case for ic device | |
CN113238748B (zh) | 一种直流控保程序页面修改校验方法、装置、终端及介质 | |
CN101833483A (zh) | 嵌入式电子装置及数据储存方法 | |
CN110703988B (zh) | 一种分布式存储的存储池创建方法、系统、终端及存储介质 | |
CN109117190A (zh) | 系统启动方法及装置 | |
CN103389919B (zh) | 一种基于冗余设备系统的数据处理方法及装置 | |
CN112732367A (zh) | 事件流程的处理方法、装置、设备及可读存储介质 | |
CN107330177B (zh) | 一种基于Tcl/Tk脚本的时钟树扇出违约修复方法 | |
JP2008112229A (ja) | ソフトウェア製品の更新データ適用方法 |
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 |