CN116701182A - 一种覆盖率标记文件更新方法、装置、设备及存储介质 - Google Patents
一种覆盖率标记文件更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116701182A CN116701182A CN202310525400.3A CN202310525400A CN116701182A CN 116701182 A CN116701182 A CN 116701182A CN 202310525400 A CN202310525400 A CN 202310525400A CN 116701182 A CN116701182 A CN 116701182A
- Authority
- CN
- China
- Prior art keywords
- coverage
- file
- item
- updating
- coverage rate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 12
- 238000012795 verification Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 3
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000012986 modification Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 15
- 238000013507 mapping Methods 0.000 description 6
- 230000003416 augmentation Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请属于软件测试技术领域,公开了一种覆盖率标记文件更新方法、装置、设备及存储介质,该方法包括:步骤S1,获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项;步骤S2,根据新程序文件对覆盖项进行更新;步骤S3,对原始覆盖率标记文件重复执行步骤S1‑S2,直至遍历完原始覆盖率标记文件中的所有覆盖项,得到新程序文件对应的目标覆盖率标记文件。本申请可以达到减少设计或验证人员的重复操作、提升代码覆盖率迭代频率和迭代效率,从而间接提升芯片的功能鲁棒性的效果。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种覆盖率标记文件更新方法、装置、设备及存储介质。
背景技术
在集成电路功能设计过程中,覆盖率是芯片验证方法学中衡量当前验证方案是否完备的重要指标,而覆盖率标记文件是设计或验证人员进行覆盖率分析时,对设计或验证环境源文件及其覆盖点进行标记、标注的途径。
在进行代码覆盖率分析时,往往会出现随着设计文件的修改,旧代码的覆盖率标记文件无法完全映射到新的设计或验证文件上的现象,尤其是一处修改就可能影响所有覆盖率标记文件的重新标记。在这类问题出现时,往往需要设计或验证人员手动修改大量的标记文件,不仅费时费力,还会导致代码覆盖率迭代频率和迭代效率低下,同时考虑到覆盖率对于芯片功能正确性和鲁棒性具有的决定性意义,代码覆盖率迭代频率和迭代效率低下还会间接降低芯片的功能鲁棒性。因此,现有技术中存在更新覆盖率标记文件的方法费时费力、导致代码覆盖率迭代频率和迭代效率低下、芯片的功能鲁棒性低下的问题。
发明内容
本申请提供了一种覆盖率标记文件更新方法、装置、设备及存储介质,能够提升代码覆盖率迭代频率和迭代效率,从而间接提升了芯片的功能鲁棒性。
第一方面,本申请实施例提供了一种覆盖率标记文件更新方法,该方法包括:
步骤S1,获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项;
步骤S2,根据新程序文件对覆盖项进行更新;
步骤S3,对原始覆盖率标记文件重复执行步骤S1-S2,直至遍历完原始覆盖率标记文件中的所有覆盖项,得到新程序文件对应的目标覆盖率标记文件。
进一步的,覆盖项包括标记项字典序号、标记项序号、逻辑表达式、文件行号和文件序号。
上述实施例中覆盖项所包括的标记信息,能够帮助设计或验证人员根据这些标记信息对芯片的代码覆盖率进行快速、高效的分析。
进一步的,上述根据新程序文件对覆盖项进行更新,包括:将覆盖项的逻辑表达式和文件行号与新程序文件进行对比,得到对比结果;根据对比结果对覆盖项进行更新。
上述实施例通过覆盖项的逻辑表达式和文件行号与新程序文件进行对比,能够快速准确地判断出该覆盖项对应的代码是否出现修改、该覆盖项是否需要更新。
进一步的,上述根据对比结果对覆盖项进行更新,包括:
若新程序文件中不存在覆盖项的逻辑表达式,则删除覆盖项。
上述实施例实现了当原始程序文档中代码出现删除操作时,覆盖项在新程序文件中的映射。
进一步的,上述根据对比结果对覆盖项进行更新,包括:
根据对比结果判断覆盖项的逻辑表达式或文件行号在新程序文件中是否发生了变化;
若是,则综合逻辑表达式,得到综合逻辑关系,并基于综合逻辑关系和新程序文件的综合数据库对覆盖项进行更新;若否,则保留覆盖项。
上述实施例利用了左值变量的定位是唯一确定的性质,基于综合逻辑关系和综合数据库对覆盖项进行更新,从而保证该逻辑表达式对应的覆盖项更新的准确性。
进一步的,上述基于综合逻辑关系和新程序文件的综合数据库对覆盖项进行更新,包括:
判断综合逻辑关系在综合数据库中是否有匹配;
若是,则根据对比结果获取逻辑表达式在新程序文件中的目标文件行号,将覆盖项中的文件行号更新为目标文件行号;若否,则判断逻辑表达式的左值在综合数据库中是否存在;
若存在,则根据对比结果获取新程序文件中左值对应的目标表达式,将覆盖项中的逻辑表达式更新为目标表达式;否则删除覆盖项。
上述实施例通过对综合数据库中综合逻辑关系的匹配和左值的检测,实现了对发生增加、分离和合并修改操作的代码的覆盖项的快速更新,避免了人为手动操作导致的效率低下。
进一步的,该方法还包括:在遍历完原始覆盖率标记文件中的所有覆盖项后,基于目标文件行号对各覆盖项进行排序,得到目标覆盖率标记文件。
上述实施例解决了当逻辑表达式的左值在新程序文件中的行号位置发生变化时导致更新后的所有覆盖项排序错误的问题,保证了目标覆盖率标记文件的准确性。
进一步的,该方法还包括:
在删除覆盖项后,生成覆盖项对应的删除警告信息。
上述实施例避免了本申请的删除覆盖项的操作有误的情况,通过在删除后发送删除警告信息提醒用户,使用户确认删掉的覆盖项是否正确,保证了目标覆盖率标记文件的准确性。
进一步的,该方法还包括:
在将覆盖项中的文件行号更新为目标文件行号后,或者将覆盖项中的逻辑表达式更新为目标表达式后,生成该覆盖项对应的标记警告信息。
上述实施例通过提醒用户覆盖项更新的位置,方便用户确认本申请更新的覆盖项是否正确,从而保证了目标覆盖率标记文件的准确性。
第二方面,本申请实施例提供了一种覆盖率标记文件更新装置,该装置包括:
覆盖项获取模块,用于获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项;
更新模块,用于根据新程序文件对覆盖项进行更新;
遍历模块,用于对原始覆盖率标记文件重复执行覆盖项获取模块和更新模块,直至遍历完原始覆盖率标记文件中的所有覆盖项,得到新程序文件对应的目标覆盖率标记文件。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时执行如上述任一实施例的一种覆盖率标记文件更新方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种覆盖率标记文件更新方法的步骤。
综上,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的一种覆盖率标记文件更新方法,根据新程序文件,逐项更新原始程序文件对应的原始覆盖率标记文件中的覆盖项,从而实现了对原始覆盖率标记文件的更新,使得到的目标覆盖率标记文件能够映射到新程序文件;上述方法相比较现有技术的手动更新,大幅减少了设计或验证人员的重复操作,从一处代码的修改就可能影响所有覆盖率文件的重新标记,变为任意修改代码但可以自动识别旧标记并将其更新到新代码的映射中,在既定人力规模下,提升了代码覆盖率迭代频率和迭代效率,从而间接提升了芯片的功能鲁棒性。
附图说明
图1为本申请一个示例性实施例提供的一种覆盖率标记文件更新方法的流程图。
图2为本申请一个示例性实施例提供的原始程序文件覆盖项的示意图。
图3为本申请又一个示例性实施例提供的一种覆盖率标记文件更新方法的流程图。
图4为本申请一个示例性实施例提供的一种覆盖率标记文件更新装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,本申请实施例提供了一种覆盖率标记文件更新方法,该方法包括:
步骤S1,获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项。
步骤S2,根据新程序文件对覆盖项进行更新。
步骤S3,对原始覆盖率标记文件重复执行步骤S1-S2,直至遍历完原始覆盖率标记文件中的所有覆盖项,得到新程序文件对应的目标覆盖率标记文件。
其中,原始程序文件即旧的程序文件,新程序文件即对原始程序文件修改后的程序文件。
上述实施例提供的一种覆盖率标记文件更新方法,根据新程序文件,逐项更新原始程序文件对应的原始覆盖率标记文件中的覆盖项,从而实现了对原始覆盖率标记文件的更新,使得到的目标覆盖率标记文件能够映射到新程序文件;上述方法相比较现有技术的手动更新,大幅减少了设计或验证人员的重复操作,从一处代码的修改就可能影响所有覆盖率文件的重新标记,变为任意修改代码但可以自动识别旧标记并将其更新到新代码的映射中,在既定人力规模下,提升了代码覆盖率迭代频率和迭代效率,从而间接提升了芯片的功能鲁棒性。
请参见图2,在一些实施例中,覆盖项具体可以包括标记项字典序号、标记项序号、逻辑表达式、文件行号和文件序号。
具体地,以cadence的imc/vmanager工具为例:
vmanager的标记文件vrefine的覆盖项列表中除了时间等辅助信息外,主要会存储标记项字典序号(comment),标记项序号(entityName),文件序号(file),文件行号(line)和逻辑表达式(text)。标记项字典中会存储字典序号(comment)和对应的标记内容(value)。
上述实施例中覆盖项所包括的标记信息,能够帮助设计或验证人员根据这些标记信息对芯片的代码覆盖率进行快速、高效的分析。
在一些实施例中,上述根据新程序文件对覆盖项进行更新,包括:
将覆盖项的逻辑表达式和文件行号与新程序文件进行对比,得到对比结果。
根据对比结果对覆盖项进行更新。
具体地,由于收集代码覆盖率、存储标记文件的时间段往往在设计结构较为稳定,是设计文件不会出现大规模改动的时期,此时设计人员更新代码时,往往是对部分代码进行修改,而其余大部分代码是维持不变的。因此本申请中新程序文件相对于原始程序文件的改动中,会对代码覆盖标记造成影响的类型作如下分类:
1.增加,体现在代码覆盖项列表有增加,且增加的项目为之前没有出现过的变量。
2.分离,体现在代码覆盖项的某个子逻辑分支变化。
3.合并,体现在代码覆盖项的某项与其他项合并。
4.删除,体现在代码覆盖项的某项被移除。
而将覆盖项的逻辑表达式和文件行号与新程序文件进行对比,就是看源程序文件中的代码是否出现了上述的4种修改操作,并根据其发生的修改类型对覆盖项进行更新。
上述实施例通过覆盖项的逻辑表达式和文件行号与新程序文件进行对比,能够快速准确地判断出该覆盖项对应的代码是否出现修改、该覆盖项是否需要更新。
在一些实施例中,上述根据对比结果对覆盖项进行更新,包括:
若新程序文件中不存在覆盖项的逻辑表达式,则删除覆盖项。
具体地,若对比结果显示新程序文件中不存在该覆盖项的逻辑表达式,说明在新程序文件中,该覆盖项对应的代码发生了删除操作。
上述实施例实现了当原始程序文档中代码出现删除操作时,覆盖项在新程序文件中的映射。
请参见图3,在一些实施例中,上述根据对比结果对覆盖项进行更新,包括:
根据对比结果判断覆盖项的逻辑表达式或文件行号在新程序文件中是否发生了变化。
若是,则综合逻辑表达式,得到综合逻辑关系,并基于综合逻辑关系和新程序文件的综合数据库对覆盖项进行更新;若否,则保留覆盖项。
其中,综合过程即对逻辑表达式的布尔运算、数学运算关系进行记录,如果是触发器、锁存器等会额外记录触发来源,新程序文件的综合数据库包含该模块内所有组合逻辑、时序逻辑(触发器、锁存器)单元的结构及互相之间的连接关系的数据库。
这里也可以用网表的概念来替代综合数据库。
具体地,如果出现覆盖项需要更新的情况,会对单个逻辑表达式本身进行综合(这也包括了仅修改空格,换行等,这类修改在上述流程中同样会发生异常,但是需要用户手动逐个确认),同时对新程序文件进行综合,得到综合数据库,然后更新当前的覆盖项。
由于可综合文件不会存在multidrive的现象,因此对于逻辑表达式左值变量的定位是唯一确定的(无论是时序逻辑还是组合逻辑)。
上述实施例利用了左值变量的定位是唯一确定的性质,基于综合逻辑关系和综合数据库对覆盖项进行更新,从而保证该逻辑表达式对应的覆盖项更新的准确性。
请参见图3,在一些实施例中,上述基于综合逻辑关系和新程序文件的综合数据库对覆盖项进行更新,具体可以包括:
判断综合逻辑关系在综合数据库中是否有匹配。
若是,则根据对比结果获取逻辑表达式在新程序文件中的目标文件行号,将覆盖项中的文件行号更新为目标文件行号;若否,则判断逻辑表达式的左值在综合数据库中是否存在。
若存在,则根据对比结果获取新程序文件中左值对应的目标表达式,将覆盖项中的逻辑表达式更新为目标表达式;否则删除覆盖项。
具体地,综合数据库中不包含模块内组合逻辑和时序逻辑在硬件描述文件中的位置,与程序文件本身相关的信息都是记录在覆盖率标记文件中的。目标文件行号即是逐行读取新程序文件时,看到一个变量表达式即可获得当前它的目标文件行号。
图3中的“创建新的覆盖项”是指将原始覆盖率标记文件中的覆盖项记录的逻辑表达式信息,更新为新的目标表达式。
在具体实施过程中,对于未进行修改的其他覆盖项,仍然可以通过综合数据库的比较,找到其在新程序文件中的对应逻辑表达式及所在目标文件行号,实现自动更新关联。
对于分离或合并的代码修改,会体现在某些覆盖项的逻辑右值发生变化,此时由于当前覆盖项的逻辑表达式的左值变量仍然存在,仍然可以通过比较新程序文件的综合数据库,定位到当前覆盖项在新程序文件中的目标文件行号及新的文件序号。
上述实施例通过对综合数据库中综合逻辑关系的匹配和左值的检测,实现了对发生增加、分离和合并修改操作的代码的覆盖项的快速更新,避免了人为手动操作导致的效率低下。
在一些实施例中,该方法还可以包括:
在遍历完原始覆盖率标记文件中的所有覆盖项后,根据目标文件行号对各覆盖项进行排序,得到目标覆盖率标记文件。
具体地,在比较和更新的过程中,可能会出现覆盖项逻辑表达式的左值在新程序文件中的行号位置发生了变化,因此需要根据更新的目标文件行号对处理完的所有覆盖项重新进行排序。
上述实施例解决了当逻辑表达式的左值在新程序文件中的行号位置发生变化时导致更新后的所有覆盖项排序错误的问题,保证了目标覆盖率标记文件的准确性。
在一些实施例中,该方法还可以包括:
在删除覆盖项后,生成覆盖项对应的删除警告信息。具体地,对于已删除的覆盖项或无法找到的左值,会通过发出删除警告信息提醒用户已自动删除该项目。
上述实施例避免了本申请的删除覆盖项的操作有误的情况,通过在删除后发送删除警告信息提醒用户,使用户确认删掉的覆盖项是否正确,保证了目标覆盖率标记文件的准确性。
在一些实施例中,该方法还可以包括:
在将覆盖项中的文件行号更新为目标文件行号后,或者将覆盖项中的逻辑表达式更新为目标表达式后,生成该覆盖项对应的标记警告信息。具体地,在对覆盖项进行更新后,通过发送标记警告信息,来提醒用户此处发生逻辑变化,需要用户重新确认。
上述实施例通过提醒用户覆盖项更新的位置,方便用户确认本申请更新的覆盖项是否正确,从而保证了目标覆盖率标记文件的准确性。
请参见图4,本申请另一实施例提供了一种覆盖率标记文件更新装置,该装置包括:
覆盖项获取模块101,用于获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项。
更新模块102,用于根据新程序文件对覆盖项进行更新。
遍历模块103,用于对原始覆盖率标记文件重复执行覆盖项获取模块和更新模块,直至遍历完原始覆盖率标记文件中的所有覆盖项,得到新程序文件对应的目标覆盖率标记文件。
上述实施例提供的一种覆盖率标记文件更新装置,根据新程序文件,逐项更新原始程序文件对应的原始覆盖率标记文件中的覆盖项,从而实现了对原始覆盖率标记文件的更新,使得到的目标覆盖率标记文件能够映射到新程序文件;上述装置相比较现有技术的手动更新,大幅减少了设计或验证人员的重复操作,从一处代码的修改就可能影响所有覆盖率文件的重新标记,变为任意修改代码但可以自动识别旧标记并将其更新到新代码的映射中,在既定人力规模下,提升了代码覆盖率迭代频率和迭代效率,从而间接提升了芯片的功能鲁棒性。
本实施例中提供的关于一种覆盖率标记文件装置的具体限定,可以参见上文中关于一种覆盖率标记文件更新方法的实施例,于此不再赘述。上述一种覆盖率标记文件更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参见图3,以一个具体的例子说明本申请的一种覆盖率标记文件更新方法的实现过程:
由于收集代码覆盖率,存储标记文件的时间段往往在设计结构较为稳定,设计文件不会出现大规模改动的时期,此时设计人员更新代码时,往往是对部分代码进行修改,而其余大部分代码是维持不变的。因此对设计文件的改动中,会对代码覆盖标记造成影响的类型作如下分类:
1.增加,体现在代码覆盖项列表有增加,且增加的项目为之前没有出现过的变量。
2.分离,体现在代码覆盖项的某个子逻辑分支变化。
3.合并,体现在代码覆盖项的某项与其他项合并。
4.删除,体现在代码覆盖项的某项被移除。
在新程序文件中应用原始覆盖率标记文件时,对于发生上述代码修改后影响的其它标记项部分,本申请用以下方法进行自动更新关联。
在标记文件中存储标记信息时,会存储该逻辑在当前覆盖率中的序号、在对应文件中的行号、当前的逻辑表达式、以及对应的标记注释或标记操作,具体请参见图2。
对于增加或删除的代码修改,会体现在后续覆盖项的序号变化,这也是其它工具无法自动映射的原因。在本申请映射过程中,如果出现覆盖项更新,会对单个逻辑表达式本身进行综合(这也包括了仅修改空格,换行等,这类修改在上述vmanager流程中同样会发生异常,但是需要用户手动逐个确认),同时对新程序文件进行综合,然后重新定位当前覆盖项所在的行号。
由于可综合文件不会存在multidrive的现象,因此对于逻辑表达式左值变量的定位是唯一确定的(无论是时序逻辑还是组合逻辑)。对于未进行修改的其他覆盖项,仍然可以通过综合数据库的比较,找到其在新程序文件中的对应逻辑表达式及所在行号,实现自动更新关联。对于已删除的标记项或无法找到的左值,会通过删除警告信息提醒用户已自动删除该项目。
对于分离或合并的代码修改,会体现在某些覆盖项的逻辑右值发生变化,此时由于当前逻辑表达式的左值变量仍然存在,仍然可以通过比较新程序文件的综合数据库,定位到当前覆盖项所在的文件行号及新的覆盖项序号,并通过生成标记警告信息,来提醒用户此处发生逻辑变化,需要用户重新确认。本申请的流程如下:
1.从原始覆盖率标记文件中获得一个覆盖项。
2.判断覆盖项的逻辑表达式或文件行号是否发生变化,如果发生变化,则对逻辑表达式进行综合,并与新程序文件综合数据库进行比较。
3.如果有匹配,则更新新行号。如果没有匹配且左值不存在,则删除该覆盖项。如果没有匹配但是左值在综合数据库中存在,则创建为新的覆盖项(本申请不考虑用户主动新增的覆盖项,仅考虑更新之前已创建的覆盖项)。
4.如果覆盖项的逻辑表达式和文件行号都没有发生变化,则表明覆盖向内容保持不变,可以略去后续综合及匹配的流程。
5.处理完所有覆盖项后,整理所有覆盖项,根据其在文件中出现的先后进行排序,最终生成新的覆盖率标记文件。
本申请实施例提供了一种计算机设备,该计算机设备可以包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。处计算机程序被处理器执行时,使得处理器执行如上述任一实施例的一种覆盖率标记文件更新方法的步骤。
本实施例提供的计算机设备的工作过程、工作细节和技术效果,可以参见上文中关于一种覆盖率标记文件更新方法的实施例,于此不再赘述。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种覆盖率标记文件更新方法的步骤。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见上文中关于一种覆盖率标记文件更新方法的实施例,于此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (12)
1.一种覆盖率标记文件更新方法,其特征在于,所述方法包括:
步骤S1,获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项;
步骤S2,根据新程序文件对所述覆盖项进行更新;
步骤S3,对所述原始覆盖率标记文件重复执行步骤S1-S2,直至遍历完所述原始覆盖率标记文件中的所有所述覆盖项,得到所述新程序文件对应的目标覆盖率标记文件。
2.根据权利要求1所述的方法,其特征在于,所述覆盖项包括标记项字典序号、标记项序号、逻辑表达式、文件行号和文件序号。
3.根据权利要求2所述的方法,其特征在于,所述根据新程序文件对所述覆盖项进行更新,包括:将所述覆盖项的所述逻辑表达式和所述文件行号与所述新程序文件进行对比,得到对比结果;根据所述对比结果对所述覆盖项进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述对比结果对所述覆盖项进行更新,包括:若所述新程序文件中不存在所述覆盖项的所述逻辑表达式,则删除所述覆盖项。
5.根据权利要求4所述的方法,其特征在于,所述根据所述对比结果对所述覆盖项进行更新,包括:
根据所述对比结果判断所述覆盖项的所述逻辑表达式或所述文件行号在所述新程序文件中是否发生了变化;
若是,则综合所述逻辑表达式,得到综合逻辑关系,并基于所述综合逻辑关系和所述新程序文件的综合数据库对所述覆盖项进行更新;若否,则保留所述覆盖项。
6.根据权利要求5所述的方法,其特征在于,所述基于所述综合逻辑关系和所述新程序文件的综合数据库对所述覆盖项进行更新,包括:
判断所述综合逻辑关系在所述综合数据库中是否有匹配;
若是,则根据所述对比结果获取所述逻辑表达式在所述新程序文件中的目标文件行号,将所述覆盖项中的所述文件行号更新为所述目标文件行号;
若否,则判断所述逻辑表达式的左值在所述综合数据库中是否存在;
若存在,则根据所述对比结果获取所述新程序文件中所述左值对应的目标表达式,将所述覆盖项中的所述逻辑表达式更新为所述目标表达式;否则删除所述覆盖项。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在遍历完所述原始覆盖率标记文件中的所有所述覆盖项后,基于所述目标文件行号对各所述覆盖项进行排序,得到所述目标覆盖率标记文件。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在删除所述覆盖项后,生成所述覆盖项对应的删除警告信息。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在将所述覆盖项中的所述文件行号更新为所述目标文件行号后,或者将所述覆盖项中的所述逻辑表达式更新为所述目标表达式后,生成所述覆盖项对应的标记警告信息。
10.一种覆盖率标记文件更新装置,其特征在于,所述装置包括:
覆盖项获取模块,用于获取原始程序文件对应的原始覆盖率标记文件中的一个覆盖项;
更新模块,用于根据新程序文件对所述覆盖项进行更新;
遍历模块,用于对所述原始覆盖率标记文件重复执行所述覆盖项获取模块和所述更新模块,直至遍历完所述原始覆盖率标记文件中的所有所述覆盖项,得到所述新程序文件对应的目标覆盖率标记文件。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310525400.3A CN116701182A (zh) | 2023-05-10 | 2023-05-10 | 一种覆盖率标记文件更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310525400.3A CN116701182A (zh) | 2023-05-10 | 2023-05-10 | 一种覆盖率标记文件更新方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701182A true CN116701182A (zh) | 2023-09-05 |
Family
ID=87824770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310525400.3A Pending CN116701182A (zh) | 2023-05-10 | 2023-05-10 | 一种覆盖率标记文件更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701182A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331827A (zh) * | 2023-09-28 | 2024-01-02 | 北京云枢创新软件技术有限公司 | 验证计划中覆盖对象的匹配方法、存储介质及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6536036B1 (en) * | 1998-08-20 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for managing code test coverage data |
US20070250815A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Measuring code coverage |
CN105511889A (zh) * | 2016-01-15 | 2016-04-20 | 珠海金山网络游戏科技有限公司 | 一种通用的游戏版本增量更新系统和方法 |
CN106155909A (zh) * | 2016-07-26 | 2016-11-23 | 网易(杭州)网络有限公司 | 代码覆盖率测试结果的处理方法及装置 |
CN106407126A (zh) * | 2016-11-30 | 2017-02-15 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
CN109002395A (zh) * | 2018-07-06 | 2018-12-14 | 北京京东金融科技控股有限公司 | 一种代码覆盖率管理方法和装置 |
CN110727602A (zh) * | 2019-10-23 | 2020-01-24 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置及存储介质 |
US20200074040A1 (en) * | 2018-08-31 | 2020-03-05 | Mentor Graphics Corporation | Hierarchical expression coverage clustering for design verification |
WO2020259034A1 (zh) * | 2019-06-27 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 下线源代码的识别方法、装置、设备及存储介质 |
US10949172B1 (en) * | 2017-11-14 | 2021-03-16 | Amdocs Development Limited | System, method, and computer program for determining incremental code coverage of a software project |
CN113282504A (zh) * | 2021-06-09 | 2021-08-20 | 北京自如信息科技有限公司 | 一种增量代码覆盖率检测方法及业务开发方法、装置 |
CN115495465A (zh) * | 2022-10-08 | 2022-12-20 | 中银金融科技有限公司 | 一种数据更新方法、装置及电子设备 |
CN115757189A (zh) * | 2022-12-21 | 2023-03-07 | 平安银行股份有限公司 | 增量代码覆盖率分析方法及装置 |
-
2023
- 2023-05-10 CN CN202310525400.3A patent/CN116701182A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6536036B1 (en) * | 1998-08-20 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for managing code test coverage data |
US20070250815A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Measuring code coverage |
CN105511889A (zh) * | 2016-01-15 | 2016-04-20 | 珠海金山网络游戏科技有限公司 | 一种通用的游戏版本增量更新系统和方法 |
CN106155909A (zh) * | 2016-07-26 | 2016-11-23 | 网易(杭州)网络有限公司 | 代码覆盖率测试结果的处理方法及装置 |
CN106407126A (zh) * | 2016-11-30 | 2017-02-15 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置和服务器 |
US10949172B1 (en) * | 2017-11-14 | 2021-03-16 | Amdocs Development Limited | System, method, and computer program for determining incremental code coverage of a software project |
CN109002395A (zh) * | 2018-07-06 | 2018-12-14 | 北京京东金融科技控股有限公司 | 一种代码覆盖率管理方法和装置 |
US20200074040A1 (en) * | 2018-08-31 | 2020-03-05 | Mentor Graphics Corporation | Hierarchical expression coverage clustering for design verification |
WO2020259034A1 (zh) * | 2019-06-27 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 下线源代码的识别方法、装置、设备及存储介质 |
CN110727602A (zh) * | 2019-10-23 | 2020-01-24 | 网易(杭州)网络有限公司 | 覆盖率数据的处理方法、装置及存储介质 |
CN113282504A (zh) * | 2021-06-09 | 2021-08-20 | 北京自如信息科技有限公司 | 一种增量代码覆盖率检测方法及业务开发方法、装置 |
CN115495465A (zh) * | 2022-10-08 | 2022-12-20 | 中银金融科技有限公司 | 一种数据更新方法、装置及电子设备 |
CN115757189A (zh) * | 2022-12-21 | 2023-03-07 | 平安银行股份有限公司 | 增量代码覆盖率分析方法及装置 |
Non-Patent Citations (1)
Title |
---|
RHYME: "利用INTELLIJ IDEA为存在的UT(测试)生成代码覆盖报告(GENERATE COVERAGE REPORT)以及更新UT后更新代码覆盖报告", Retrieved from the Internet <URL:《https://www.cnblogs.com/theRhyme/p/12206367.html》> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331827A (zh) * | 2023-09-28 | 2024-01-02 | 北京云枢创新软件技术有限公司 | 验证计划中覆盖对象的匹配方法、存储介质及电子设备 |
CN117331827B (zh) * | 2023-09-28 | 2024-05-14 | 北京云枢创新软件技术有限公司 | 验证计划中覆盖对象的匹配方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SG172426A1 (en) | Method and system for file type identifying and analyzing | |
CN111078568B (zh) | 代码规范方法、装置、计算机设备和存储介质 | |
CN109902272B (zh) | 电子表格数据处理方法、装置、计算机设备和存储介质 | |
CN116701182A (zh) | 一种覆盖率标记文件更新方法、装置、设备及存储介质 | |
CN111723056A (zh) | 小文件的处理方法、装置、设备和存储介质 | |
CN111026663B (zh) | 一种软件缺陷检测方法、装置、计算机设备和存储介质 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
CN113282513B (zh) | 接口测试案例的生成方法、装置、计算机设备及存储介质 | |
CN111026433A (zh) | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 | |
CN110264137A (zh) | 一种成本bom生成方法、计算机及存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN103761095B (zh) | 一种生成通用的升级文件头部数据信息的方法 | |
CN111324375A (zh) | 代码管理方法、装置、计算机设备和存储介质 | |
CN110413994B (zh) | 热点话题生成方法、装置、计算机设备和存储介质 | |
CN115757629A (zh) | 多源异构数据增量同步方法、系统、存储介质和电子设备 | |
CN112948504B (zh) | 数据采集方法、装置、计算机设备和存储介质 | |
CN116522830B (zh) | 可测试设计及布局布线阶段的逻辑功能更正方法及装置 | |
CN108897727A (zh) | 合同备案方法、装置、计算机设备和存储介质 | |
CN115017871B (zh) | 一种文件档案内容的替换显示方法和显示系统 | |
CN115599388B (zh) | 一种api接口文档生成方法、存储介质及电子设备 | |
CN115422095A (zh) | 一种回归测试用例推荐方法、装置、设备及介质 | |
CN110781310A (zh) | 目标概念图谱的构建方法、装置、计算机设备和存储介质 | |
CN102254155B (zh) | 准确的字体激活 | |
CN105740260A (zh) | 提取模板文件数据结构的方法和装置 | |
CN111400994B (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 |