CN112035376B - 一种生成覆盖率报告的方法、装置、设备及存储介质 - Google Patents
一种生成覆盖率报告的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112035376B CN112035376B CN202011219910.0A CN202011219910A CN112035376B CN 112035376 B CN112035376 B CN 112035376B CN 202011219910 A CN202011219910 A CN 202011219910A CN 112035376 B CN112035376 B CN 112035376B
- Authority
- CN
- China
- Prior art keywords
- information
- module
- coverage
- coverage rate
- report
- 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/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/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
本发明涉及一种生成覆盖率报告的方法、装置、设备及存储介质,包括:确定URG覆盖率生成文档中的被测试模块;根据预设方式构建被测试模块的覆盖率报告的表头信息;对URG覆盖率生成文档进行遍历,得到被测试模块的覆盖率信息;根据覆盖率信息及表头信息生成覆盖率报告的Excel表;Excel表包括表头信息和覆盖数据表;覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。采用上述方法根据URG的覆盖率生成文档将代码的覆盖率信息通过Excel表进行展示,提高了数据的可读性。
Description
技术领域
本发明涉及代码验证技术领域,具体涉及一种生成覆盖率报告的方法、装置、设备及存储介质。
背景技术
随着软件技术的快速发展,越来越多的软件功能投入使用。软件功能均通过逻辑代码来实现。在实际情况中,逻辑代码的功能性好坏直接影响用户使用。因此,对逻辑代码进行功能性验证变得尤为重要。
现有技术中有多种方式可对逻辑代码进行功能性验证。例如:基于Synopsys仿真工具对逻辑代码进行功能性验证。在功能性验证过程中,通过对逻辑代码进行覆盖率分析实现验证过程。目前,采用统一报表生成器(Unified Report Generator,URG)生成代码对应的覆盖率报告文件,该覆盖率报告文件是txt文件方式,此种方式下记录的覆盖率信息内容较多,内容的展示方式单一,导致文件内容较混乱,文件的可读性不高。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种生成覆盖率报告的方法、装置、设备及存储介质。
为实现以上目的,本发明采用如下技术方案:
一种生成覆盖率报告的方法,包括:
确定URG覆盖率生成文档中的被测试模块;
根据预设方式构建所述被测试模块的覆盖率报告的表头信息;所述表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;
对所述URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;
根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表;所述Excel表包括所述表头信息和覆盖数据表;所述覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
可选的,所述确定URG覆盖率生成文档中的被测试模块,包括:
获取所述URG覆盖率生成文档中的URG报告文件夹;
从所述URG报告文件夹中调取信息文本文件;所述信息文本文件包括所有测试模块的覆盖信息;
根据所述信息文本文件中的顶部模块确定所述被测试模块。
可选的,所述根据预设方式构建所述被测试模块的覆盖率报告的表头信息,包括:
根据预设方式获取所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息;
根据所述信息文本文件获取被测试模块的所述代码覆盖率总述。
可选的,所述根据预设方式获取所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息,包括:
接收用户输入所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息;
或者,调取预设固定格式文件中的所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息。
可选的,还包括:
读取所述顶部模块内的顶层变量申明,获取顶层参数;
对所述顶层参数进行解析,判断是否满足构建所述Excel表的预设条件;
若满足,构建Excel表及4个数据表。
可选的,所述对所述顶层参数进行解析,判断是否满足构建所述Excel表的预设条件,包括:
判断所述顶层参数是否包含第一预设变量;
若不包括,判断所述顶层参数是否包含创建空配置文档的指令变量;
若不包含,则满足构建Excel表的条件。
可选的,所述根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表,包括:
遍历所述覆盖率信息,进行预设关键字的匹配;
获取所述被测试模块的名称;
根据所述名称确定当前处理类型;
根据所述当前处理类型分别将所述覆盖率信息写入对应的所述覆盖数据表。
一种生成覆盖率报告的装置,包括:
测试模块确定模块,用于确定URG覆盖率生成文档中的被测试模块;
表头信息构建模块,用于根据预设方式构建所述被测试模块的覆盖率报告的表头信息;所述表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;
覆盖率信息获取模块,用于对所述URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;
Excel表生成模块,用于根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表;所述Excel表包括所述表头信息和覆盖数据表;所述覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
一种生成覆盖率报告的设备,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行上述所述的生成覆盖率报告的方法;
所述处理器用于调用并执行所述存储器中的所述计算机程序。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述所述的生成覆盖率报告的方法中各个步骤。
本申请提供的技术方案可以包括以下有益效果:
本申请中公开了一种生成覆盖率报告的方法,包括:确定URG覆盖率生成文档中的被测试模块;根据预设方式构建被测试模块的覆盖率报告的表头信息;表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;对URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;根据覆盖率信息及表头信息,生成覆盖率报告的Excel表;Excel表包括表头信息和覆盖数据表;覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。上述方法中对URG覆盖率生成文档进行进一步地分析处理,得到覆盖率信息,然后对覆盖率信息进行整理归类,最后以固定格式写入到Excel表中,实现用Excel表展示软件的覆盖率信息的功能,极大地提高了覆盖率信息的可读性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的生成覆盖率报告的方法流程图;
图2是本发明另一实施例提供的生成覆盖率报告的方法流程图;
图3是本发明一实施例提供的覆盖率信息获取写入的方法流程图;
图4是本发明一实施例提供的生成覆盖率报告的装置模块图;
图5是本发明一实施例提供的生成覆盖率报告的设备结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
基于Synopsys仿真工具对逻辑代码进行功能性验证时,以URG生成代码对应的覆盖率报告文件,但是此种方式生成的文件可读性不高。而在项目交互文件中会以可读性较高的验证报告方式把未打到的覆盖率点列出并作分析说明。因此提高覆盖率报告文件的可读性极为重要,为提高覆盖率报告文件的可读性,本文提供一种以脚本(Python)实现自动根据仿真工具生成覆盖率文件,提取未翻转的覆盖信息,写入Excel文件的方法。
URG生成覆盖率文件里面不仅含有网页版的文件,也还有modinfo.txt文件(信息文本文件),该文件涵盖被收集代码的所有覆盖率信息,并且有关键字符信息标识没有覆盖到的行覆盖率、条件覆盖率、状态机覆盖率、翻转覆盖率(line/condition/fsm/toggle)等覆盖率信息。可以通过脚本(Python)遍历该文件,把没有覆盖到的覆盖率信息进行整理、归类,然后以固定格式写入到Excel文件。具体实现过程如下。
图1是本发明一实施例提供的生成覆盖率报告的方法流程图。参见图1,一种生成覆盖率报告的方法,包括:
步骤101:确定URG覆盖率生成文档中的被测试模块。具体的,获取所述URG覆盖率生成文档中的URG报告文件夹;从所述URG报告文件夹中调取信息文本文件;所述信息文本文件包括所有测试模块的覆盖信息;根据所述信息文本文件中的顶部模块确定所述被测试模块。
步骤102:根据预设方式构建被测试模块的覆盖率报告的表头信息;表头信息包括:被测试模块名称、项目信息(项目编号)、验证工程师信息(名字、邮箱)、模块设计工程师信息(名字、邮箱)和被测试模块的代码覆盖率总述。具体表头格式如表1所示:表中line/condition/fsm/toggle分别代表四种处理类型。
更详细地,获取表头信息的过程包括:根据预设方式获取所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息;其中获取相关信息的方式分为两种,一种为用户外部输入相关信息,另一种为调取预设固定格式文件(input.cfg)中预存的相关信息。例如:上述表1中,被测试模块名字等相关项目以及人员信息(XXX)由本申请脚本执行input.cfg文档导入,该cfg文档由脚本生成,是根据用户的填入信息生成。文档更新时间,每次执行脚本由脚本自动更新。
上述表格中,代码覆盖率总述信息,由脚本在modinfo.txt(信息文本文件)文档中获取。
步骤103:对URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;
步骤104:根据覆盖率信息及表头信息,生成覆盖率报告的Excel表;Excel表包括表头信息和覆盖数据表;覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
上述实施例中利用本申请中脚本调用modinfo.txt 文件获取line/condition/fsm/toggle等的覆盖率信息,通过对覆盖率信息进行处理,并结合表头信息生成覆盖率报告的Excel表,通过Excel表将覆盖率信息进行了直接明白的介绍,极大地提高了覆盖率文件的可读性。
为了更详细地介绍本申请中覆盖率文件的Excel表的生成,现举例进行详细说明,具体如下:
图2是本发明另一实施例提供的生成覆盖率报告的方法流程图。参见图2,一种生成覆盖率报告的方法,包括:
步骤201:读取所述顶部模块内的顶层变量申明,获取顶层参数;具体代码变量如下:Project=ProjInfo();Verifier=PersInfo();
Designer=PersInfo();FilePath=“”;TopModuleName=“top”;
Line_judge_en=“dis”;CfgFile=“”;其中,根据Project获取项目信息,Verifier获取验证工程师信息,Designer获取模块设计工程师信息,FilePath获取modinfo.tx的文件路径,TopModuleName为顶部模块名称,Line_judge_en代表代码行覆盖判断使能开关,CfgFile代表配置文件。
步骤202:判断所述顶层参数是否包含第一预设变量;此处的第一预设变量包括:-h;–h;-help;--help。
步骤203:若包含第一预设变量,调度预设任务(help_info)并退出。
步骤204:若不包括,判断所述顶层参数是否包含创建空配置文档的指令变量;此处用变量-C代表创建空配置文档。
步骤205:调度cfg文件创建(Create_CfgFile)任务并退出。
步骤206:若不包括,解析顶层参数,读取参数信息赋值给对应变量。
步骤207:利用配置文件(Configure file)对变量进行处理。
步骤208:判断当前路径下是否有同名Excel存在,如存在则修改名字以备份。
步骤209:创建一个新的含有4个覆盖数据表的Excel表。其中,利用xlwt和xlrd模块实现对Excel表的写和读操作,xlwt是Python用来在Excel写入数据和格式化数据的工具包,是用来生成兼容Excel 97/2000/XP/2003;xlrd是Python用来读取Excel数据的工具包。
步骤210:分别为4份覆盖数据表增加表头信息。
步骤211:分析顶层模块,分别抓取4种类型对应的未覆盖信息并写入对应Excel表。
步骤212:保存新增Excel表,如有备份Excel表一并删除。
更详细地,本实施例中还公开了通过代码实现的表头构建过程,具体如下:
前面有提到Excel每页前面都有项目相关表头(header)信息,脚本实现以参数化输入(脚本执行过程中)或者把固定格式input cfg文件内容载入并写入Excel表头中。
当脚本执行过程中表头信息对应配置参数为空时,则进入手动输入项目信息阶段。当配置文档非空,则会进行input cfg文件内容的载入;用户填好配置文档内容后,在执行脚本将参数传入填好的配置文件。
本申请中脚本是基于Synopsys URG生成文档中的modinfo.txt进行获取测试模块的覆盖率信息,并把line、condition、fsm和toggle的未覆盖点以前面约定的Excel格式进行展现。URG在生成覆盖率文件时会生成文件夹urgReport,文件夹urgReport获取urgReport文件夹路径。
同时,modinfo.txt里面会罗列测试环境中所有模块覆盖信息,其包含验证平台顶部模块,而被测试模块(DUT)通常在验证平台顶部模块中有举例介绍,所以表头中的总的覆盖率信息,只要获取验证平台的顶部模块的覆盖信息即可。但是由于模块名字以及验证工程师各自习惯,通常验证平台的顶部模块名字都不一样,所以脚本需要一个input参数让用户告诉脚本这次试用对应验证平台的顶部模块名字。
在上述实施例的基础上,本申请中还公开了覆盖率信息的具体获取过程,具体如下:
图3是本发明一实施例提供的覆盖率信息获取写入的方法流程图。覆盖率信息获取写入的方法包括:
步骤301:遍历信息文本文件获取顶层的覆盖率信息,即基于TopModuleName遍历modinfo.txt获取顶层的代码覆盖率总述信息。
步骤302:从头开始匹配预设关键字,获取被测试模块所有示例名字并把名字存如对应名称数组。从头开始匹配关键字[Module:xxx],获取模块所有示例名字并把名字存入array[inst_array]。
步骤303:基于名称数组array[inst_array]的长度判断该模块示例情况基于当前处理类型cov_type进行处理。
步骤3041:当前处理类型为行类型(cov_type==‘line’)且有未覆盖信息(表头信息中的总分不满且非空(--))。
步骤3042:在Excel表对应的覆盖数据表中增加该模块的覆盖率信息。
步骤3043:以line覆盖率信息开始进行关键字匹配。
步骤3044:读取未覆盖信息并写入对应Excel表的覆盖数据表。
步骤3051:当前处理类型为条件类型(cov_type==‘cond’)且有未覆盖信息。
步骤3052:在Excel表对应的覆盖数据表中增加该模块的覆盖率信息。
步骤3053:以条件覆盖率信息开始进行关键字匹配。
步骤3054:读取未覆盖信息并写入对应Excel表的覆盖数据表。
步骤3061:当前处理类型为状态机类型(cov_type==‘fsm’)且有未覆盖信息。
步骤3062:在Excel表对应的覆盖数据表中增加该模块的覆盖率信息。
步骤3063:以状态机覆盖率信息开始进行关键字匹配。
步骤3064:读取未覆盖信息并写入对应Excel表的覆盖数据表。
步骤3071:当前处理类型为翻转类型(cov_type==‘tgl’)且有未覆盖信息。
步骤3072:在Excel表对应的覆盖数据表中增加该模块的覆盖率信息。
步骤3073:以翻转覆盖率信息开始进行关键字匹配。
步骤3074:读取未覆盖信息并写入对应Excel表的覆盖数据表。
为了方便读取相关信息,本申请脚本会在输出Excel表中构建4份覆盖数据表datasheet,名字分别为line行数据表(line datasheet)、condition条件数据表(condition datasheet)、fsm状态机数据表(fsm datasheet)和toggle翻转数据表(toggledatasheet),从名字可知,4份datasheet分别记录测试模块未翻转的line、condition、fsm和toggle的覆盖信息,每张datasheet开头都是前面讲到的表头信息和代码覆盖率总述,之后再追加相关子模块未翻转到的覆盖信息。
其中line datasheet追加格式如下:
如上格式,脚本遍历所有模块(instance),当该模块的line覆盖率不满(非100%),则在Excel中追加3行并把该模块的覆盖总述信息进行记录(如上表格1-3行),然后再遍历扫该模块的行覆盖信息,如有匹配到一个未翻转(toggle)的行,则自动追加未覆盖代码编号(hole id)并抓出未toggle的源代码的行数以及代码,把hole id写入hole id一栏,代码行标数(line number)和源代码(modinfo.txt里面备注的未toggle的行)分别写入linenumber和code一栏。即一个未覆盖的行信息以上述格式一行进行表示,新的未覆盖的行信息追加新的一行。此处的覆盖率不满是通过表中“总分”中的“line”一栏获知该对应分值,该分值是否为100%,若是则代表覆盖率满,否则代表覆盖率不满。同理,其他condition/fsm/toggle等对应数据也是根据此种方式获得的。
每一个未覆盖行,都有对应一栏uncover reason(未覆盖原因)由设计工程师进行填写说明无法打到的原因。
condition datasheet追加格式如下:
如上格式,脚本遍历所有模块,当该模块的条件覆盖率不满(非100%),则在Excel中追加3行并把该模块的覆盖总述信息进行记录(如上表格1-3行),然后再遍历扫该模块的条件覆盖信息,如有匹配到一个未覆盖的condition,则自动追加hole id并抓出未toggle源代码的行数以及代码,把hole id写入hole id一栏,代码行标数和源代码(modinfo.txt里面备注的未toggle的condition场景)分别写入line number和code一栏。即一个未覆盖条件信息以上述格式一行进行表示,新的未覆盖条件信息追加新的一行。
每一个未覆盖条件,都有对应一栏uncover reason由设计工程师进行填写说明无法打到的原因。
fsm datasheet追加格式如下:
如上格式,脚本遍历所有模块(instance),当该模块的状态机覆盖率不满(非100%),则在Excel中追加3行并把该模块的覆盖总述信息进行记录(如上表格1-3行),然后再遍历扫该模块的状态机覆盖信息,如有匹配到一个未覆盖状态机信息,则自动追加holeid并抓出未toggle状态跳变说明和所在代码行数,把hole id写入hole id一栏,代码行数和源代码(modinfo.txt里面备注的未toggle的状态机场景)分别写入line number和code一栏。即一个为覆盖状态机信息以上述格式一行进行表示,新的未覆盖状态机信息追加新的一行。
每一个未覆盖状态机,都有对应一栏uncover reason由设计工程师进行填写说明无法打到的原因。
toggle datasheet追加格式如下:
如上格式,脚本遍历所有模块,当该模块的翻转覆盖率不满(非100%),则在Excel中追加3行并把该模块的覆盖总述信息进行记录(如上表格1-3行),然后再遍历扫该模块的翻转覆盖信息,如有匹配到一个端口(port)或者具体信号(signal)的未覆盖toggle,则自动追加hole id并抓出未toggle到端口或者具体信号的未覆盖类型(0->1或者1->0)和端口或者具体信号名字,把hole id写入hole id一栏,未toggle到的类型(0->1或者1->0)和未toggle到的port\signal名字分别写入未覆盖类型和port/signal一栏。即一个未覆盖toggle信息以上述格式一行进行表示,新的未覆盖toggle信息追加新的一行。
每一个未覆盖toggle,都有对应一栏(uncover reason)由设计工程师进行填写说明无法打到的原因。
上述实施例中详细介绍了Excel表的包含内容及获取过程,采用上述方法将通过URG生成的覆盖率文件以Excel表的形式进行数据展示,极大地提高了数据的可读性,提高用户体验。
对应于本发明实施例提供的一种生成覆盖率报告的方法,本发明实施例还提供一种生成覆盖率报告的装置。请参见下文实施例。
图4是本发明一实施例提供的生成覆盖率报告的装置模块图。参见图4,一种生成覆盖率报告的装置,包括:
测试模块确定模块401,用于确定URG覆盖率生成文档中的被测试模块;
表头信息构建模块402,用于根据预设方式构建所述被测试模块的覆盖率报告的表头信息;所述表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;
覆盖率信息获取模块403,用于对所述URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;
Excel表生成模块404,用于根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表;所述Excel表包括所述表头信息和覆盖数据表;所述覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
更详细地,测试模块确定模块401,即确定URG覆盖率生成文档中的被测试模块具体用于获取所述URG覆盖率生成文档中的URG报告文件夹;从所述URG报告文件夹中调取信息文本文件;所述信息文本文件包括所有测试模块的覆盖信息;根据所述信息文本文件中的顶部模块确定所述被测试模块。
更进一步地,在上述实施例的基础上,本申请中装置还包括:
顶层参数获取模块,用于读取所述顶部模块内的顶层变量申明,获取顶层参数。
表格构建判断模块,用于对所述顶层参数进行解析,判断是否满足构建所述Excel表的预设条件;
表格构建模块,用于若满足构建所述Excel表的预设条件,构建Excel表及4个数据表。
其中,表格构建判断模块具体用于:判断所述顶层参数是否包含第一预设变量;若不包括,判断所述顶层参数是否包含创建空配置文档的指令变量;若不包含,则满足构建Excel表的条件。
采用所述装置能够通过对URG覆盖率生成文档进行分析基础,得到其中的覆盖率信息,然后对该覆盖率信息进行整理归类,最后以Excel表的个数进行覆盖率信息的展示,极大地提高了覆盖率信息的可读性。
为了更清楚地介绍实现本发明实施例的硬件系统,对应于本发明实施例提供的一种生成覆盖率报告的方法,本发明实施例还提供一种生成覆盖率报告的设备。请参见下文实施例。
图5是本发明一实施例提供的生成覆盖率报告的设备结构图。一种生成覆盖率报告的设备,包括:
处理器501,以及与所述处理器501相连接的存储器502;
所述存储器502用于存储计算机程序,所述计算机程序至少用于执行上述所述的生成覆盖率报告的方法;
所述处理器501用于调用并执行所述存储器502中的所述计算机程序。
在上述实施例的基础上,本申请中还公开了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述所述的生成覆盖率报告的方法中各个步骤。
采用上述设备将URG覆盖率生成文档进行分析,根据其覆盖率信息生成Excel表用于显示覆盖率信息,提高了覆盖率信息的可读性。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种生成覆盖率报告的方法,其特征在于,包括:
确定URG覆盖率生成文档中的被测试模块;包括:获取所述URG覆盖率生成文档中的URG报告文件夹;从所述URG报告文件夹中调取信息文本文件;所述信息文本文件包括所有测试模块的覆盖信息;根据所述信息文本文件中的顶部模块确定所述被测试模块;
根据预设方式构建所述被测试模块的覆盖率报告的表头信息;所述表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;
对所述URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;具体包括:遍历所述覆盖率信息,进行预设关键字的匹配;获取所述被测试模块的名称;根据所述名称确定当前处理类型;根据所述当前处理类型分别将所述覆盖率信息写入对应的覆盖数据表;根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表;所述Excel表包括所述表头信息和覆盖数据表;所述覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
2.根据权利要求1所述的方法,其特征在于,所述根据预设方式构建所述被测试模块的覆盖率报告的表头信息,包括:
根据预设方式获取所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息;
根据所述信息文本文件获取被测试模块的所述代码覆盖率总述。
3.根据权利要求2所述的方法,其特征在于,所述根据预设方式获取所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息,包括:
接收用户输入所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息;
或者,调取预设固定格式文件中的所述被测试模块名称、所述项目信息、所述验证工程师信息和所述模块设计工程师信息。
4.根据权利要求1所述的方法,其特征在于,还包括:
读取所述顶部模块内的顶层变量申明,获取顶层参数;
对所述顶层参数进行解析,判断是否满足构建所述Excel表的预设条件;
若满足,构建Excel表及4个数据表。
5.根据权利要求4所述的方法,其特征在于,所述对所述顶层参数进行解析,判断是否满足构建所述Excel表的预设条件,包括:
判断所述顶层参数是否包含第一预设变量;
若不包括,判断所述顶层参数是否包含创建空配置文档的指令变量;
若不包含,则满足构建Excel表的条件。
6.一种生成覆盖率报告的装置,其特征在于,包括:
测试模块确定模块,用于确定URG覆盖率生成文档中的被测试模块;包括:获取所述URG覆盖率生成文档中的URG报告文件夹;从所述URG报告文件夹中调取信息文本文件;所述信息文本文件包括所有测试模块的覆盖信息;根据所述信息文本文件中的顶部模块确定所述被测试模块;
表头信息构建模块,用于根据预设方式构建所述被测试模块的覆盖率报告的表头信息;所述表头信息包括:被测试模块名称、项目信息、验证工程师信息、模块设计工程师信息和被测试模块的代码覆盖率总述;
覆盖率信息获取模块,用于对所述URG覆盖率生成文档进行遍历,得到所述被测试模块的覆盖率信息;
Excel表生成模块,用于根据所述覆盖率信息及所述表头信息,生成覆盖率报告的Excel表;具体包括:遍历所述覆盖率信息,进行预设关键字的匹配;获取所述被测试模块的名称;根据所述名称确定当前处理类型;根据所述当前处理类型分别将所述覆盖率信息写入对应的覆盖数据表;所述Excel表包括所述表头信息和覆盖数据表;所述覆盖数据表包括:line行数据表、condition条件数据表、fsm状态机数据表和toggle翻转数据表。
7.一种生成覆盖率报告的设备,其特征在于,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行权利要求1-5任一项所述的生成覆盖率报告的方法;
所述处理器用于调用并执行所述存储器中的所述计算机程序。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5任一项所述的生成覆盖率报告的方法中各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011219910.0A CN112035376B (zh) | 2020-11-05 | 2020-11-05 | 一种生成覆盖率报告的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011219910.0A CN112035376B (zh) | 2020-11-05 | 2020-11-05 | 一种生成覆盖率报告的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035376A CN112035376A (zh) | 2020-12-04 |
CN112035376B true CN112035376B (zh) | 2021-04-09 |
Family
ID=73572948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011219910.0A Active CN112035376B (zh) | 2020-11-05 | 2020-11-05 | 一种生成覆盖率报告的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035376B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613257A (zh) * | 2020-12-30 | 2021-04-06 | 海光信息技术股份有限公司 | 验证方法、装置、电子设备和计算机可读存储介质 |
CN113158607B (zh) * | 2021-04-20 | 2023-09-29 | 四川微巨芯科技有限公司 | SystemVerilog覆盖集生成方法及装置 |
CN113343659B (zh) * | 2021-05-24 | 2023-03-31 | 东风柳州汽车有限公司 | 分析报告生成方法、装置、设备及存储介质 |
CN113220307B (zh) * | 2021-06-08 | 2022-02-22 | 中航机载系统共性技术有限公司 | 一种代码覆盖分析的优化方法、装置及电子设备 |
CN113419959A (zh) * | 2021-07-01 | 2021-09-21 | 合肥忆芯电子科技有限公司 | 一种生成覆盖率验证报告的方法和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488160A (zh) * | 2009-02-25 | 2009-07-22 | 中国科学院计算技术研究所 | 覆盖率驱动随机验证集成电路的方法及系统 |
CN104239219A (zh) * | 2014-10-21 | 2014-12-24 | 中国科学院软件研究所 | 一种基于覆盖的软件缺陷定位技术的在线评测与实验平台及方法 |
CN105279345A (zh) * | 2015-11-19 | 2016-01-27 | 中国空间技术研究院 | 一种航天器用数字软ip核评测方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793315B (zh) * | 2012-10-29 | 2018-12-21 | Sap欧洲公司 | 监视和改善软件开发质量方法、系统和计算机可读介质 |
CN103838653A (zh) * | 2012-11-27 | 2014-06-04 | 上海华虹集成电路有限责任公司 | 基于vmm ral的寄存器自动化验证方法 |
CN104461671A (zh) * | 2014-12-05 | 2015-03-25 | 闻泰通讯股份有限公司 | 代码修改汇报的定时管理方法及系统 |
US10915683B2 (en) * | 2018-03-08 | 2021-02-09 | Synopsys, Inc. | Methodology to create constraints and leverage formal coverage analyzer to achieve faster code coverage closure for an electronic structure |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
CN108897724B (zh) * | 2018-07-03 | 2022-11-15 | 天津芯海创科技有限公司 | 功能完成进度确定方法及装置 |
-
2020
- 2020-11-05 CN CN202011219910.0A patent/CN112035376B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488160A (zh) * | 2009-02-25 | 2009-07-22 | 中国科学院计算技术研究所 | 覆盖率驱动随机验证集成电路的方法及系统 |
CN104239219A (zh) * | 2014-10-21 | 2014-12-24 | 中国科学院软件研究所 | 一种基于覆盖的软件缺陷定位技术的在线评测与实验平台及方法 |
CN105279345A (zh) * | 2015-11-19 | 2016-01-27 | 中国空间技术研究院 | 一种航天器用数字软ip核评测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112035376A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035376B (zh) | 一种生成覆盖率报告的方法、装置、设备及存储介质 | |
CN107516510B (zh) | 一种智能设备自动化语音测试方法及装置 | |
US8627296B1 (en) | Unified unit and integration test with automatic mock creation | |
JP5767471B2 (ja) | テストの網羅性を評価する装置及び方法 | |
US20050229045A1 (en) | Method and device for managing software error | |
CN108490336B (zh) | 板卡测试方法、系统、可读存储介质及计算机设备 | |
CN107080945B (zh) | 测试游戏中人工智能行为的方法、装置及电子设备 | |
WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
CN108874665A (zh) | 一种测试结果校验方法、装置、设备和介质 | |
CN103455414A (zh) | 获取控件的逻辑位置的方法及装置 | |
CN105446864A (zh) | 缓存文件删除影响的校验方法、装置及移动终端 | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN102426567A (zh) | 一种自动应答系统的图形化编辑调试系统 | |
US6457161B1 (en) | Method and program product for modeling circuits with latch based design | |
CN111400169A (zh) | 一种自动化生成用于测试软硬件的网表文件的方法及系统 | |
CN103365772B (zh) | 软件测试自动评价装置以及方法 | |
CN114116505A (zh) | 代码测试方法及装置 | |
CN107562615B (zh) | 基于目标符合性评审论证树模型的适航符合性测试方法 | |
CN112860585B (zh) | 一种测试脚本断言生成方法及装置 | |
CN114280459A (zh) | 面向集成电路的测试方法、装置 | |
CN108920695B (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN113419959A (zh) | 一种生成覆盖率验证报告的方法和设备 | |
CN109684525A (zh) | 文档显示方法、装置、存储介质及测试设备 | |
CN109885443B (zh) | 翻译机测试方法、装置、系统、介质以及电子设备 | |
JP2008262473A (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 |