CN117951027A - 全量项目代码的检测方法、装置、存储介质以及电子设备 - Google Patents

全量项目代码的检测方法、装置、存储介质以及电子设备 Download PDF

Info

Publication number
CN117951027A
CN117951027A CN202410159799.2A CN202410159799A CN117951027A CN 117951027 A CN117951027 A CN 117951027A CN 202410159799 A CN202410159799 A CN 202410159799A CN 117951027 A CN117951027 A CN 117951027A
Authority
CN
China
Prior art keywords
data
target
source code
link
source codes
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
Application number
CN202410159799.2A
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202410159799.2A priority Critical patent/CN117951027A/zh
Publication of CN117951027A publication Critical patent/CN117951027A/zh
Pending legal-status Critical Current

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/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种全量项目代码的检测方法、装置、存储介质以及电子设备。涉及软件测试领域或其他相关领域,该方法包括:获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息;遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码;对Y个变更项目源码进行检测,得到检测结果,将检测结果发送至客户端。通过本申请,解决了相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题。

Description

全量项目代码的检测方法、装置、存储介质以及电子设备
技术领域
本申请涉及软件测试领域或其他相关领域,具体而言,涉及一种全量项目代码的检测方法、装置、存储介质以及电子设备。
背景技术
近年来,随着金融科技的快速发展,金融机构使用的软件系统越来越多,对软件系统的需求迭代也越来越快,系统架构越来越复杂,测试周期越来越短,如何保证如期高质量上线成为测试人员面临的挑战。由于金融机构使用的软件系统具有业务链条长、系统结构复杂、无法完全解耦等多个特点,在相关技术对软件系统进行检测时,通常是基于人工经验分析选定的测试案例对软件系统进行检测,但该方法存在着分析粒度较大、检测效率低等问题,不足以达到测试范围无遗漏、关联系统间影响分析准确的效果。
针对相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种全量项目代码的检测方法、装置、存储介质以及电子设备,以解决相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种全量项目代码的检测方法。该方法包括:获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端。
进一步地,全量项目源码的目标链路调用图通过以下方式确定:获取全量项目源码关联的项目属性数据,根据项目属性数据获取M个源码文件,其中,每个子项目源码关联一个源码文件;对M个源码文件进行词法分析,得到M个目标特征流,并根据M个目标特征流确定M个目标语法树,其中,每个目标语法树的叶子节点由目标语法树关联的目标特征流内的N个源码数据确定,N为正整数;由M个目标语法树生成M个链路关系图,并根据M个链路关系图确定目标链路调用图,其中,每个链路关系图用于表征每个目标语法树关联的子项目源码内N个源码数据之间的数据调用关系。
进一步地,对M个源码文件进行词法分析,得到M个目标特征流包括:对M个源码文件进行分词处理,得到M组初始数据,其中,每组初始数据包括N个第一处理数据;对M组初始数据进行词性标注处理,得到M组处理数据,其中,每组处理数据包括N个源码数据,每个源码数据关联一种数据类型,数据类型至少包括以下之一:修饰符、关键字、标识符、操作符、处理对象以及处理方法;对于一组处理数据,根据数据类型对处理数据内的N个源码数据进行分类整合,得到一组源码数据集,并由一组源码数据集确定一个目标特征流,得到M个目标特征流,其中,一组源码数据集包括N个源码数据。
进一步地,根据M个目标特征流确定M个目标语法树包括:获取预设语法规则,其中,预设语法规则用于为每个目标特征流内的N个源码数据匹配语法关系;对于每个目标特征流,根据预设语法规则对目标特征流关联的N个源码数据进行语法匹配处理,得到一组匹配特征数据,其中一组匹配特征数据包括N个匹配有语法关系的源码数据;对于每个目标特征流,根据一组匹配特征数据生成目标特征流的目标语法树,得到M个目标语法树。
进一步地,由M个目标语法树生成M个链路关系图,并根据M个链路关系图确定目标链路调用图包括:遍历M个目标语法树,得到M个目标语法树关联的链路数据,根据M个目标语法树关联的链路数据确定每个目标语法树的链路关系图,得到M个链路关系图;获取每个目标语法树对应的目标特征流关联的一组源码数据集的数据类型,根据数据类型对M个链路关系图进行整合处理,得到目标链路调用图。
进一步地,每个目标语法树关联的链路数据通过以下方式确定:在目标语法树的根节点为无效节点的情况下,将空值确定为链路数据;在目标语法树的根节点为叶子节点的情况下,遍历叶子节点的子节点,将叶子节点的语法树值确定为链路数据,其中,在叶子节点的数据类型为变量类型的情况下,将变量类型的值确定为链路数据,在叶子节点的数据类型为列表类型的情况下,将列表链路信息确定为链路数据。
进一步地,根据项目属性数据获取M个源码文件包括:从项目属性数据中获取源码路径信息,得到M个源码路径信息,其中,M个源码路径信息用于指示M个源码文件存储在源码版本库的地址信息;根据M个源码路径信息从源码版本库中提取源码文件,得到M个源码文件。
为了实现上述目的,根据本申请的另一方面,提供了一种全量项目代码的检测装置。该装置包括:获取单元,用于获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;遍历单元,用于遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;检测单元,用于对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种全量项目代码的检测方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包含一个或多个处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种全量项目代码的检测方法。
通过本申请,采用以下步骤:获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端,解决了相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题,通过获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,从目标链路调用图中获取调用路径信息,根据调用路径信息从多个子项目源码中获取发生变更的多个变更项目源码,并将这些变更项目源码进行测试,得到全量项目源码的检测结果,并将其发送至运维人员使用的客户端,进而达到了提高对全量项目源码的检测效率和检测精度的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的全量项目代码的检测方法的流程图;
图2是根据本申请实施例提供的可选的目标语法树的示意图;
图3是根据本申请实施例提供的可选的全量项目代码的检测方法的示意图;
图4是根据本申请实施例提供的链路关系图的确定方法的示意图;
图5是根据本申请实施例提供的全量项目代码的检测装置的示意图;
图6是根据本申请实施例提供的电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例提供的全量项目代码的检测方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数。
具体地,由于金融机构开发的软件系统存在着数量多、更新迭代要求高、系统架构复杂等特点,当需要对金融机构使用的软件系统进行检测时,为了解决相关技术中利用人工经验进行系统分析而导致的检测精度低、检测效率低的问题,可以通过利用待检测的软件系统关联的链路调用图进行辅助检测,其中,链路调用图是一种包含有待检测的软件系统内代码之间调用关系的检测工具,使用该链路调用图可以实现精准测试、进一步提升链路扫描准确性的目的。
对待检测的软件系统进行检测时,可以对该软件系统中的待检测项目的全量项目源码进行检测,在确定待检测软件系统后,获取待检测软件系统对应的待检测项目的全量项目源码,在基于链路调用图进行检测时,并根据该全量项目源码确定能够指示全量项目源码之间的调用路径信息,也即需要获取链路调用图。需要说明的是,精准测试是一种通过对测试过程的活动进行监控,将采集到的监控数据进行分析,得到精准的量化数据并使用量化数据进行质量评价的测试方案。
步骤S102,遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数。
具体地,在基于目标链路调用图进行全量项目源码的检测时,首先对全量项目源码进行不同子项目源码的提取,进而得到多个子项目源码,同时从获取的目标链路调用图中提取每个子项目源码的调用路径信息,其中,调用路径信息包含有每个子项目源码所有可能的执行路径信息。
进一步可以利用该目标链路调用图中的调用路径信息对每个子项目源码的调用路径信息进行对比,得到子项目源码中与目标链路调用图中的调用路径信息存在差异的子项目源码,也即获取发生变更的子项目源码,得到多个变更项目源码。
步骤S103,对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端。
具体地,在基于目标链路调用图确定多个变更项目源码后,可以对这些变更项目源码进行精准检测,也即判断这些变更项目源码以及变更项目源码关联的接口是否需要进行调整,得到检测结果,从而测试人员可以通过客户端获得检测结果,并基于该检测结果对全量项目源码以及变更项目源码关联的接口进行调整处理。
本申请实施例提供的全量项目代码的检测方法,通过获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端,解决了相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题,通过获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,从目标链路调用图中获取调用路径信息,根据调用路径信息从多个子项目源码中获取发生变更的多个变更项目源码,并将这些变更项目源码进行测试,得到全量项目源码的检测结果,并将其发送至运维人员使用的客户端,进而达到了提高对全量项目源码的检测效率和检测精度的效果。
利用目标链路调用图对全量项目源码进行检测前,首先需要确定目标链路调用图,可选地,在本申请实施例提供的全量项目代码的检测方法中,全量项目源码的目标链路调用图通过以下方式确定:获取全量项目源码关联的项目属性数据,根据项目属性数据获取M个源码文件,其中,每个子项目源码关联一个源码文件;对M个源码文件进行词法分析,得到M个目标特征流,并根据M个目标特征流确定M个目标语法树,其中,每个目标语法树的叶子节点由目标语法树关联的目标特征流内的N个源码数据确定,N为正整数;由M个目标语法树生成M个链路关系图,并根据M个链路关系图确定目标链路调用图,其中,每个链路关系图用于表征每个目标语法树关联的子项目源码内N个源码数据之间的数据调用关系。
具体地,首先可以获取代码版本管理系统,从该管理系统中克隆出待检测项目的全量项目源码的项目属性数据,从而基于项目属性数据获取到子项目源码的源码文件,其中,项目属性数据包括全量项目源码的源码存储路径信息以及不同子项目源码对应的子项目信息。
进一步地,对每个源码文件分别进行词法分析处理和语法分析处理,以得到对应的目标语法树,为了方便测试人员及时查看,可以对语法树中各叶子节点和叶子节点属性进行分类处理,并按照构造方法、依赖方法、静态方法、接口实现、抽象方法进行标记,将标记的结果记录数据库,其中,目标语法树是一种记录程序规约过程中使用的各种语法规则的架构,该语法树具有自下向上的分层结构,每个代码的语法结构可以通过语法树得以全面展示。
再进一步地,基于目标语法树生成用于表征每个子项目源码内部调用关系的链路关系图,最后对多个链路关系图进行合并,从而确定目标链路调用图。本实施例通过利用全量项目源码的信息确定目标链路调用图,为后续利用目标链路调用图测试待检测项目的全量项目源码奠定基础。
目标特征流是由源码文件处理得到,可选地,在本申请实施例提供的全量项目代码的检测方法中,对M个源码文件进行词法分析,得到M个目标特征流包括:对M个源码文件进行分词处理,得到M组初始数据,其中,每组初始数据包括N个第一处理数据;对M组初始数据进行词性标注处理,得到M组处理数据,其中,每组处理数据包括N个源码数据,每个源码数据关联一种数据类型,数据类型至少包括以下之一:修饰符、关键字、标识符、操作符、处理对象以及处理方法;对于一组处理数据,根据数据类型对处理数据内的N个源码数据进行分类整合,得到一组源码数据集,并由一组源码数据集确定一个目标特征流,得到M个目标特征流,其中,一组源码数据集包括N个源码数据。
需要说明的是,在从代码版本管理系统中克隆出待检测项目的全量项目源码的项目属性数据、基于项目属性数据确定多个源码文件后,可以基于源码文件确定目标特征流,其中,目标特征流也即Token流,是指在编程语言中将源代码按照词法分析的结果组成一个个的Token序列,每个Token代表源代码中的一个词法单元,例如关键字、标识符、运算符、常量等,可以用来进行语法分析和语义分析,以便进行编译或解释。
具体地,由于目标特征流是通过源码文件得到的,因此可以对源码文件进行词法分析,而词法分析包括分词以及词性标注等处理步骤,首先可以对源码文件进行分词处理,并对分词处理后的数据进行词性标注处理,也即对完成分词处理的数据(也即源码数据)分别按照编程语言基础数据类型、修饰符、对象、方法等数据类型进行标注,从而得到多个处理数据,再根据数据类型对处理数据内的源码数据进行分类整合,由整合后的源码数据集得到一个源码文件关联的一个目标特征流。本实施例通过利用源码文件生成目标特征流,进而为利用目标链路调用图测试待检测项目的全量项目源码奠定基础。
目标语法树由目标特征流处理得到,可选地,在本申请实施例提供的全量项目代码的检测方法中,根据M个目标特征流确定M个目标语法树包括:获取预设语法规则,其中,预设语法规则用于为每个目标特征流内的N个源码数据匹配语法关系;对于每个目标特征流,根据预设语法规则对目标特征流关联的N个源码数据进行语法匹配处理,得到一组匹配特征数据,其中一组匹配特征数据包括N个匹配有语法关系的源码数据;对于每个目标特征流,根据一组匹配特征数据生成目标特征流的目标语法树,得到M个目标语法树。
具体地,在由源码文件生成目标特征流后,可以基于目标特征流生成目标语法树,首先可以对生成的目标特征流进行语法分析,将目标特征流中的源码数据按照数据类型进行分类和标记,再利用获取的预设语法规则对目标特征流关联的整合后的源码数据集进行语法匹配处理,进而得到匹配特征数据,其中,预设语法规则用于确保每个目标特征流的源码数据能够正确匹配语法关系。
进一步根据每个整合后的源码数据集的数据类型确定语法树模板,根据该语法树模板将匹配特征数据进行连接,从而得到目标语法树,其中,语法树是一种树形结构,用来表示子项目源码的语法结构,其中每个节点代表一个语法结构。例如,图2是根据本申请实施例提供的可选的目标语法树的示意图,如图2所示,若存在一个“x=0;”的代码,根据该代码生成目标语法树时,可以获取代码中的数据的语法关系,该代码中的语法关系包括分配关系和符号,其中,分配关系包括“x”、“=”以及赋值“0”,符号为“;”,进一步可以根据语法关系生成目标语法树。本实施例通过构建目标语法树,可以清晰地表示出每个子项目源码的结构,便于进行语法分析、语义分析等工作,进而为全量项目源码的优化和调试提供了便利。
目标链路调用图由目标语法树生成的链路关系图整合得到,可选地,在本申请实施例提供的全量项目代码的检测方法中,由M个目标语法树生成M个链路关系图,并根据M个链路关系图确定目标链路调用图包括:遍历M个目标语法树,得到M个目标语法树关联的链路数据,根据M个目标语法树关联的链路数据确定每个目标语法树的链路关系图,得到M个链路关系图;获取每个目标语法树对应的目标特征流关联的一组源码数据集的数据类型,根据数据类型对M个链路关系图进行整合处理,得到目标链路调用图。
具体地,在由目标语法树生成目标链路调用图时,首先需要遍历每个子项目源码的目标语法树,以识别每个语法树关联的链路数据,然后根据这些链路数据能够组成每个目标语法树的链路关系图,其中,链路关系图可以表征每个子项目源码中每个代码片段之间的调用关系和依赖关系。
进一步地,可以基于每个目标语法树对应的目标特征流关联的源码数据集的数据类型确定目标链路调用图,也即通过获取目标语法树中各个叶子节点标记的叶子节点属性的信息,对所有链路关系图进行整合处理,从而得到最终的目标链路调用图。例如,若待检测项目中包括A、B两个子项目源码,并且A子项目源码中包含有a、b、c三种策略,其中a策略调用了b策略和B子项目源码中的d策略,b策略调用了c策略,B子项目源码中包含有d、e两种策略,d策略调用了A子项目源码中的c策略,e策略调用了d策略,此时基于目标语法树生成每个子项目源码的链路关系图时,A子项目源码关联的链路关系图包含的调用关系包括a策略调用b策略、b策略调用c策略,B子项目源码关联的链路关系图包含的调用关系包括e策略调用d策略;在基于链路关系图确定目标链路调用图时,目标链路调用图的调用关系包括a策略调用b策略、a策略调用d策略、b策略调用c策略、d策略调用c策略和e策略调用d策略。本实施例通过确定目标链路调用图,能够准确确定全量项目源码的调用关系,从而提高对待检测项目的检测效率,并更好地进行后续的分析和优化工作。
可选地,在本申请实施例提供的全量项目代码的检测方法中,每个目标语法树关联的链路数据通过以下方式确定:在目标语法树的根节点为无效节点的情况下,将空值确定为链路数据;在目标语法树的根节点为叶子节点的情况下,遍历叶子节点的子节点,将叶子节点的语法树值确定为链路数据,其中,在叶子节点的数据类型为变量类型的情况下,将变量类型的值确定为链路数据,在叶子节点的数据类型为列表类型的情况下,将列表链路信息确定为链路数据。
在确定每个目标语法树中的链路数据时,可以根据目标语法树中叶子节点的数据类型进行确定,具体地,当目标语法树中的节点为语法树根节点时,判断该根节点是否关联叶子节点,若根节点为null,则将空值确定为链路数据,若根节点关联有叶子节点,此时可以将叶子节点的语法树值确定为链路数据:若语法树的叶子节点为一个操作符,首先需要对其子节点进行遍历,进而将遍历后得到的值确定为链路数据;若语法树的叶子节点为变量或常量,可以直接将变量或常量的值确定为链路数据;若语法树的叶子节点为控制流语句(例如if语句或while循环语句),需要将True和False分支加入遍历队列,从而将遍历后得到的值确定为链路数据;若语法树的叶子节点为一个函数调用语句,需要遍历其参数,并将参数确定为链路数据;若语法树的叶子节点为列表类型,则返回列表链路信息。本实施例通过利用叶子节点的数据类型确定链路数据,进而为生成链路关系图奠定基础。
在利用源码文件生成目标特征流前,需要对源码文件进行提取,可选地,在本申请实施例提供的全量项目代码的检测方法中,根据项目属性数据获取M个源码文件包括:从项目属性数据中获取源码路径信息,得到M个源码路径信息,其中,M个源码路径信息用于指示M个源码文件存储在源码版本库的地址信息;根据M个源码路径信息从源码版本库中提取源码文件,得到M个源码文件。
具体地,由于项目属性数据包含有全量项目源码的源码存储路径信息以及不同子项目源码对应的子项目信息,此时可以从项目属性数据中获取源码路径信息,从而基于源码路径信息从存储全量项目源码的源码版本库中提取子项目源码的源码文件,本实施例通过利用项目属性数据提取源码文件,能够提高文件的获取效率,从而为提高全量项目源码的检测效率奠定基础。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种可选的全量项目代码的检测方法,图3是根据本申请实施例提供的可选的全量项目代码的检测方法的示意图,如图3所示,该方法包括:
首先获取代码版本管理系统,从该管理系统中克隆出待检测项目的全量项目源码的项目属性数据,从而基于项目属性数据获取到子项目源码的源码文件,其中,项目属性数据包括全量项目源码的源码存储路径信息以及不同子项目源码对应的子项目信息。进一步地,对每个源码文件分别进行词法分析处理,通过对源码文件进行分词处理,并对分词处理后的数据进行词性标注处理,从而得到多个处理数据,再根据数据类型对处理数据内的源码数据进行分类整合,由整合后的源码数据集得到一个源码文件关联的一个目标特征流,也即得到一个源码文件关联的Token流。
进一步对生成的目标特征流进行语法分析,将目标特征流中的源码数据按照数据类型进行分类和标记,再利用获取的预设语法规则对目标特征流关联的整合后的源码数据集进行语法匹配处理,进而得到匹配特征数据,并根据每个整合后的源码数据集的数据类型确定语法树模板,根据该语法树模板将匹配特征数据进行连接,从而得到目标语法树。
为了方便测试人员及时查看,图4是根据本申请实施例提供的链路关系图的确定方法的示意图,如图4所示,可以对语法树中各叶子节点和叶子节点属性进行分类处理,并按照构造方法、依赖方法、静态方法、接口实现、抽象方法进行标记,将标记的结果记录数据库,再遍历每个子项目源码的目标语法树的叶子节点,以识别每个语法树关联的链路数据,然后根据这些链路数据能够组成每个目标语法树的链路关系图,最后对多个链路关系图进行整合,从而输出目标链路调用图。
本实施例通过获取全量项目源码关联的项目属性数据,并由项目属性数据确定全量项目源码的源码文件,对源码文件进行词法分析以及语法分析后得到目标语法树,从而由目标语法树生成链路关系图,并根据链路关系图确定目标链路调用图,从而为提高对全量项目源码的检测效率和检测精度奠定基础。
本申请实施例还提供了一种全量项目代码的检测装置,需要说明的是,本申请实施例的全量项目代码的检测装置可以用于执行本申请实施例所提供的用于全量项目代码的检测方法。以下对本申请实施例提供的全量项目代码的检测装置进行介绍。
图5是根据本申请实施例提供的全量项目代码的检测装置的示意图,如图5所示,该装置包括:获取单元50、遍历单元51、检测单元52。
获取单元50,用于获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;
遍历单元51,用于遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;
检测单元52,用于对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端。
本申请实施例提供的全量项目代码的检测装置,通过获取单元50获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,其中,全量项目源码包括M个子项目源码,目标链路调用图用于指示M个子项目源码之间的调用路径信息,M为正整数;遍历单元51遍历全量项目源码,得到M个子项目源码,从目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据M个调用路径信息确定M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;检测单元52对Y个变更项目源码进行检测,得到检测结果,并将检测结果发送至客户端,解决了相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题,通过获取待检测项目的全量项目源码,并获取全量项目源码的目标链路调用图,从目标链路调用图中获取调用路径信息,根据调用路径信息从多个子项目源码中获取发生变更的多个变更项目源码,并将这些变更项目源码进行测试,得到全量项目源码的检测结果,并将其发送至运维人员使用的客户端,进而达到了提高对全量项目源码的检测效率和检测精度的效果。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元52包括:全量项目源码的目标链路调用图通过以下方式确定:第一获取模块,用于获取全量项目源码关联的项目属性数据,根据项目属性数据获取M个源码文件,其中,每个子项目源码关联一个源码文件;分析模块,用于对M个源码文件进行词法分析,得到M个目标特征流,并根据M个目标特征流确定M个目标语法树,其中,每个目标语法树的叶子节点由目标语法树关联的目标特征流内的N个源码数据确定,N为正整数;生成模块,用于由M个目标语法树生成M个链路关系图,并根据M个链路关系图确定目标链路调用图,其中,每个链路关系图用于表征每个目标语法树关联的子项目源码内N个源码数据之间的数据调用关系。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元50包括:第一处理模块,用于对M个源码文件进行分词处理,得到M组初始数据,其中,每组初始数据包括N个第一处理数据;第二处理模块,用于对M组初始数据进行词性标注处理,得到M组处理数据,其中,每组处理数据包括N个源码数据,每个源码数据关联一种数据类型,数据类型至少包括以下之一:修饰符、关键字、标识符、操作符、处理对象以及处理方法;整合模块,用于对于一组处理数据,根据数据类型对处理数据内的N个源码数据进行分类整合,得到一组源码数据集,并由一组源码数据集确定一个目标特征流,得到M个目标特征流,其中,一组源码数据集包括N个源码数据。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元50包括:第二获取模块,用于获取预设语法规则,其中,预设语法规则用于为每个目标特征流内的N个源码数据匹配语法关系;第三处理模块,用于对于每个目标特征流,根据预设语法规则对目标特征流关联的N个源码数据进行语法匹配处理,得到一组匹配特征数据,其中一组匹配特征数据包括N个匹配有语法关系的源码数据;生成模块,用于对于每个目标特征流,根据一组匹配特征数据生成目标特征流的目标语法树,得到M个目标语法树。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元50包括:第一遍历模块,用于遍历M个目标语法树,得到M个目标语法树关联的链路数据,根据M个目标语法树关联的链路数据确定每个目标语法树的链路关系图,得到M个链路关系图;第三获取模块,用于获取每个目标语法树对应的目标特征流关联的一组源码数据集的数据类型,根据数据类型对M个链路关系图进行整合处理,得到目标链路调用图。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元50包括:每个目标语法树关联的链路数据通过以下方式确定:确定模块,用于在目标语法树的根节点为无效节点的情况下,将空值确定为链路数据;第二遍历模块,用于在目标语法树的根节点为叶子节点的情况下,遍历叶子节点的子节点,将叶子节点的语法树值确定为链路数据,其中,在叶子节点的数据类型为变量类型的情况下,将变量类型的值确定为链路数据,在叶子节点的数据类型为列表类型的情况下,将列表链路信息确定为链路数据。
可选地,在本申请实施例提供的全量项目代码的检测装置中,获取单元50包括:第四获取模块,用于从项目属性数据中获取源码路径信息,得到M个源码路径信息,其中,M个源码路径信息用于指示M个源码文件存储在源码版本库的地址信息;提取模块,用于根据M个源码路径信息从源码版本库中提取源码文件,得到M个源码文件。
上述全量项目代码的检测装置包括处理器和存储器,上述的获取单元50、遍历单元51、检测单元52等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中对项目源码进行检测时存在检测效率低、检测精度低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种全量项目代码的检测方法。
图6是根据本申请实施例提供的电子设备的示意图,如图6所示,本发明实施例提供了一种电子设备,电子设备60包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种全量项目代码的检测方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行一种全量项目代码的检测方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种全量项目代码的检测方法,其特征在于,包括:
获取待检测项目的全量项目源码,并获取所述全量项目源码的目标链路调用图,其中,所述全量项目源码包括M个子项目源码,所述目标链路调用图用于指示所述M个子项目源码之间的调用路径信息,M为正整数;
遍历所述全量项目源码,得到所述M个子项目源码,从所述目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据所述M个调用路径信息确定所述M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;
对所述Y个变更项目源码进行检测,得到检测结果,并将所述检测结果发送至客户端。
2.根据权利要求1所述的方法,其特征在于,所述全量项目源码的目标链路调用图通过以下方式确定:
获取所述全量项目源码关联的项目属性数据,根据所述项目属性数据获取M个源码文件,其中,每个子项目源码关联一个源码文件;
对所述M个源码文件进行词法分析,得到M个目标特征流,并根据所述M个目标特征流确定M个目标语法树,其中,每个目标语法树的叶子节点由所述目标语法树关联的目标特征流内的N个源码数据确定,N为正整数;
由所述M个目标语法树生成M个链路关系图,并根据所述M个链路关系图确定所述目标链路调用图,其中,每个链路关系图用于表征每个目标语法树关联的子项目源码内所述N个源码数据之间的数据调用关系。
3.根据权利要求2所述的方法,其特征在于,对所述M个源码文件进行词法分析,得到M个目标特征流包括:
对所述M个源码文件进行分词处理,得到M组初始数据,其中,每组初始数据包括N个第一处理数据;
对所述M组初始数据进行词性标注处理,得到M组处理数据,其中,每组处理数据包括所述N个源码数据,每个源码数据关联一种数据类型,所述数据类型至少包括以下之一:修饰符、关键字、标识符、操作符、处理对象以及处理方法;
对于一组处理数据,根据所述数据类型对所述处理数据内的所述N个源码数据进行分类整合,得到一组源码数据集,并由所述一组源码数据集确定一个目标特征流,得到所述M个目标特征流,其中,所述一组源码数据集包括所述N个源码数据。
4.根据权利要求2所述的方法,其特征在于,根据所述M个目标特征流确定M个目标语法树包括:
获取预设语法规则,其中,所述预设语法规则用于为每个目标特征流内的所述N个源码数据匹配语法关系;
对于每个目标特征流,根据所述预设语法规则对所述目标特征流关联的所述N个源码数据进行语法匹配处理,得到一组匹配特征数据,其中所述一组匹配特征数据包括N个匹配有语法关系的源码数据;
对于每个目标特征流,根据所述一组匹配特征数据生成所述目标特征流的目标语法树,得到所述M个目标语法树。
5.根据权利要求2所述的方法,其特征在于,由所述M个目标语法树生成M个链路关系图,并根据所述M个链路关系图确定所述目标链路调用图包括:
遍历所述M个目标语法树,得到M个目标语法树关联的链路数据,根据所述M个目标语法树关联的链路数据确定每个目标语法树的链路关系图,得到所述M个链路关系图;
获取每个目标语法树对应的目标特征流关联的一组源码数据集的数据类型,根据所述数据类型对所述M个链路关系图进行整合处理,得到所述目标链路调用图。
6.根据权利要求5所述的方法,其特征在于,每个目标语法树关联的链路数据通过以下方式确定:
在所述目标语法树的根节点为无效节点的情况下,将空值确定为所述链路数据;
在所述目标语法树的根节点为叶子节点的情况下,遍历所述叶子节点的子节点,将所述叶子节点的语法树值确定为所述链路数据,其中,在所述叶子节点的数据类型为变量类型的情况下,将变量类型的值确定为所述链路数据,在所述叶子节点的数据类型为列表类型的情况下,将列表链路信息确定为所述链路数据。
7.根据权利要求2所述的方法,其特征在于,根据所述项目属性数据获取M个源码文件包括:
从所述项目属性数据中获取源码路径信息,得到M个源码路径信息,其中,所述M个源码路径信息用于指示所述M个源码文件存储在源码版本库的地址信息;
根据所述M个源码路径信息从所述源码版本库中提取源码文件,得到所述M个源码文件。
8.一种全量项目代码的检测装置,其特征在于,包括:
获取单元,用于获取待检测项目的全量项目源码,并获取所述全量项目源码的目标链路调用图,其中,所述全量项目源码包括M个子项目源码,所述目标链路调用图用于指示所述M个子项目源码之间的调用路径信息,M为正整数;
遍历单元,用于遍历所述全量项目源码,得到所述M个子项目源码,从所述目标链路调用图中提取调用路径信息,得到M个调用路径信息,并根据所述M个调用路径信息确定所述M个子项目源码中发生变更的子项目源码,得到Y个变更项目源码,其中,Y为正整数;
检测单元,用于对所述Y个变更项目源码进行检测,得到检测结果,并将所述检测结果发送至客户端。
9.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储程序,其中,所述程序运行时控制所述计算机存储介质所在的设备执行权利要求1至7中任意一项所述的全量项目代码的检测方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的全量项目代码的检测方法。
CN202410159799.2A 2024-02-04 2024-02-04 全量项目代码的检测方法、装置、存储介质以及电子设备 Pending CN117951027A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410159799.2A CN117951027A (zh) 2024-02-04 2024-02-04 全量项目代码的检测方法、装置、存储介质以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410159799.2A CN117951027A (zh) 2024-02-04 2024-02-04 全量项目代码的检测方法、装置、存储介质以及电子设备

Publications (1)

Publication Number Publication Date
CN117951027A true CN117951027A (zh) 2024-04-30

Family

ID=90798190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410159799.2A Pending CN117951027A (zh) 2024-02-04 2024-02-04 全量项目代码的检测方法、装置、存储介质以及电子设备

Country Status (1)

Country Link
CN (1) CN117951027A (zh)

Similar Documents

Publication Publication Date Title
US10558554B2 (en) Machine learning based software correction
CN110737899B (zh) 一种基于机器学习的智能合约安全漏洞检测方法
Bento et al. Automated analysis of distributed tracing: Challenges and research directions
US20170109657A1 (en) Machine Learning-Based Model for Identifying Executions of a Business Process
US20170109668A1 (en) Model for Linking Between Nonconsecutively Performed Steps in a Business Process
US20170109667A1 (en) Automaton-Based Identification of Executions of a Business Process
CN106293891B (zh) 多维投资指标监督方法
CN110909363A (zh) 基于大数据的软件第三方组件漏洞应急响应系统及方法
Pickerill et al. PHANTOM: Curating GitHub for engineered software projects using time-series clustering
US20240036841A1 (en) Method and Apparatus for Compatibility Detection, Device and Non-transitory computer-readable storage medium
CN111124870A (zh) 一种接口测试方法及装置
CN109918296A (zh) 软件自动化测试方法及装置
CN112688966A (zh) webshell检测方法、装置、介质和设备
US20170109640A1 (en) Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
Saluja et al. Optimized approach for antipattern detection in service computing architecture
CN110750297A (zh) 一种基于程序分析和文本分析的Python代码参考信息生成方法
CN117687920A (zh) 接口的测试方法及装置、存储介质和电子设备
KR20220069482A (ko) 빅데이터 증강분석 프로파일링 시스템
US20170109637A1 (en) Crowd-Based Model for Identifying Nonconsecutive Executions of a Business Process
CN117951027A (zh) 全量项目代码的检测方法、装置、存储介质以及电子设备
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
KR102217092B1 (ko) 애플리케이션의 품질 정보 제공 방법 및 장치
CN115525575A (zh) 一种基于Dataworks平台的数据自动化测试方法及系统
CN113641702A (zh) 一种语句审计后与数据库客户端交互处理方法和装置
CN108255802B (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