CN116069667A - 基于代码分析的测试用例辅助定位方法及装置 - Google Patents
基于代码分析的测试用例辅助定位方法及装置 Download PDFInfo
- Publication number
- CN116069667A CN116069667A CN202310203517.XA CN202310203517A CN116069667A CN 116069667 A CN116069667 A CN 116069667A CN 202310203517 A CN202310203517 A CN 202310203517A CN 116069667 A CN116069667 A CN 116069667A
- Authority
- CN
- China
- Prior art keywords
- source code
- function
- code
- target
- modification
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000006870 function Effects 0.000 claims description 110
- 230000004048 modification Effects 0.000 claims description 73
- 238000012986 modification Methods 0.000 claims description 68
- 230000008676 import Effects 0.000 claims description 9
- 238000013522 software testing Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于代码分析的测试用例辅助定位方法及装置,先解析出目标文件的源代码的结构并基于源代码的结构建立目标文件的索引信息,再获取提交的修改代码的修改位置,之后基于目标文件的索引信息确定修改位置对应的目标接口,最终基于预先建立的接口与用例之间的关联关系确定目标接口对应的目标用例。采用本发明可以缓解现有软件测试技术中存在的用例覆盖工作量大、用例覆盖不准确的问题。
Description
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种基于代码分析的测试用例辅助定位方法及装置。
背景技术
通常对软件进行测试之前,需要编写测试用例,然后人工去逐条执行用例或者自动化执行用例以达到测试的目的。但随着软件迭代版本以及需要适配的运行场景增多,测试用例的数量会大量增加,一个成熟系统的普通模块测试用例数量级在几千个,整个系统测试用例可达到几万,甚至十万。这就带来了一个问题,如果软件修改了某个模块的一行代码,为了获知需要执行多少个用例、哪些用例才能覆盖软件的修改,通常的做法是测试人员和开发人员沟通,双方共识后主观判断受影响的用例,而且为了测试完整,会进行修改模块的整体测试,但这种做法在软件数量庞大且运行场景很多时显然带来了灾难级的工作量,就算使用自动化测试也难以在短时间内完成,且由于人的主观性较强容易造成用例覆盖不准确(可能覆盖过多、可能覆盖过少),从而影响测试结果。
发明内容
有鉴于此,本发明的目的在于提供一种基于代码分析的测试用例辅助定位方法及装置,以缓解现有软件测试技术中存在的用例覆盖工作量大、用例覆盖不准确的问题。
第一方面,本发明实施例提供了一种基于代码分析的测试用例辅助定位方法,所述方法包括:解析出目标文件的源代码的结构,并基于所述源代码的结构建立所述目标文件的索引信息;获取提交的修改代码的修改位置;基于所述目标文件的索引信息,确定所述修改位置对应的目标接口;基于预先建立的接口与用例之间的关联关系,确定所述目标接口对应的目标用例。
第二方面,本发明实施例还提供一种基于代码分析的测试用例辅助定位装置,所述装置包括:解析模块,用于解析出目标文件的源代码的结构,并基于所述源代码的结构建立所述目标文件的索引信息;获取模块,用于获取提交的修改代码的修改位置;第一确定模块,用于基于所述目标文件的索引信息,确定所述修改位置对应的目标接口;第二确定模块,用于基于预先建立的接口与用例之间的关联关系,确定所述目标接口对应的目标用例。
本发明实施例提供的一种基于代码分析的测试用例辅助定位方法及装置,先解析出目标文件的源代码的结构并基于源代码的结构建立目标文件的索引信息,再获取提交的修改代码的修改位置,之后基于目标文件的索引信息确定修改位置对应的目标接口,最终基于预先建立的接口与用例之间的关联关系确定目标接口对应的目标用例。采用上述技术,在软件代码发生修改后,能够快速确定出覆盖软件修改所需执行的用例,可以降低用例覆盖的工作量,同时提高用例覆盖的准确性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于代码分析的测试用例辅助定位方法的流程示意图;
图2为本发明实施例中解析项的代码示例图;
图3为本发明实施例中解析包路径和导入项的代码示例图;
图4为本发明实施例中包路径解析结构的代码示例图;
图5为本发明实施例中解析代码区的代码示例图;
图6为本发明实施例中解析变量区的代码示例图;
图7为本发明实施例中解析函数区的代码示例图;
图8为本发明实施例中一种基于代码分析的测试用例辅助定位装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在对软件进行测试之前,需要编写测试用例,然后人工去逐条执行用例或者自动化执行用例以达到测试的目的。在软件测试的过程中,如果软件修改了某个模块的一行代码,为了获知需要执行多少个用例、哪些用例才能覆盖软件的修改,通常的做法是测试人员和开发人员沟通,双方共识后主观判断受影响的用例,而且为了测试完整,会进行修改模块的整体测试,但这种做法在软件数量庞大且运行场景很多时显然带来了灾难级的工作量,就算使用自动化测试也难以在短时间内完成,且由于人的主观性较强容易造成用例覆盖不准确(可能覆盖过多、可能覆盖过少),从而影响测试结果。
基于此,本发明实施提供的一种基于代码分析的测试用例辅助定位方法及装置,可以缓解现有软件测试技术中存在的用例覆盖工作量大、用例覆盖不准确的问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于代码分析的测试用例辅助定位方法进行详细介绍,参见图1所示,该方法可以包括以下步骤:
步骤S102,解析出目标文件的源代码的结构,并基于源代码的结构建立目标文件的索引信息。
上述目标文件可以为特定后缀名的文件,具体可根据软件测试的实际需求自行确定,对此不进行限定。在确定目标文件后,可对目标文件的源代码每一行的结构进行解析,从而得到相应的源代码的结构,之后根据解析出来的这部分源代码的结构建立相应的索引信息。上述索引信息用于表征源代码内容的层级关系,其具体形式可以采用树状、链状、表格等,对此不进行限定。
步骤S104,获取提交的修改代码的修改位置。
示例性地,在开发人员修改了某一目标文件的源代码并进行提交后,可通过对比该目标文件修改前后的源代码定位出相应行的代码修改。此外,为了便于相关人员获知修改代码的修改位置,还可为修改代码添加相应的指示标识(如颜色标识、下划线标识等)。
步骤S106,基于目标文件的索引信息,确定修改位置对应的目标接口。
示例性地,在确定出修改代码的修改位置后,可基于目标文件的索引信息确定出修改代码所在的最低层级,并由该层级向上查找索引信息直至找到修改代码所在的最高层级,并将修改代码所在最高层级的接口确定为目标接口。
步骤S108,基于预先建立的接口与用例之间的关联关系,确定目标接口对应的目标用例。
示例性地,可在编写用例时建立接口与用例之间的关联关系,具体操作方式可以为:对于编写的每个用例,均将相应接口的标识编写到该用例的预设字段中,从而使相应接口与该用例关联。在确定出目标接口后,可用目标接口的标识查找每个用例的字段,直至找到与目标接口的标识对应匹配的字段,并将该字段所属用例确定为目标用例(即覆盖代码修改所需执行的用例)。
本发明实施例提供的一种基于代码分析的测试用例辅助定位方法,先解析出目标文件的源代码的结构并基于源代码的结构建立目标文件的索引信息,再获取提交的修改代码的修改位置,之后基于目标文件的索引信息确定修改位置对应的目标接口,最终基于预先建立的接口与用例之间的关联关系确定目标接口对应的目标用例。采用上述技术,在软件代码发生修改后,能够快速确定出覆盖软件修改所需执行的用例,可以降低用例覆盖的工作量,同时提高用例覆盖的准确性。
作为一种可能的实施方式,上述源代码的结构可以包括上述源代码的各个函数间的调用关系;基于此,上述解析出目标文件的源代码的结构的步骤可以包括:(11)对源代码进行函数级别的解析,得到源代码的函数集合;(12)解析出函数集合中各个函数的参数;其中,参数包括函数名称;(13)根据函数集合中各个函数的参数,确定源代码的各个函数间的调用关系。
示例性地,上述对所述源代码进行函数级别的解析,得到源代码的函数集合的步骤可以包括:(111)解析出源代码的包路径、导入项和代码区;(112)解析出代码区的函数代码区;(113)解析出函数代码区中每个函数的函数代码,并将解析出的全部函数组成源代码的函数集合。
以某个目标文件为例,参见图2所示,该目标文件的解析项可以包括三大部分,即包路径、导入项和代码区。参见图3所示,可分别对包路径和导入项各自做进一步的解析,从而解析出包路径和导入项各自所包含的关键字和嵌套对象,导入项的解析方式与包路径的解析方式相同,区别仅在于同一目标文件下导入项通常可以有多条而包路径通常只有一条。在解析包路径和导入项时,还可按照不同粒度逐级进行解析,例如com.troila.xxx会被解析成如图4所示的结构,以此类推解析出每个包路径和每个导入项各自的结构。参见图5所示,可对代码区做进一步的解析,从而解析出代码区所包含的注释、注解、作用域、class关键字、类名、继承关系集合、类括号、变量区和函数区。参见图6所示,可对变量区做进一步的解析,从而解析出变量区所包含的注释、注解、作用域、变量类型、变量名和分号。参见图7所示,可对函数区做进一步的解析,从而解析出函数区所包含的注释、注解和函数代码区,可对函数代码区做进一步的解析,从而解析出函数代码区所包含的作用域、返回值、函数名、参数区、函数括号、语法区(如条件语法、循环语法等)和引用区。在解析出函数代码区中每个函数的函数代码后,可将解析出的全部函数组成一个函数集合,之后从参数区中解析出该函数集合中各个函数的参数(如函数名称等),并根据解析出的各个函数的参数确定各个函数间的调用关系,例如图7中调用关系为函数c调用函数a和函数b。
作为一种可能的实施方式,上述基于源代码的结构建立目标文件的索引信息的步骤可以包括:(21)根据源代码的各个函数间的调用关系,确定源代码的每个函数的引用和/或调用者;(22)对于源代码的具有调用者的每个函数,将该函数分别与该函数的每个调用者对应关联成相应的键值对;(23)将得到的全部键值对组成目标文件的索引信息。
接续前例图7,在得到函数代码区的进一步解析结果后,可知晓c调用a和b,可据此通过查找匹配的方式得到a和b的调用者均为c、c的引用为a和b,将a和b分别与c对应关联成相应的键值对“a”:“c”和“b”:“c”,之后建立索引信息[“a”:“c”,“b”:“c”]并采用map数据结构写入到内存中。
作为一种可能的实施方式,上述步骤S106(即基于目标文件的索引信息,确定修改位置对应的目标接口)可以包括:基于修改位置查找目标文件的索引信息以确定修改位置对应的一个或多个目标函数,并将确定的全部目标函数作为目标接口;其中,每个目标函数均不具有相应的调用者。
接续前例,在通过关联键值对的方式为每个目标文件建立相应索引信息后,指定任意一个目标文件中任意一个类的任意一个函数(在java中对应为方法)后即可快速找到相应的调用者,然后递归查找到最高层级的调用者作为接口(api),具体操作方式可以为:先用key找到value,再用找到的value作为新的key继续递归查找,直到找到没有value的所有key作为api。
作为一种可能的实施方式,上述步骤S104(即获取提交的修改代码的修改位置)可以包括:通过代码管理工具(如git、svn等)获取提交的修改代码的修改位置。例如,可通过代码管理工具git自带的命令定位出指定提交的修改代码的修改位置。
为了便于理解,在此以某一具体应用为例对上述方法进行示例性描述如下。可基于上述方法开发出相应的辅助工具,上述方法可以按照以下步骤进行实现:
第一步,测试人员在编写用例时把用例和api绑定。
可使用第三方工具编写用例,绑定过程实际上可以是将api的标识填写到用例的某一个字段中。
第二步,把需要测试的项目源代码导入辅助工具中,导入后通过辅助工具对特定后缀名文件的每一行代码结构进行解析以得到各个函数间的调用关系,之后基于该调用关系通过上述关联键值对的方式为每一个文件建立相应的索引并采用map数据结构保存在内存中。
第三步,开发人员修改代码托管在代码管理工具git中,修改后的代码提交后触发辅助工具分析git的日志以定位出提交的代码的修改位置。
其中,修改位置可以指源代码中具体哪一行或哪几行代码发生了修改,可用行序号表征修改位置。
第四步,通过辅助工具从上述索引中找到修改位置的函数最高层级的api作为受代码修改影响的目标api。
第五步:基于之前api与用例之间的绑定关系,使用第三方工具查询功能查询出目标api对应的目标用例。
其中,目标用例可以为覆盖代码修改所需执行的用例。
上述方法能够快速定位出覆盖软件修改所需执行的用例,修改的代码越是底层基础代码,优势越明显,因为修改底层基础代码,可能给几十个不同业务模块带来影响,通过辅助工具的自动分析能快速得到覆盖软件修改所需执行的用例,如果配合自动化测试则可大大减轻测试工作量和缩短测试用例的执行时间,为软件新版本快速迭代发布提供了可能。
在上述基于代码分析的测试用例辅助定位方法的基础上,本发明实施例还提供一种基于代码分析的测试用例辅助定位装置,参见图8所示,该装置可以包括:
解析模块802,用于解析出目标文件的源代码的结构,并基于所述源代码的结构建立所述目标文件的索引信息;
获取模块804,用于获取提交的修改代码的修改位置;
第一确定模块806,用于基于所述目标文件的索引信息,确定所述修改位置对应的目标接口;
第二确定模块808,用于基于预先建立的接口与用例之间的关联关系,确定所述目标接口对应的目标用例。
本发明实施例提供的一种基于代码分析的测试用例辅助定位装置,先解析出目标文件的源代码的结构并基于源代码的结构建立目标文件的索引信息,再获取提交的修改代码的修改位置,之后基于目标文件的索引信息确定修改位置对应的目标接口,最终基于预先建立的接口与用例之间的关联关系确定目标接口对应的目标用例。采用上述技术,在软件代码发生修改后,能够快速确定出覆盖软件修改所需执行的用例,可以降低用例覆盖的工作量,同时提高用例覆盖的准确性。
上述源代码的结构可以包括上述源代码的各个函数间的调用关系;上述解析模块802还可以用于:对所述源代码进行函数级别的解析,得到所述源代码的函数集合;解析出所述函数集合中各个函数的参数;其中,所述参数包括函数名称;根据所述函数集合中各个函数的参数,确定所述源代码的各个函数间的调用关系。
上述解析模块802还用于:根据所述源代码的各个函数间的调用关系,确定所述源代码的每个函数的引用和/或调用者;对于所述源代码的具有调用者的每个函数,将该函数分别与该函数的每个调用者对应关联成相应的键值对;将得到的全部键值对组成所述目标文件的索引信息。
上述第一确定模块806还可以用于:基于所述修改位置查找所述目标文件的索引信息以确定所述修改位置对应的一个或多个目标函数,并将确定的全部目标函数作为所述目标接口;其中,每个目标函数均不具有相应的调用者。
上述解析模块802还可以用于:解析出所述源代码的包路径、导入项和代码区;解析出所述代码区的函数代码区;解析出所述函数代码区中每个函数的函数代码,并将解析出的全部函数组成所述源代码的函数集合。
上述获取模块804还可以用于:通过代码管理工具获取提交的修改代码的修改位置。
参见图8所示,该装置还可以包括:
建立模块810,用于在编写用例时,建立接口与用例之间的关联关系。
上述建立模块810还可以用于:对于编写的每个用例,均将相应接口的标识编写到该用例的预设字段中,从而使相应接口与该用例关联。
本发明实施例所提供的基于代码分析的测试用例辅助定位装置,其实现原理及产生的技术效果和前述基于代码分析的测试用例辅助定位方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于代码分析的测试用例辅助定位方法,其特征在于,所述方法包括:
解析出目标文件的源代码的结构,并基于所述源代码的结构建立所述目标文件的索引信息;
获取提交的修改代码的修改位置;
基于所述目标文件的索引信息,确定所述修改位置对应的目标接口;
基于预先建立的接口与用例之间的关联关系,确定所述目标接口对应的目标用例。
2.根据权利要求1所述的方法,其特征在于,所述源代码的结构包括所述源代码的各个函数间的调用关系;解析出目标文件的源代码的结构的步骤包括:
对所述源代码进行函数级别的解析,得到所述源代码的函数集合;
解析出所述函数集合中各个函数的参数;其中,所述参数包括函数名称;
根据所述函数集合中各个函数的参数,确定所述源代码的各个函数间的调用关系。
3.根据权利要求2所述的方法,其特征在于,基于所述源代码的结构建立所述目标文件的索引信息的步骤包括:
根据所述源代码的各个函数间的调用关系,确定所述源代码的每个函数的引用和/或调用者;
对于所述源代码的具有调用者的每个函数,将该函数分别与该函数的每个调用者对应关联成相应的键值对;
将得到的全部键值对组成所述目标文件的索引信息。
4.根据权利要求1所述的方法,其特征在于,基于所述目标文件的索引信息,确定所述修改位置对应的目标接口的步骤包括:
基于所述修改位置查找所述目标文件的索引信息以确定所述修改位置对应的一个或多个目标函数,并将确定的全部目标函数作为所述目标接口;其中,每个目标函数均不具有相应的调用者。
5.根据权利要求2所述的方法,其特征在于,对所述源代码进行函数级别的解析,得到所述源代码的函数集合的步骤包括:
解析出所述源代码的包路径、导入项和代码区;
解析出所述代码区的函数代码区;
解析出所述函数代码区中每个函数的函数代码,并将解析出的全部函数组成所述源代码的函数集合。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在编写用例时,建立接口与用例之间的关联关系。
7.根据权利要求6所述的方法,其特征在于,建立接口与用例之间的关联关系的步骤包括:
对于编写的每个用例,均将相应接口的标识编写到该用例的预设字段中,从而使相应接口与该用例关联。
8.根据权利要求1所述的方法,其特征在于,获取提交的修改代码的修改位置的步骤包括:
通过代码管理工具获取提交的修改代码的修改位置。
9.一种基于代码分析的测试用例辅助定位装置,其特征在于,所述装置包括:
解析模块,用于解析出目标文件的源代码的结构,并基于所述源代码的结构建立所述目标文件的索引信息;
获取模块,用于获取提交的修改代码的修改位置;
第一确定模块,用于基于所述目标文件的索引信息,确定所述修改位置对应的目标接口;
第二确定模块,用于基于预先建立的接口与用例之间的关联关系,确定所述目标接口对应的目标用例。
10.根据权利要求9所述的装置,其特征在于,所述源代码的结构包括所述源代码的各个函数间的调用关系;所述解析模块还用于:
对所述源代码进行函数级别的解析,得到所述源代码的函数集合;
解析出所述函数集合中各个函数的参数;其中,所述参数包括函数名称;
根据所述函数集合中各个函数的参数,确定所述源代码的各个函数间的调用关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310203517.XA CN116069667A (zh) | 2023-03-06 | 2023-03-06 | 基于代码分析的测试用例辅助定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310203517.XA CN116069667A (zh) | 2023-03-06 | 2023-03-06 | 基于代码分析的测试用例辅助定位方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069667A true CN116069667A (zh) | 2023-05-05 |
Family
ID=86182154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310203517.XA Pending CN116069667A (zh) | 2023-03-06 | 2023-03-06 | 基于代码分析的测试用例辅助定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069667A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331849A (zh) * | 2023-12-01 | 2024-01-02 | 杭银消费金融股份有限公司 | 一种基于代码精准分析的测试方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528399A (zh) * | 2015-09-15 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种测试用例确定方法及装置 |
CN110716859A (zh) * | 2019-08-30 | 2020-01-21 | 平安普惠企业管理有限公司 | 自动为修改的代码推送测试用例的方法及相关装置 |
CN112799939A (zh) * | 2021-01-22 | 2021-05-14 | 网易(杭州)网络有限公司 | 增量代码覆盖率测试方法及装置、存储介质、电子设备 |
CN113849392A (zh) * | 2020-06-28 | 2021-12-28 | 中国电信股份有限公司 | 分析函数调用的方法和装置 |
CN115421831A (zh) * | 2022-08-29 | 2022-12-02 | 北京百度网讯科技有限公司 | 生成活动组件调用关系的方法、装置、设备及存储介质 |
CN115659356A (zh) * | 2022-11-08 | 2023-01-31 | 广东启链科技有限公司 | 基于抽象语法树实现路径搜索深度自适应调整的方法 |
-
2023
- 2023-03-06 CN CN202310203517.XA patent/CN116069667A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528399A (zh) * | 2015-09-15 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种测试用例确定方法及装置 |
CN110716859A (zh) * | 2019-08-30 | 2020-01-21 | 平安普惠企业管理有限公司 | 自动为修改的代码推送测试用例的方法及相关装置 |
CN113849392A (zh) * | 2020-06-28 | 2021-12-28 | 中国电信股份有限公司 | 分析函数调用的方法和装置 |
CN112799939A (zh) * | 2021-01-22 | 2021-05-14 | 网易(杭州)网络有限公司 | 增量代码覆盖率测试方法及装置、存储介质、电子设备 |
CN115421831A (zh) * | 2022-08-29 | 2022-12-02 | 北京百度网讯科技有限公司 | 生成活动组件调用关系的方法、装置、设备及存储介质 |
CN115659356A (zh) * | 2022-11-08 | 2023-01-31 | 广东启链科技有限公司 | 基于抽象语法树实现路径搜索深度自适应调整的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331849A (zh) * | 2023-12-01 | 2024-01-02 | 杭银消费金融股份有限公司 | 一种基于代码精准分析的测试方法及系统 |
CN117331849B (zh) * | 2023-12-01 | 2024-02-27 | 杭银消费金融股份有限公司 | 一种基于代码精准分析的测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665171B (zh) | 自动回归测试方法及装置 | |
CN109902016B (zh) | 一种Web的测试方法及测试平台 | |
CN107943694B (zh) | 一种测试数据生成方法及装置 | |
CN106844730B (zh) | 文件内容的显示方法及装置 | |
AU2010350247A1 (en) | Code inspection executing system for performing a code inspection of ABAP source codes | |
CN105867906B (zh) | 一种面向软件演化的代码可替换性评估方法 | |
CN116069667A (zh) | 基于代码分析的测试用例辅助定位方法及装置 | |
CN106681904B (zh) | 测试件覆盖率及覆盖应用接口的分析方法、装置 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN113900962B (zh) | 代码差异检测方法及装置 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
CN117093497B (zh) | 测试报告处理方法、装置、电子设备及存储介质 | |
US20080306752A1 (en) | Method and system for automatic testing in a business scenario environment | |
CN113064811B (zh) | 基于工作流的自动化测试方法、装置以及电子设备 | |
CN116541887B (zh) | 一种大数据平台数据安全保护方法 | |
CN116737535A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN116069808A (zh) | 数据库存储过程的依赖信息的确定方法、装置及电子设备 | |
CN110502675B (zh) | 基于数据分析的语音拨叫用户分类方法及相关设备 | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
KR102217092B1 (ko) | 애플리케이션의 품질 정보 제공 방법 및 장치 | |
Habibi et al. | Generating test as a web service (TaaWS) through a method-based attribute grammar | |
CN114218096A (zh) | 一种基于性能测试的交易推荐方法、装置及设备 | |
CN115470127A (zh) | 页面兼容性处理方法、装置、计算机设备和存储介质 | |
CN111090671B (zh) | 消除数据库中空字符串和无效字符串差异的方法和装置 | |
CN117743154A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230505 |
|
RJ01 | Rejection of invention patent application after publication |