CN111832236B - 一种芯片回归测试方法、***、电子设备及存储介质 - Google Patents
一种芯片回归测试方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111832236B CN111832236B CN202010606052.9A CN202010606052A CN111832236B CN 111832236 B CN111832236 B CN 111832236B CN 202010606052 A CN202010606052 A CN 202010606052A CN 111832236 B CN111832236 B CN 111832236B
- Authority
- CN
- China
- Prior art keywords
- simulation
- chip
- test
- configuration file
- test case
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种芯片回归测试方法,所述芯片回归测试方法包括接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果。本申请能够提高芯片回归测试的效率。本申请还公开了一种芯片回归测试***、一种存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种芯片回归测试方法、***、一种电子设备及一种存储介质。
背景技术
芯片验证过程对于保证芯片设计质量至关重要,通常做法是开发大量直接测试用例和随机测试用例去尽可能的覆盖所有功能点。随着芯片规模的不断提升,为了更加高效的实施验证,绝大多数公司都会将芯片进行模块划分,对各个模块进行详尽的验证,并将***级的测试用例在整个芯片层级上进行验证。为保证验证结果的收敛,经常需要进行回归测试,所谓回归测试指的是无论设计中修改了任何旧代码,或者工作环境发生了某种变化,重新进行的测试,以确认这种修改没有引入新的错误或导致原有其他代码产生。
相关技术中,芯片回归测试操作都依赖脚本语言去管理庞大的测试用例,但是这种直接利用脚本语言管理测试用例的方式的可读性、维护性和通用性都较差,芯片回归测试效率较低。
因此,如何提高芯片回归测试的效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种芯片回归测试方法、***、一种电子设备及一种存储介质,能够提高芯片回归测试的效率。
为解决上述技术问题,本申请提供一种芯片回归测试方法,该芯片回归测试方法包括:
接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;
构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;
根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;
通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果。
可选的,在将所述测试用例和所述测试用例的属性信息存储至所述数据结构之后,还包括:
为所述测试用例添加对应的操作方法;
其中,所述操作方法包括主界面跳转、测试用例提交、测试用例文件生成、仿真配置文件生成、仿真目录删除、仿真日志查看、结果日志检查和加载日志中的任一项或任几项的组合。
可选的,所述仿真配置文件包括预配置文件、运行配置文件和后配置文件;
其中,所述预配置文件用于配置运行环境,所述运行配置文件用于调用电子设计自动化工具并传入参数进行仿真操作,所述后配置文件用于在仿真结束后执行自定义脚本。
可选的,所述通过运行所述Shell脚本执行仿真操作得到仿真日志,包括:
判断所述Shell脚本的数量是否大于预设数量;
若是,则向服务端提交所述所有所述Shell脚本以便执行仿真操作,得到所述仿真日志;
若否,则向所述服务端提交预设数量的Shell脚本以便执行仿真操作,得到所述仿真日志;当检测到服务端有Shell脚本运行完毕,则将未上传至所述服务端的Shell脚本提交至所述服务端;其中,所述服务端运行的Shell脚本数量小于或等于所述预设数量。
可选的,根据所述仿真日志生成芯片回归测试结果,包括:
判断所述仿真日志中是否存在异常关键字;
判断所述仿真日志中是否存在仿真结束关键字;
若所述仿真日志中不存在所述异常关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果;
若所述仿真日志中存在的异常关键字为白名单中的关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果。
可选的,在根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息之前,还包括:
定义所述测试用例、所述结构验证计划文件、所述仿真配置文件和所述仿真日志的存储路径。
可选的,在根据所述仿真日志生成芯片回归测试结果之后,还包括:
根据所述测试用例对应的芯片回归测试结果生成回归测试报告;其中,所述回归测试报告包括测试通过率和测试进度曲线图。
本申请还提供了一种芯片回归测试***,该芯片回归测试***包括:
文件获取模块,用于接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;
信息提取模块,用于构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;
脚本生成模块,用于根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;
仿真测试模块,用于通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述芯片回归测试方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述芯片回归测试方法执行的步骤。
本申请提供了一种芯片回归测试方法,包括:接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果。
本申请先设置结构验证计划文件,结构验证计划文件中包括各个测试用例的属性信息,用户可以根据实际需求对测试用例的属性信息进行定制化设置。通过读取结构验证计划文件中的属性信息可以生成测试用例对应的仿真配置文件,进而得到对应的Shell脚本,通过运行Shell脚本可以实现对于芯片的回归测试操作。本申请可以根据用户输入的参数设置指令,定制化设置测试用例的属性信息,进而可以自动生成仿真运行所需要的Shell脚本,无需使用脚本语言管理庞大的测试用例,提高了芯片回归测试的效率。本申请同时还提供了一种芯片回归测试***、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种芯片回归测试方法的流程图;
图2为本申请实施例所提供的一种芯片回归测试结果生成方法的流程图;
图3为本申请实施例所提供的一种芯片回归测试的流程示意图;
图4为本申请实施例所提供的一种芯片回归测试***的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种芯片回归测试方法的流程图。
具体步骤可以包括:
S101:接收参数设置指令,并根据参数设置指令设置结构验证计划文件中测试用例的属性信息;
其中,本步骤中所接收的参数设置指令可以为用户输入的指令,进而根据参数设置指令设置结构验证计划文件中各个测试用例的属性信息。结构验证计划文件即HVP(Hierarchical Verification Plan)文件,结构验证计划文件为定义测试用例属性的载体,存储有任意数量个测试用例的属性信息,结构验证计划文件中可以不包括测试用例。可以理解的是,在根据参数设置指令设置属性信息之前,结构验证计划文件中存储的属性信息为每一测试用例对应的默认值。
具体的,在接收到参数设置指令之后可以存在解析参数设置指令的操作,进而根据解析结果确定待修改参数及其对应的值。下面通过一个具体的例子介绍结构验证计划文件,结构验证计划文件作为芯片回归测试时的输入源,不仅要符合Synopsys定义的HVP编写规则,并且要包含测试用例定义的必要属性。结构验证计划文件以顶层关键字“plan”开始,其内容主要包含两部分:
(1)对attributes(属性),annotations(注释)和metrics(指标)的定义;
(2)对基本验证计划组件feature tree(特征树)的定义。
用户可以根据用途自定义添加多个attribute、annotation及metric,结构验证计划文件的内容如下所示例:
上述结构验证计划文件中,模块名为CPU,HVP的名称为CPU_VPLAN。可以在attribute中,定义当前模块的验证负责人,即“attribute string owner”;功能描述,即“attribute string description”,模块名称,即“attribute string module_name”等关键信息。在feature中定义每个验证目标的详细名称及描述,测量方法等,如“VO_CPU_IRAM_TEST”表示验证目标的名称,“owner”表示该目标的负责人,“measure”表示测量方法。本实施例通过自定义结构验证计划文件的属性去划分模块的层级,并依据层级自动生成对应结构的测试用例,并在仿真时自动提取相应路径下的原始文件,并可以根据用户配置,选择克隆多个测试用例进行随机测试。
S102:构建结构验证计划文件对应的数据结构,并将测试用例的属性信息存储至数据结构;
其中,在已经设置测试用例的属性信息的基础上,本步骤可以获取结构验证计划文件,将验证计划文件中测试用例的属性信息存储至对应的数据结构中。具体的,本实施例可以在用户通过工具界面选取指定HVP的同时,自动提取HVP中的信息,以便对其包含的所有测试用例构建对应的数据结构,用以保存每个测试用例在HVP中定义的属性,并将测试用例的名称显示在工具窗口列表中。为了快速查找某类型的测试用例,支持键入关键字触发过滤功能,从而选择带有关键字信息的测试用例。
S103:根据测试用例和数据结构生成测试用例对应的仿真配置文件,并生成仿真配置文件对应的Shell脚本;
其中,本实施例中生成的仿真配置文件可以包括预配置文件、运行配置文件和后配置文件;其中,所述预配置文件用于配置运行环境,所述运行配置文件用于调用电子设计自动化工具并传入参数进行仿真操作,所述后配置文件用于在仿真结束后执行自定义脚本。
本实施例可以将仿真分成三个阶段:预处理阶段、运行阶段和后处理阶段。预处理阶段主要包含加载合适的工具,配置运行环境,并将TC(Test Case,测试用例)执行过程中需要的文件拷贝或者链接到该测试用例的仿真目录下,或执行某些特殊的脚本为测试用例的运行及结果检查做准备;运行阶段主要通过调用EDA(Electronics Design Automation,电子设计自动化)工具并传入合适的参数,进行仿真;后处理阶段则是检查运行结果,或执行特殊脚本对文件做处理。因此配置文件也包含三个阶段,即预配置文件(pre_cfg)、运行配置文件(run_cfg)和后配置文件(post_cfg)。配置文件采用YAML(Yet Another MarkupLanguage,一种标记语言)格式。
下面提供一种预配置文件、运行配置文件和后配置文件的内容示例:
如上所示,在预配置文件pre_cfg中,repo_dir表示配置的根目录,用以简化下面的路径表示方法;target_name表示仿真所需要的可执行文件;tool_cmd_list主要列举仿真所需要的工具环境版本信息,copy_file_list定义需要拷贝的文件列表,其中$(repo_dir)表示前面定义的repo_dir的值,$(sim_dir)代表TC实际的仿真目录;link_file_list定义链接的文件列表,从源文件链接到目的文件;pre_cmd_list中定义在仿真开始前所需执行的自定义脚本。运行配置文件run_cfg中主要添加仿真时的运行参数。后配置文件post_cfg主要定义在仿真结束后需要执行的自定义脚本。
在得到测试用例对应的仿真配置文件之后,本实施例可以根据仿真配置文件生成对应的Shell脚本,以便执行仿真操作。进一步的,对于同一类测试用例而言,绝大多数配置信息是相同的,工具可以指定公共的仿真配置文件,而对特殊的测试用例可以生成专属的仿真配置文件,多个仿真配置文件可以进行自动合并,依据最终的仿真配置信息,通过提取替换等操作生成对应的Shell文件,具体如下,其中“/nfs/simulation/example1”代表某仿真目录。
echo“pre-processing”
module load python/3.7.5
module load vcsmx/P-2019.03
cp–fr/home/cadadm/scripts/*/nfs/simulation/example1
ln–sf/home/cadadm/etc/*.sh/nfs/simulation/example1
python./run_test.py
echo“runing”
./simv+UVM_TESTNAME=basic_test+UVM_VERBOSITY=UVM_LOW-do simrun.do–lsimrun.log
echo“post-processing”
perl./check_result.pl;
S104:通过运行Shell脚本执行仿真操作得到仿真日志,并根据仿真日志生成芯片回归测试结果。
其中,本实施例可以将Shell脚本上传至服务端,由服务端运行Shell脚本以便执行相应的仿真操作得到仿真日志。本实施例在得到仿真日志之后,可以通过关键字查询的方式确定是否存在仿真异常等情况,即得到芯片回归测试结果。本实施例中的结构验证计划文件相当于每个测试用例的模板,可以基于该模板自动生成仿真所需要的Shell脚本文件,并通过工具自动提交任务进行仿真,并将仿真的调试日志写到相应结构中的文件夹下。定义包含文件、排除文件、日志结束文件,去检索仿真日志中的关键信息判断测试用例是否通过。
本实施例先设置结构验证计划文件,结构验证计划文件中包括各个测试用例的属性信息,用户可以根据实际需求对测试用例的属性信息进行定制化设置。通过读取结构验证计划文件中的属性信息可以生成测试用例对应的仿真配置文件,进而得到对应的Shell脚本,通过运行Shell脚本可以实现对于芯片的回归测试操作。本实施例可以根据用户输入的参数设置指令,定制化设置测试用例的属性信息,进而可以自动生成仿真运行所需要的Shell脚本,无需使用脚本语言管理庞大的测试用例,提高了芯片回归测试的效率。
上述实施例在HVP中定义测试用例所需要的属性信息,以及运行测试用例所需要的配置信息,根据不同测试用例所处在的层级,自动生成对应目录下的测试用例模板。通过对测试用例的配置解析,产生可执行的Shell脚本文件,并提交给任务调度器进行统一管理与执行,将仿真产生的日志进行结果分析,生成相关报告,自动化发送给相关责任人。本实施例通过输入的唯一性,并且符合业界主流EDA厂商Synopsys所支持的HVP格式,可以无缝连接整个回归测试的结果,将其导入Synopsys的Verdi工具中。统一的管理了测试用例的格式,所在的目录,以及运行方式,结果信息等。从而减少了不同人开发测试用例所引起的格式混乱,无法自动收集相关信息等问题。通过定义统一的配置文件,并且自动生成所对应有测试用例运行的Shell脚本,方便运行与调试。同时对多任务进行统一的调度管理,既能优化对资源的利用率,又能进行自动回归。
作为对于图1对应的实施例的进一步介绍,在将所述测试用例和所述测试用例的属性信息存储至所述数据结构之后,还可以为所述测试用例添加对应的操作方法;其中,所述操作方法包括主界面跳转、测试用例提交、测试用例文件生成、仿真配置文件生成、仿真目录删除、仿真日志查看、结果日志检查和加载日志中的任一项或任几项的组合。
对每一个测试用例提供多种方法可以包括以下几种:
方法1:tc.set_tc,用于跳转至主界面,选择交互模式运行或是静默模式,查看所属信息等功能。
方法2:tc.submit,用于向任务调度器提交该测试用例。
方法3:tc.generate,用于依据HVP中所定义的模块层级,自动生成相应层级的测试用例文件和仿真配置文件,当对应目录不为空时不再新产生。为了支持UVM(UniversalVerification Methodology,通用验证方法)的随机测试,当某个测试用例在HVP中定义了random(随机)属性,工具会自动克隆出多个同样的测试用例,只需要保证不同测试用例在仿真时所采用的种子数不同即可。
方法4:tc.clean_sim_dir,用于删除该测试用例的仿真目录。
方法5:tc.view_logfile,用于查看该测试用例的仿真日志。
方法6:tc.view_checklog,用于该测试用例的检查结果日志。
方法7:tc.reload_logtree,用于重新加载已保存的日志,但需要先选择所加载的日志文件。
作为对于图1对应实施例的进一步介绍,当多个测试用例同时提交至服务端仿真时,可以依据设定的最大任务数,可以限制运行的任务数,实时监测每个测试用例的状态,一旦有任务完成则将待提交任务执行,直到所有回归测试用例完成。具体的所述通过运行所述Shell脚本执行仿真操作得到仿真日志的过程包括:判断所述Shell脚本的数量是否大于预设数量;若是,则向服务端提交所述所有所述Shell脚本以便执行仿真操作,得到所述仿真日志;若否,则向所述服务端提交预设数量的Shell脚本以便执行仿真操作,得到所述仿真日志;当检测到服务端有Shell脚本运行完毕,则将未上传至所述服务端的Shell脚本提交至所述服务端;其中,所述服务端运行的Shell脚本数量小于或等于所述预设数量。
作为对于图1对应实施例的进一步介绍,在根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息之前,还可以定义工具基本配置信息,工具基本配置信息包括测试用例、结构验证计划文件、仿真配置文件和所述仿真日志的存储路径。定义工具基本配置信息的具体内容可以包括:
GL_SRC_DIR=$WORKAREAD/verify_repo/soc
GL_ETC_DIR=$WORKAREAD/verify_repo/soc/etc
GL_HVP_DIR=$WORKAREAD/verify_repo/etc/vplan
GL_SIM_DIR=$WORKAREAD/playground/toolrun/simulation/soc
GL_LOG_DIR=$WORKAREAD/playground/logtree/RTL0.8
MAXJOB=20
上述示例中,GL_SRC_DIR表示测试用例的源文件位置,依据该路径可以查找不同层级下面对应的测试用例;GL_ETC_DIR中主要放置通用配置文件,以及所需要的日志检测关键字文件;GL_HVP_DIR表示HVP所存放的位置;GL_SIM_DIR表示仿真路径,用以在该路径下对每一个测试用例生成独立的仿真目录;GL_LOG_DIR则用来保存回归测试的结果;MAXJOB设置当前最大运行数。
请参见图2,图2为本申请实施例所提供的一种芯片回归测试结果生成方法的流程图,当仿真运行结束后,通过预先定义的匹配关键字文件,以及排除关键字文件。搜索仿真所产生的日志文件,当在日志中匹配到有关键字,且未不在排除关键字文件中,则认为测试用例失败,并返回失败的结果;当匹配关键字文件未搜索到关键字,或已在排除关键字中,则返回成功。但需要同时在日志文件中检索到仿真正常结束的关键字,才认定该测试用例成功。
具体的,上述根据所述仿真日志生成芯片回归测试结果的过程包括:判断所述仿真日志中是否存在异常关键字;判断所述仿真日志中是否存在仿真结束关键字;若所述仿真日志中不存在所述异常关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果;若所述仿真日志中存在的异常关键字为白名单中的关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果。
在根据所述仿真日志生成芯片回归测试结果之后,还可以根据所述测试用例对应的芯片回归测试结果生成回归测试报告;其中,所述回归测试报告包括测试通过率和测试进度曲线图。具体的,本实施例可以通过界面操作或静默模式下的命令参数,可以生成所有测试用例的结果,其中包含所属HVP,维护者,运行时间,结果等信息。根据该日志信息,绘制出柱状图,饼状图表征不同优先级所占比例,及不同模块的测试通过比例,并对每次回归的结果进行曲线对比。回归测试结束时,会搜集所有测试用例的状态,及覆盖率等信息时,通过调用Synopsys Verdi工具,可以将结果标识至HVP中。
下面通过在实际应用中的实施例说明上述实施例描述的流程。请参见图3,图3为本申请实施例所提供的一种芯片回归测试的流程示意图,如图3所示,表述了芯片回归***的基本流程。本实施例通过定义每个测试用例的属性信息,再根据这些属性信息自动化的生成测试用例的模板以及仿真所需的配置文件,进而采用PyQt5搭建可视化操作环境,统一的管理多个模块的测试用例,完成自动化回归测试、分析结果日志,发送验证状态等功能。
首先本实施例可以定义HVP文件,提取HVP中每个测试用例的信息,在相应目录下产生测试用例和仿真的配置文件,依据配置文件自动产生可执行的Shell脚本,交由任务调度器去管理和执行多个测试用例,并对每个测试用例仿真产生的结果日志进行分析,绘制出进度曲线,触发邮件***将综合报告发送相关责任人。
具体的,本实施例可以先定工具基本配置信息和HVP文件,提取测试用例并为测试用例添加对应方法,产生测试用例仿真配置文件,生成仿真配置文件对应的Shell脚本。本实施例还可以通过设置最大任务数量管理指令Shell脚本。通过检测仿真日志可以判定回归测试结果,进而基于回归测试结果生成报告并发送状态。本实施例采用HVP文件作为定义测试用例属性的载体,具有良好的通用性和可扩展性。HVP文件作为Synopsys公司提出的结构化验证计划,提供了丰富的用户自定义属性,可以根据这些属性定制化的开发相关功能。同时针对芯片验证仿真过程中的流程控制,本发明提出通用配置模板,依据该模板可自动生成仿真运行所需要的Shell脚本,非常利于调试和执行。
请参见图4,图4为本申请实施例所提供的一种芯片回归测试***的结构示意图,该***可以包括:
文件获取模块100,用于接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;
信息提取模块200,用于构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;
脚本生成模块300,用于根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;
仿真测试模块400,用于通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果。
本实施例先设置结构验证计划文件,结构验证计划文件中包括各个测试用例的属性信息,用户可以根据实际需求对测试用例的属性信息进行定制化设置。通过读取结构验证计划文件中的属性信息可以生成测试用例对应的仿真配置文件,进而得到对应的Shell脚本,通过运行Shell脚本可以实现对于芯片的回归测试操作。本实施例可以根据用户输入的参数设置指令,定制化设置测试用例的属性信息,进而可以自动生成仿真运行所需要的Shell脚本,无需使用脚本语言管理庞大的测试用例,提高了芯片回归测试的效率。
进一步的,还包括:
方法添加模块,用于在将所述测试用例和所述测试用例的属性信息存储至所述数据结构之后,为所述测试用例添加对应的操作方法;
其中,所述操作方法包括主界面跳转、测试用例提交、测试用例文件生成、仿真配置文件生成、仿真目录删除、仿真日志查看、结果日志检查和加载日志中的任一项或任几项的组合。
进一步的,所述仿真配置文件包括预配置文件、运行配置文件和后配置文件;
其中,所述预配置文件用于配置运行环境,所述运行配置文件用于调用电子设计自动化工具并传入参数进行仿真操作,所述后配置文件用于在仿真结束后执行自定义脚本。
进一步的,仿真测试模块400包括:
任务数判断单元,用于判断所述Shell脚本的数量是否大于预设数量;若是,则向服务端提交所述所有所述Shell脚本以便执行仿真操作,得到所述仿真日志;若否,则向所述服务端提交预设数量的Shell脚本以便执行仿真操作,得到所述仿真日志;当检测到服务端有Shell脚本运行完毕,则将未上传至所述服务端的Shell脚本提交至所述服务端;其中,所述服务端运行的Shell脚本数量小于或等于所述预设数量;
结果生成模块,用于判断所述仿真日志中是否存在异常关键字;还用于判断所述仿真日志中是否存在仿真结束关键字;还用于若所述仿真日志中不存在所述异常关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果;还用于若所述仿真日志中存在的异常关键字为白名单中的关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果。
进一步的,还包括:
基本信息定义模块,用于在根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息之前,定义所述测试用例、所述结构验证计划文件、所述仿真配置文件和所述仿真日志的存储路径。
进一步的,还包括:
报告生成模块,用于在根据所述仿真日志生成芯片回归测试结果之后,根据所述测试用例对应的芯片回归测试结果生成回归测试报告;其中,所述回归测试报告包括测试通过率和测试进度曲线图。
由于***部分的实施例与方法部分的实施例相互对应,因此***部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种芯片回归测试方法,其特征在于,包括:
接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;
构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;
根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;
通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果;
其中,所述仿真配置文件包括预配置文件、运行配置文件和后配置文件;
其中,所述预配置文件用于配置运行环境,所述运行配置文件用于调用电子设计自动化工具并传入参数进行仿真操作,所述后配置文件用于在仿真结束后执行自定义脚本。
2.根据权利要求1所述芯片回归测试方法,其特征在于,在将所述测试用例和所述测试用例的属性信息存储至所述数据结构之后,还包括:
为所述测试用例添加对应的操作方法;
其中,所述操作方法包括主界面跳转、测试用例提交、测试用例文件生成、仿真配置文件生成、仿真目录删除、仿真日志查看、结果日志检查和加载日志中的任一项或任几项的组合。
3.根据权利要求1所述芯片回归测试方法,其特征在于,所述通过运行所述Shell脚本执行仿真操作得到仿真日志,包括:
判断所述Shell脚本的数量是否大于预设数量;
若否,则向服务端提交所有所述Shell脚本以便执行仿真操作,得到所述仿真日志;
若是,则向所述服务端提交预设数量的Shell脚本以便执行仿真操作,得到所述仿真日志;当检测到服务端有Shell脚本运行完毕,则将未上传至所述服务端的Shell脚本提交至所述服务端;其中,所述服务端运行的Shell脚本数量小于或等于所述预设数量。
4.根据权利要求1所述芯片回归测试方法,其特征在于,根据所述仿真日志生成芯片回归测试结果,包括:
判断所述仿真日志中是否存在异常关键字;
判断所述仿真日志中是否存在仿真结束关键字;
若所述仿真日志中不存在所述异常关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果;
若所述仿真日志中存在的异常关键字为白名单中的关键字,且所述仿真日志中存在所述仿真结束关键字,则生成测试成功的芯片回归测试结果。
5.根据权利要求1所述芯片回归测试方法,其特征在于,在根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息之前,还包括:
定义所述测试用例、所述结构验证计划文件、所述仿真配置文件和所述仿真日志的存储路径。
6.根据权利要求1至5任一项所述芯片回归测试方法,其特征在于,在根据所述仿真日志生成芯片回归测试结果之后,还包括:
根据所述测试用例对应的芯片回归测试结果生成回归测试报告;其中,所述回归测试报告包括测试通过率和测试进度曲线图。
7.一种芯片回归测试***,其特征在于,包括:
文件获取模块,用于接收参数设置指令,并根据所述参数设置指令设置结构验证计划文件中测试用例的属性信息;
信息提取模块,用于构建所述结构验证计划文件对应的数据结构,并将所述测试用例的属性信息存储至所述数据结构;
脚本生成模块,用于根据所述测试用例和所述数据结构生成所述测试用例对应的仿真配置文件,并生成所述仿真配置文件对应的Shell脚本;
仿真测试模块,用于通过运行所述Shell脚本执行仿真操作得到仿真日志,并根据所述仿真日志生成芯片回归测试结果;
其中,所述仿真配置文件包括预配置文件、运行配置文件和后配置文件;
其中,所述预配置文件用于配置运行环境,所述运行配置文件用于调用电子设计自动化工具并传入参数进行仿真操作,所述后配置文件用于在仿真结束后执行自定义脚本。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至6任一项所述芯片回归测试方法的步骤。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至6任一项所述芯片回归测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010606052.9A CN111832236B (zh) | 2020-06-29 | 2020-06-29 | 一种芯片回归测试方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010606052.9A CN111832236B (zh) | 2020-06-29 | 2020-06-29 | 一种芯片回归测试方法、***、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111832236A CN111832236A (zh) | 2020-10-27 |
CN111832236B true CN111832236B (zh) | 2022-03-22 |
Family
ID=72899453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010606052.9A Active CN111832236B (zh) | 2020-06-29 | 2020-06-29 | 一种芯片回归测试方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111832236B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613255B (zh) * | 2020-12-10 | 2023-01-24 | 海光信息技术股份有限公司 | 多环境协同回归方法、装置、设备、存储介质 |
CN112612664B (zh) * | 2020-12-24 | 2024-04-02 | 百度在线网络技术(北京)有限公司 | 电子设备的测试方法、装置、电子设备和存储介质 |
CN112542200B (zh) * | 2020-12-30 | 2021-09-21 | 芯天下技术股份有限公司 | 非易失型闪存上电参数检查方法、装置、存储介质和终端 |
CN113032195B (zh) * | 2021-03-24 | 2023-05-23 | 上海西井信息科技有限公司 | 芯片仿真验证方法、***、设备及存储介质 |
CN113065300B (zh) * | 2021-03-31 | 2024-01-05 | 眸芯科技(上海)有限公司 | 芯片eda仿真中回溯仿真波形的方法、***及装置 |
CN114430385A (zh) * | 2022-01-17 | 2022-05-03 | 锐捷网络股份有限公司 | 一种网络设备的检测方法、装置及电子设备 |
CN114817015A (zh) * | 2022-04-14 | 2022-07-29 | 芯天下技术股份有限公司 | 测试用例的覆盖率统计方法、装置、电子设备及存储介质 |
CN115630593B (zh) * | 2022-11-11 | 2023-03-14 | 摩尔线程智能科技(北京)有限责任公司 | 验证信息数据的生成方法及装置 |
CN116227395B (zh) * | 2022-12-26 | 2023-09-29 | 爱芯元智半导体(上海)有限公司 | 数字芯片的仿真测试方法、装置及电子设备 |
CN116541308B (zh) * | 2023-07-03 | 2023-10-24 | 芯耀辉科技有限公司 | 一种回归测试方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
CN110399304A (zh) * | 2019-07-30 | 2019-11-01 | 江苏恒宝智能***技术有限公司 | 一种脚本的测试方法及*** |
US10503632B1 (en) * | 2018-09-28 | 2019-12-10 | Amazon Technologies, Inc. | Impact analysis for software testing |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及*** |
CN111240980A (zh) * | 2020-01-13 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种基于云管平台的自动回归测试方法 |
-
2020
- 2020-06-29 CN CN202010606052.9A patent/CN111832236B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
US10503632B1 (en) * | 2018-09-28 | 2019-12-10 | Amazon Technologies, Inc. | Impact analysis for software testing |
CN110399304A (zh) * | 2019-07-30 | 2019-11-01 | 江苏恒宝智能***技术有限公司 | 一种脚本的测试方法及*** |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及*** |
CN111240980A (zh) * | 2020-01-13 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种基于云管平台的自动回归测试方法 |
Non-Patent Citations (3)
Title |
---|
FPGA软件自动化验证平台设计与实践;费亚男等;《计算机测量与控制》;20160525(第05期);139-142 * |
MDAB: Module Design Automation Block for Verification using System Verilog Testbench;Gaurav Sharma等;《IEEE》;20190509;1-4 * |
软件测试计划与测试用例在嵌入***中的应用;黄清清等;《舰船电子工程》;20050220(第01期);59-63 * |
Also Published As
Publication number | Publication date |
---|---|
CN111832236A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111832236B (zh) | 一种芯片回归测试方法、***、电子设备及存储介质 | |
US11675691B2 (en) | System and method for performing automated API tests | |
US9898280B2 (en) | Automatic code review and code reviewer recommendation | |
US20170193437A1 (en) | Method and apparatus for inventory analysis | |
Zhong et al. | MAPO: Mining and recommending API usage patterns | |
US9632771B2 (en) | Association of metadata with source code and applications and services premised thereon | |
US7877732B2 (en) | Efficient stress testing of a service oriented architecture based application | |
Martin-Lopez et al. | Specification and automated analysis of inter-parameter dependencies in web APIs | |
Chaturvedi et al. | Tools in mining software repositories | |
US20210374040A1 (en) | Auto Test Generator | |
CN108763091B (zh) | 用于回归测试的方法、装置及*** | |
US10565089B2 (en) | Identification of code features potentially associated with code behavior | |
Chen et al. | Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems | |
CN101866315A (zh) | 软件开发工具的测试方法及*** | |
CN105765561A (zh) | 根据跟踪数据的生产对比开发使用的确定 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
US11853196B1 (en) | Artificial intelligence driven testing | |
Bessghaier et al. | What constitutes the deployment and runtime configuration system? An empirical study on openstack projects | |
Oliveira | pytest Quick Start Guide: Write better Python code with simple and maintainable tests | |
Agarwal et al. | Copilot Evaluation Harness: Evaluating LLM-Guided Software Programming | |
CN111143228A (zh) | 基于决策表法的测试代码生成方法及装置 | |
Venkatesan et al. | Junit framework for unit testing | |
CN115422059A (zh) | 一种测试用例自动生成***、方法、设备及存储介质 | |
WO2022093178A1 (en) | Ci/cd pipeline code recommendations | |
CN113051262A (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 |