CN114706785B - 一种覆盖率过滤文件生成方法、装置、设备及介质 - Google Patents

一种覆盖率过滤文件生成方法、装置、设备及介质 Download PDF

Info

Publication number
CN114706785B
CN114706785B CN202210425608.3A CN202210425608A CN114706785B CN 114706785 B CN114706785 B CN 114706785B CN 202210425608 A CN202210425608 A CN 202210425608A CN 114706785 B CN114706785 B CN 114706785B
Authority
CN
China
Prior art keywords
file
coverage rate
modification
rate filtering
code
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
CN202210425608.3A
Other languages
English (en)
Other versions
CN114706785A (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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202210425608.3A priority Critical patent/CN114706785B/zh
Publication of CN114706785A publication Critical patent/CN114706785A/zh
Application granted granted Critical
Publication of CN114706785B publication Critical patent/CN114706785B/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/3676Test management for coverage analysis
    • 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/368Test management for test version control, e.g. updating test cases to a new software version
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,特别是涉及一种覆盖率过滤文件生成方法、装置、设备及介质。所述方法包括:获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件;创建列表文件并在对目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到列表文件中;在对目标项目执行完代码修改操作后读取并解析列表文件,并基于属性信息和修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中的选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件。本发明的方案极大的减少验证工程师工作量,有助于提高验证效率,缩短研发周期。

Description

一种覆盖率过滤文件生成方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种覆盖率过滤文件生成方法、装置、设备及介质。
背景技术
覆盖率数据完全依赖于设计的代码,一旦设计代码更改原有的覆盖率数据就没有意义了。在实际工作中,设计工程师每发布一个新版本的设计代码,验证工程师都会基于新的设计代码重新跑回归,收集新的覆盖率数据进行分析,然后手动或采用工具编写覆盖率过滤文件(即Coverage Exclude,用以记录可忽略的一部分代码)。
目前,对于复杂IP核(即Intellectual Property core)和大规模SoC(System onChip,片上系统)验证来说,设计代码有可能由成百上千个文件组成。如果设计工程师每次发布新版本后,验证工程师都依据新的覆盖率数据库重新分析未覆盖的部分,那工作量无疑是巨大的。尤其是对于那些每次都可以直接过滤的部分,每次都需要重新分析后将其记录在覆盖率过滤文件中并添加注释,相当于是重复性工作,浪费了大量的时间和精力,验证效率较低,进一步还表现为复杂IP核和片上系统的研发周期较长。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种覆盖率过滤文件生成方法、装置、设备及介质。
根据本发明的第一方面,提供了一种覆盖率过滤文件生成方法,所述方法包括:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
在一些实施例中,所述创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中的步骤包括:
对每个功能模块执行以下操作:
获取模块设计代码的第一文件名称、模块设计代码对应的覆盖率过滤文件的第二文件名称、模块设计代码修改前后的两个版本号、模块设计代码的存储路径、以及模块设计代码的修改备注信息,其中,所述修改备注信息包括已知修改类型备注和未知修改类型备注,所述已知修改类型备注包括:注释修改、监测信号修改、层级关系修改;
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一行的多个连续列中;或者
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一列的多个连续行中。
在一些实施例中,所述在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件的步骤包括:
基于所述第一文件名称对每个功能模块执行以下操作:
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为注释修改或监测信号修改,则采用所述第一文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为层级关系修改,则采用所述第二文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于未知修改类型备注,则采用所述第三文件生成策略生成新覆盖率过滤文件。
在一些实施例中,所述采用所述第一文件生成策略生成新覆盖率过滤文件的步骤包括:
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中。
在一些实施例中,所述采用所述第二文件生成策略生成新覆盖率过滤文件的步骤包括:
获取所述修改备注信息中记录的新层级关系;
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中;
获取所述修改备注信息中记录的新层级关系,并将所述新覆盖率过滤文件中记录的层级关系替换为所述新层级关系。
在一些实施例中,所述采用所述第三文件生成策略生成新覆盖率过滤文件的步骤包括:
比对修改前后的两个版本号;
若修改前后的两个版本号不同,则基于所述存储路径和所述第二文件名称读取所述覆盖率过滤文件中的全部过滤原因注释;
将所读取的过滤原因注释与若干预设过滤原因注释进行比对以从所述覆盖率过滤文件中筛选出可用部分;
创建新覆盖率过滤文件,并将所述可用部分复制到所述新覆盖率过滤文件中。
在一些实施例中,所述目标项目为知识产权核或片上系统,且所述知识产权核和片上系统均包括多个功能模块。
根据本发明的第二方面,提供了一种覆盖率过滤文件生成装置,所述装置包括:
获取模块,配置用于获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
添加模块,配置用于创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
选择模块,配置用于在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的覆盖率过滤文件生成方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的覆盖率过滤文件生成方法。
上述一种覆盖率过滤文件生成方法,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
此外,本发明还提供了一种覆盖率过滤文件生成装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例提供的一种覆盖率过滤文件生成方法的流程示意图;
图2为本发明一个实施例提供的覆盖率过滤文件复用原理示意图;
图3为本发明另一个实施例提供的基于三种代码修改类型生成覆盖率过滤文件的整体流程示意图;
图4为本发明另一个实施例提供的一种覆盖率过滤文件生成装置的结构示意;
图5为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本发明提供了一种覆盖率过滤文件生成方法100,具体来说所述方法包括以下步骤:
步骤101,获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
步骤102,创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
步骤103,在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
上述一种覆盖率过滤文件生成方法,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
在一些实施例中,前述步骤102,创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中具体包括:
对每个功能模块执行以下操作:
获取模块设计代码的第一文件名称、模块设计代码对应的覆盖率过滤文件的第二文件名称、模块设计代码修改前后的两个版本号、模块设计代码的存储路径、以及模块设计代码的修改备注信息,其中,所述修改备注信息包括已知修改类型备注和未知修改类型备注,所述已知修改类型备注包括:注释修改、监测信号修改、层级关系修改;
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一行的多个连续列中;或者
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一列的多个连续行中。
在一些实施例中,前述步骤103,在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件具体包括:
基于所述第一文件名称对每个功能模块执行以下操作:
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为注释修改或监测信号修改,则采用所述第一文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为层级关系修改,则采用所述第二文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于未知修改类型备注,则采用所述第三文件生成策略生成新覆盖率过滤文件。
在一些实施例中,所述采用所述第一文件生成策略生成新覆盖率过滤文件的步骤包括:
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中。
在一些实施例中,所述采用所述第二文件生成策略生成新覆盖率过滤文件的步骤包括:
获取所述修改备注信息中记录的新层级关系;
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中;
获取所述修改备注信息中记录的新层级关系,并将所述新覆盖率过滤文件中记录的层级关系替换为所述新层级关系。
在一些实施例中,所述采用所述第三文件生成策略生成新覆盖率过滤文件的步骤包括:
比对修改前后的两个版本号;
若修改前后的两个版本号不同,则基于所述存储路径和所述第二文件名称读取所述覆盖率过滤文件中的全部过滤原因注释;
将所读取的过滤原因注释与若干预设过滤原因注释进行比对以从所述覆盖率过滤文件中筛选出可用部分;
创建新覆盖率过滤文件,并将所述可用部分复制到所述新覆盖率过滤文件中。
在一些实施例中,所述目标项目为知识产权核(即IP核)或片上系统(即SoC系统),且所述知识产权核和片上系统均包括多个功能模块。
在一些实施例中,为了便于理解的本发明的技术方案,下面以目标项目为大规模SoC为例进行详细说明,主要的原理是通过比较新旧两个版本的设计代码,判断修改的内容是否影响旧版覆盖率过滤文件,若不影响,则旧版覆盖率文件可直接复用;若影响,则提取旧版覆盖率文件中可复用的部分,作为新版覆盖率文件。验证工程师只需要给出新旧版本的设计代码、旧版本过滤文件等信息,就可以快速得到新版本的覆盖率文件,本发明方法使用简单,适用于批量操作、项目迭代可复用性高,后续可扩展性高。请结合图2所示,本实施例中覆盖率过滤文件生成方法包括以下三部分:
第一部分:定义列表文件,本实施例规定了一系列条目来描述各个功能模块内模块设计代码的信息。在实际使用时验证工程师可以根据实际情况完成这个列表文件内信息的填写。例如,所需验证的SoC的列表文件中列表信息可参照表1填写:
表1列表文件的内容
列表信息包含模块设计代码名、旧版本覆盖率过滤文件名、模块设计代码旧版本号、模块设计代码新版本号、模块设计代码路径、修改类型。模块设计代码名指明需要处理的模块设计代码。旧版本覆盖率过滤文件提供过滤文件的路径、文件名。设计旧版本号和新版本号用于比较两个版本模块设计代码的不同之处。模块设计代码路径提供模块设计代码所在路径。修改类型一栏只能填以下四种中的一种:注释修改即COMMENT_ONLY、监测信号修改即MONITOR_ONLY、层级关系修改即TO_SOC或空,COMMENT_ONLY表示针对当前模块设计代码,验证人员已经确定新版本相较于对旧版本的修改只包括注释的增加、删减或修改;MONITOR_ONLY表示针对当前模块设计代码,验证人员已经确定新版本相较于对旧版本的修改只包括监测信号的增加、删减或修改,监测信号指不影响设计功能也不关心其覆盖率的作为监测或调试功能的信号;TO_SOC表示当前module级覆盖率过滤文件要复用到SoC级,后面跟的就是SoC级的层次结构;空表示验证人员并不清楚新旧版本对当前模块设计代码有哪些修改,此时脚本会自行分析修改类型是否为COMMENT_ONLY或MONITOR_ONLY。
第二部分:基于列表文件判断是否能够直接复用原覆盖率过滤文件;具体来说是根据第一部分填写的列表文件给出的信息判断,若修改类型为COMMENT_ONLY或MONITOR_ONLY,则旧版本的覆盖率过滤文件可直接复用;若修改类型为TO_SOC,则将覆盖率过滤文件中的层次结构替换为SoC级的层次结构即可;若修改类型为空,比较新旧版本设计代码的不同之处,分析修改类型:若类型为COMMENT_ONLY或MONITOR_ONLY,则旧版本覆盖率过滤文件可直接复用;否则,需要利用第三部分提取原有覆盖率过滤文件中可用部分。
第三部分:提取原覆盖率过滤文件中可用部分;具体来说是据旧版本覆盖率过滤文件的注释中的标识信息,提取其中的可复用部分输出新的覆盖率过滤文件,同时输出旧版覆盖率文件中可以过滤而新版不能过滤的旧版本独有过滤信息文件供参考。这要求验证工程师在旧版本覆盖率过滤文件中为需要复用的过滤内容添加带有标识的注释,在本专利中规定以_REUSE结尾的注释所指的过滤内容就是可复用的部分。常见的可复用的过滤内容比如标准接口协议中未用到的信号、地址位、数据位,实际应用场景中不存在的情况等。
请参照图3所示,下面结合表1中填入的信息和以上列举的四种修改类型说明新覆盖率过滤文件生成方式:
步骤一,依次遍历列表文件,将列表文件中内容按行存储在一个数据结构中,为后续处理做准备。
步骤二,判断数据结构中当前模块设计代码的修改类型是否为COMMENT_ONLY或MONITOR_ONLY,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤三,判断数据结构中当前模块设计代码的修改类型是否为TO_SOC,若是,将覆盖率过滤文件中的层次结构替换为SoC级的层次结构作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤四,根据模块设计代码的路径、名称、新旧版本号,比较两者的差异,并将差异输出到一个文件中,供后续步骤使用。
步骤五,根据步骤四输出的差异文件,检查差异是否只限于注释的增加、删减、修改,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤六,根据步骤四输出的差异文件,检查差异是否只限于monitor信号的增加、删减、修改,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则根据旧版本覆盖率过滤文件的路径、名称访问该过滤文件,遍历每一行提取其中可重用的部分打印到新的覆盖率过滤文件中。VCS的标准过滤文件格式实例如下:
//This file contains the Exclude objects
//……
CHECKSUM:““
INSTANCE:
ANNOTATION:““
Toggle/Branch/Condition/FSM/Block/Transition
……
ANNOTATION:““
Toggle/Branch/Condition/FSM/Block/Transition
……
CHECKSUM:““
INSTANCE:
ANNOTATION:““
……
在具体实施过程中,相关实现代码示例如下:
在具体实施过程中提取原覆盖率过滤文件中可用部分代码参考如下:
在本实施例中,上述一种覆盖率过滤文件生成方法针对传统的覆盖率收集和覆盖率过滤文件定义做了两点改进,首先通过定义一个列表文件来管理存在修改的模块设计代码的信息,通过脚本对其进行批量比较,减少验证工程师工作量;其次通过在覆盖率过滤文件中添加后缀的方式来标识后续版本可以重用的部分,这样验证工程师每一个版本的覆盖率分析都是有意义的,在下次分析时可以通过脚本快速提取这些内容,减少不必要的重复工作,大大降低重复性工作量,减少时间和人力的消耗,提高工作效率,生成新覆盖率过滤文件的速度快,适用于大规模SoC和IP的覆盖率过滤文件复用。
在又一个实施例中,请参照图4所示,本发明还提供了一种覆盖率过滤文件生成装置200,所述装置包括:
获取模块201,配置用于获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
添加模块202,配置用于创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
选择模块203,配置用于在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
上述一种覆盖率过滤文件生成装置,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
需要说明的是,关于覆盖率过滤文件生成装置的具体限定可以参见上文中对覆盖率过滤文件生成方法的限定,在此不再赘述。上述覆盖率过滤文件生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的覆盖率过滤文件生成方法,具体来说,所述方法包括以下步骤:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的覆盖率过滤文件生成方法,具体来说,包括执行以下步骤:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种覆盖率过滤文件生成方法,在于,所述方法包括:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
2.根据权利要求1所述的方法,其特征在于,所述创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中的步骤包括:
对每个功能模块执行以下操作:
获取模块设计代码的第一文件名称、模块设计代码对应的覆盖率过滤文件的第二文件名称、模块设计代码修改前后的两个版本号、模块设计代码的存储路径、以及模块设计代码的修改备注信息,其中,所述修改备注信息包括已知修改类型备注和未知修改类型备注,所述已知修改类型备注包括:注释修改、监测信号修改、层级关系修改;
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一行的多个连续列中;或者
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一列的多个连续行中。
3.根据权利要求2所述的方法,其特征在于,所述在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件的步骤包括:
基于所述第一文件名称对每个功能模块执行以下操作:
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为注释修改或监测信号修改,则采用所述第一文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为层级关系修改,则采用所述第二文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于未知修改类型备注,则采用所述第三文件生成策略生成新覆盖率过滤文件。
4.根据权利要求3所述的方法,其特征在于,所述采用所述第一文件生成策略生成新覆盖率过滤文件的步骤包括:
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中。
5.根据权利要求3所述的方法,其特征在于,所述采用所述第二文件生成策略生成新覆盖率过滤文件的步骤包括:
获取所述修改备注信息中记录的新层级关系;
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中;
获取所述修改备注信息中记录的新层级关系,并将所述新覆盖率过滤文件中记录的层级关系替换为所述新层级关系。
6.根据权利要求3所述的方法,其特征在于,所述采用所述第三文件生成策略生成新覆盖率过滤文件的步骤包括:
比对修改前后的两个版本号;
若修改前后的两个版本号不同,则基于所述存储路径和所述第二文件名称读取所述覆盖率过滤文件中的全部过滤原因注释;
将所读取的过滤原因注释与若干预设过滤原因注释进行比对以从所述覆盖率过滤文件中筛选出可用部分;
创建新覆盖率过滤文件,并将所述可用部分复制到所述新覆盖率过滤文件中。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述目标项目为知识产权核或片上系统,且所述知识产权核和片上系统均包括多个功能模块。
8.一种覆盖率过滤文件生成装置,其特征在于,所述装置包括:
获取模块,配置用于获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
添加模块,配置用于创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
选择模块,配置用于在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1至7任意一项所述的方法。
CN202210425608.3A 2022-04-22 2022-04-22 一种覆盖率过滤文件生成方法、装置、设备及介质 Active CN114706785B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210425608.3A CN114706785B (zh) 2022-04-22 2022-04-22 一种覆盖率过滤文件生成方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210425608.3A CN114706785B (zh) 2022-04-22 2022-04-22 一种覆盖率过滤文件生成方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114706785A CN114706785A (zh) 2022-07-05
CN114706785B true CN114706785B (zh) 2024-03-26

Family

ID=82175552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210425608.3A Active CN114706785B (zh) 2022-04-22 2022-04-22 一种覆盖率过滤文件生成方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114706785B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201863A (zh) * 2016-06-22 2016-12-07 广州唯品会信息科技有限公司 一种获取代码覆盖率的方法和装置
CN112363937A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112363936A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11994979B2 (en) * 2020-05-13 2024-05-28 Synopsys, Inc. Smart regression test selection for software development

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201863A (zh) * 2016-06-22 2016-12-07 广州唯品会信息科技有限公司 一种获取代码覆盖率的方法和装置
CN112363937A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112363936A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姜文 ; 刘立康 ; .基于持续集成的C/C++软件覆盖率测试.计算机技术与发展.2017,(03),全文. *

Also Published As

Publication number Publication date
CN114706785A (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
US10372594B2 (en) Method and device for retrieving test case based on code coverage
CN110941546A (zh) Web页面用例的自动化测试方法、装置、设备及存储介质
US10261967B2 (en) Data extraction
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
CN110109897A (zh) 数据库脚本生成方法、装置、计算机设备和存储介质
CN112363937B (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN103377123B (zh) 一种网页代码自动化测试方法及装置
CN110990282B (zh) 一种自动化单元测试方法
CN112363936A (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN114706785B (zh) 一种覆盖率过滤文件生成方法、装置、设备及介质
CN111459796B (zh) 自动化测试方法、装置、计算机设备和存储介质
CN112346981A (zh) 联调测试覆盖率检测方法及系统
CN112631704A (zh) 一种界面元素识别方法、装置、存储介质及电子设备
CN116521538A (zh) 命令行界面自动测试方法、装置、电子设备及存储介质
CN113485919B (zh) 测试方法、测试装置及计算机可读存储介质
CN112463596B (zh) 测试用例数据的处理方法、装置、设备以及处理设备
CN115705297A (zh) 代码调用检测方法、装置、计算机设备以及存储介质
CN112699279A (zh) 组件自动化处理方法、装置、设备和存储介质
CN112433943A (zh) 基于抽象语法树的环境变量检测方法、装置、设备及介质
CN117421039B (zh) 前端Vue工程的版本信息生成方法、装置、设备和存储介质
CN116107889A (zh) 应用程序的回归测试方法、装置、计算机设备和存储介质
CN117453673A (zh) 用于数据仓库的数据一致性验证方法、装置、设备及介质
CN115757131A (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