CN113835751A - 代码测试方法、装置、电子设备、存储介质 - Google Patents
代码测试方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113835751A CN113835751A CN202111161815.4A CN202111161815A CN113835751A CN 113835751 A CN113835751 A CN 113835751A CN 202111161815 A CN202111161815 A CN 202111161815A CN 113835751 A CN113835751 A CN 113835751A
- Authority
- CN
- China
- Prior art keywords
- code
- tested
- dependency relationship
- module
- hierarchy
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000004048 modification Effects 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种代码测试方法、装置、电子设备、存储介质。方法包括:响应于代码测试请求,基于层级配置文件获取当前层级配置;确定属于每个层级的当前组件文件,根据当前组件文件确定互相之间存在依赖关系的待测试代码模块;获取待测试代码模块所属当前组件文件的目标层级,根据与目标层级对应的参考依赖关系,确定当前层级配置下待测试代码模块之间的依赖关系测试结果;获取新的层级配置,作为当前层级配置,重复上述步骤,得到与每个层级配置对应的依赖关系测试结果。通过该方法可以以灵活、低成本、高效率的方式对代码的依赖关系进行测试,尽早地排查出结构不合理的代码,避免劣化代码上线使用的情况发生。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种代码测试方法、装置、电子设备、计算机可读存储介质、计算机程序产品。
背景技术
随着计算机技术的快速发展,软件工程越来越复杂,对软件工程的架构要求越来越高,使得开发人员很容易写出难于维护、结构不合理的代码。例如,当代码库中各个组件之间的依赖关系复杂时,组件之间很容易出现网状依赖关系的情况。
相关技术中,为了在有限的资源耗费下避免上述问题发生,可以通过定期触发线上分支或者主干分支的一些代码扫描监控任务监控组件之间的依赖关系,测试是否存在劣化代码,但是,采用这种定期测试方式存在一定程度上的滞后性,容易发生劣化代码上线使用的情况。
发明内容
本公开提供一种代码测试方法、装置、电子设备、计算机可读存储介质、计算机程序产品,以至少解决相关技术中的代码测试方式存在滞后性,容易发生劣化代码上线会用的情况的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种代码测试方法,包括:
响应于代码测试请求,基于层级配置文件获取当前层级配置,所述层级配置文件中包括多个层级配置,每个所述层级配置包括多个层级,以及与每个所述层级对应的对代码模块进行整合和拆分的条件;
确定属于每个所述层级的当前组件文件,根据所述当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块,所述当前组件文件是根据所述当前层级配置对多个代码模块进行整合和拆分得到的;
获取所述待测试代码模块所属当前组件文件的目标层级,根据与所述目标层级对应的参考依赖关系,确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果;
基于所述层级配置文件获取新的层级配置,作为所述当前层级配置,重复进行测试所述当前层级配置下待测试代码之间的依赖关系的步骤,直至对所述层级配置文件中的层级配置处理完毕,得到与每个所述层级配置对应的依赖关系测试结果。
在其中一个实施例中,当所述目标层级为相同层级时,所述参考依赖关系为非环形依赖关系;当所述目标层级包括不同的多个层级时,所述参考依赖关系为高层级对低层级的单向依赖关系;
所述根据与所述目标层级对应的参考依赖关系,确定当前层级配置下所述待测试代码模块之间的依赖关系测试结果,包括:
当出现以下情况中的任一种时,生成当前层级配置下依赖关系错误的测试结果:
所述待测试代码模块对应的目标层级为同一个层级,所述待测试代码模块之间的依赖关系为环形依赖关系;
所述待测试代码模块对应的目标层级包括不同的层级,所述待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,所述第一代码模块的层级低于所述第二代码模块的层级。
在其中一个实施例中,在所述生成依赖关系错误的测试结果之后,还包括:
生成文件提示信息,所述文件提示信息包括所述待测试代码模块的关联信息、修改指向信息中的至少一个,所述修改指向信息用于指示对所述当前层级配置下所述待测试代码模块的依赖关系进行修改。
在其中一个实施例中,所述根据所述当前组件文件确定存在依赖关系的代码模块,包括:
根据多个所述层级下的所述当前组件文件,生成当前工程代码;
对所述当前工程代码进行安装,得到第一配置文件;
根据所述第一配置文件中已声明的依赖关系,确定互相之间存在依赖关系的所述代码模块,作为所述待测试代码模块。
在其中一个实施例中,所述方法还包括:
当多个所述代码模块中存在未在所述第一配置文件中声明依赖关系的第三代码模块时,根据所述第三代码模块的描述文件确定与所述第三代码模块具有依赖关系的第四代码模块,将所述第三代码模块以及所述第四代码模块作为所述待测试代码模块。
在其中一个实施例中,所述方法还包括:
获取预先配置的第二配置文件,所述第二配置文件中包括黑名单,所述黑名单中的代码模块为默认不需要测试的代码模块;
当所述待测试代码模块为所述黑名单中的代码模块时,取消所述待测试代码模块的依赖关系的测试。
在其中一个实施例中,当所述待测试代码模块的数量为多组时,所述确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果,包括:
按照预先配置的测试顺序,确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果,所述测试顺序的确定方式包括以下方式中的任意一种:
随机测试;
根据所述待测试代码模块的优先级确定所述测试顺序;
按照所述待测试代码模块的产生时间确定所述测试顺序。
根据本公开实施例的第二方面,提供一种代码测试装置,包括:
层级配置获取模块,被配置为执行响应于代码测试请求,基于层级配置文件获取当前层级配置,所述层级配置文件中包括多个层级配置,每个所述层级配置包括多个层级,以及与每个所述层级对应的对代码模块进行整合和拆分的条件;
第一依赖关系确定模块,被配置为执行确定属于每个所述层级的当前组件文件,根据所述当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块,所述当前组件文件是根据所述当前层级配置对多个代码模块进行整合和拆分得到的;
依赖关系测试模块,被配置为执行获取所述待测试代码模块所属当前组件文件的目标层级,根据与所述目标层级对应的参考依赖关系,确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果;
循环测试模块,被配置为执行基于所述层级配置文件获取新的层级配置,作为所述当前层级配置,重复进行测试所述当前层级配置下待测试代码之间的依赖关系的步骤,直至对所述层级配置文件中的层级配置处理完毕,得到与每个所述层级配置对应的依赖关系测试结果。
在其中一个实施例中,当所述目标层级为相同层级时,所述参考依赖关系为非环形依赖关系;当所述目标层级包括不同的多个层级时,所述参考依赖关系为高层级对低层级的单向依赖关系;
所述依赖关系测试模块,被配置为执行当出现以下情况中的任一种时,生成所述当前层级配置下依赖关系错误的测试结果:
所述待测试代码模块对应的目标层级为同一个层级,所述待测试代码模块之间的依赖关系为环形依赖关系;
所述待测试代码模块对应的目标层级包括不同的层级,所述待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,所述第一代码模块的层级低于所述第二代码模块的层级。
在其中一个实施例中,所述装置还包括:
提示信息生成模块,被配置为执行生成文件提示信息,所述文件提示信息包括所述待测试代码模块的关联信息、修改指向信息中的至少一个,所述修改指向信息用于指示对所述当前层级配置下所述待测试代码模块的依赖关系进行修改。
在其中一个实施例中,所述第一依赖关系确定模块,包括:
工程代码生成单元,被配置为执行根据多个所述层级下的所述当前组件文件,生成当前工程代码;
配置文件获取单元,被配置为执行对所述当前工程代码进行安装,得到的第一配置文件;
依赖关系确定单元,被配置为执行根据所述第一配置文件中已声明的依赖关系,确定互相之间存在依赖关系的所述代码模块,作为所述待测试代码模块。
在其中一个实施例中,所述装置还包括:
第二依赖关系确定模块,被配置为执行当多个所述代码模块中存在未在所述第一配置文件中声明依赖关系的第三代码模块时,根据所述第三代码模块的描述文件确定与所述第三代码模块具有依赖关系的第四代码模块,将所述第三代码模块以及所述第四代码模块作为所述待测试代码模块。
在其中一个实施例中,所述装置还包括:
配置文件获取模块,被配置为执行获取预先配置的第二配置文件,所述第二配置文件中包括黑名单,所述黑名单中的代码模块为默认不需要测试的代码模块;
测试取消模块,被配置为执行当所述待测试代码模块为所述黑名单中的代码模块时,取消所述待测试代码模块的依赖关系的测试。
在其中一个实施例中,当所述待测试代码模块的数量为多组时,所述依赖关系测试模块,被配置为执行按照预先配置的测试顺序,确定所述待测试代码模块之间的依赖关系测试结果,所述测试顺序的确定方式包括以下方式中的任意一种:
随机测试;
根据所述待测试代码模块的优先级确定所述测试顺序;
按照所述待测试代码模块的产生时间确定所述测试顺序。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第一方面任一项实施例所述的代码测试方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面任一项实施例所述的代码测试方法。
根据本公开实施例的第四方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如上述第一方面任一项实施例所述的代码测试方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过预先定义层级配置文件,基于不同的层级配置整合和拆分代码模块,相对于相关技术中基于单一层级配置测试代码模块之间的依赖关系,能够从不同的层级配置全面排查代码模块之间的依赖关系,从而最大化地降低代码出错率。通过预先配置组件文件之间的层级关系,以及各个层级内部代码模块之间的参考依赖关系,和/或,跨层级的代码模块之间的参考依赖关系,针对当前层级配置,在确定互相之间存在依赖关系的待测试代码模块后,获取待测试代码模块所属当前组件文件的目标层级,根据与目标层级对应的参考依赖关系,确定待测试代码模块之间的依赖关系测试结果,从而可以以灵活、低成本、高效率的方式对代码的依赖关系进行测试,尽早地排查出结构不合理的代码,避免劣化代码上线使用的情况发生。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种代码测试方法的流程图。
图2是根据一示例性实施例示出的一种代码测试方法的流程图。
图3是根据一示例性实施例示出的一种代码测试装置的框图。
图4是根据一示例性实施例示出的一种电子设备的框图。
图5是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
在一个示例性实施例中,本公开所提供的代码测试方法可以应用于终端、服务器等电子设备中。一个示例中,用户通过部署在终端中的代码测试工具触发代码测试请求,以指示终端通过代码测试工具对多个代码模块在每个层级配置下的依赖关系进行测试。另一个示例中,代码测试工具可以部署在服务器中。服务器可以定时或者实时地触发代码测试请求,以通过代码测试工具对多个代码模块的依赖关系进行测试。
在另一个示例性实施例中,本公开所提供的代码测试方法还可以应用于包括终端和服务器的代码测试系统中,通过终端和服务器之间的交互完成代码测试。例如,代码测试工具部署于服务器中。用户通过终端的代码测试页面触发代码测试请求,以通过终端指示服务器对多个代码模块的依赖关系进行测试。
其中,上述实施例提到的终端可以是但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备;服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图1是根据一示例性实施例示出的一种代码测试方法的流程图,如图1所示,代码测试方法用于电子设备中,包括以下步骤。
在步骤S110中,响应于代码测试请求,基于层级配置文件获取当前层级配置。
其中,层级配置文件中包括多个层级配置,每个层级配置可以但不限于包括多个层级,与每个层级对应的对代码模块进行整合和拆分的条件、层级内部以及跨层级之间的参考依赖关系。层级的数量可以依实际需求定义,例如,为2层-8层中的任意一种。可以从不同维度定义每个层级对应的条件,例如,从代码模块实现的功能维度定义对代码模块的整合和拆分条件,设置壳工程层、基础组件层;从代码模块的来源维度定义,设置三方库层。
层级用于表示组件文件的级别,每个层级下包括至少一个组件文件。例如,某个层级配置包括按照由上至下的顺序预先定义的多个层级:壳工程层、业务组件层、功能组件层、基础组件层、中台层、三方库层。
一个软件工程的工程代码通常需使用多个代码模块。代码模块指的是一段能够实现某个目标的成员代码段。一个代码模块的实现可以依赖其它代码模块。
具体地,代码测试请求可以是电子设备检测到的用户主动触发的请求,例如,电子设备显示的代码测试工具页面包括测试控件,当电子设备检测到对测试控件的点击操作后,获取代码测试请求。对代码测试请求还可以是电子设备自动触发的请求。例如,电子设备定期从已创建的软件工程中抽样,并自动触发代码测试请求。电子设备获取代码测试请求后,获取软件工程所需的多个代码模块。调用预先配置的层级配置文件,按照随机选取、依次选取等任一种方式,从层级配置文件中获取一个层级配置,作为当前层级配置。
在步骤S120中,确定属于每个层级的当前组件文件,根据当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块。
其中,组件文件是封装了一个或多个代码模块的实体。组件具有独立性,因此组件与组件之间可以自由组合。
待测试代码模块中包含多个具有依赖关系的代码模块。依赖关系可以为单向依赖关系、环形依赖关系等。例如,若代码模块A依赖代码模块B,则两者之间为单向依赖关系;若代码模块A和代码模块B互相依赖,则两者之间为环形依赖关系。代码模块A和代码模块B组合成一组待测试代码模块。
具体地,与每个层级对应的当前组件文件可以是用户根据当前层级配置对多个代码模块人工进行整合和拆分得到,并在得到当前组件文件后,将当前组件文件上传至电子设备。当前组件文件也可以是电子设备根据当前层级配置对多个代码模块自动进行整合和拆分得到的。在生成与每个层级对应的当前组件文件后,根据多个层级的当前组件文件,生成当前层级配置下的当前工程代码。电子设备可以对当前工程代码进行解析,得到第一配置文件(pod spec)。第一配置文件中包括各个代码模块显式声明的依赖关系,电子设备可以从第一配置文件中得到与各个代码模块具有依赖关系的其他代码模块,将各个代码模块以及与各个代码模块具有依赖关系的其他代码模块作为一组待测试代码模块。
在步骤S130中,获取待测试代码模块所属当前组件文件的目标层级,根据与目标层级对应的参考依赖关系,确定当前层级配置下待测试代码模块之间的依赖关系测试结果。
具体地,针对每组待测试代码模块中包含的各个代码模块,电子设备确定各个代码模块所属的当前组件文件,进一步从已生成的当前组件文件和层级之间的映射关系中确定各个当前组件文件所属的层级,作为目标层级。可以理解的是,若待测试代码模块中包含的各个代码模块所属当前组件文件的层级相同时,则待测试代码模块的目标层级为单个层级。若各个代码模块所属当前组件文件的层级不同,则目标层级包括多个不同的层级。
预先配置同层级的参考依赖关系,和/或,不同层级(即跨层级)之间的参考依赖关系。例如,可以配置每个层级内部的参考依赖关系为单向依赖关系;跨层级之间的依赖关系可以为高层依赖底层。在电子设备获取待测试代码模块的目标层级后,获取目标层级的参考依赖关系。将参考依赖关系与待测试代码模块中各个代码模块之间的依赖关系进行比较,若两者一致,则生成依赖关系正确的测试结果;若两者不一致,则生成依赖关系错误的测试结果。
在步骤S140中,基于层级配置文件获取新的层级配置,作为当前层级配置,重复进行测试当前层级配置下待测试代码之间的依赖关系的步骤,直至对层级配置文件中的层级配置处理完毕,得到与每个层级配置对应的依赖关系测试结果。
一个实施例中,电子设备可以在当前层级配置对应的依赖关系正确的情况下,继续从层级配置文件中获取新的层级配置,作为新的当前层级配置,重复上述步骤S110~S130直至确定层级配置文件中每个层级配置下代码模块之间的依赖关系都为正确,从而可以从不同的层级配置全面排查代码模块之间的依赖关系。相应地,在当前层级配置对应的依赖关系错误的情况下,电子设备可以停止代码测试,生成代码测试停止的提示信息,以提示用户对当前层级配置下代码模块之间的依赖关系进行检查。
另一个实施例中,电子设备可以在得到当前层级配置的依赖关系测试结果后,继续从层级配置文件中获取新的层级配置,作为新的当前层级配置,重复上述步骤S110~S130,直至生成与每个层级配置对应的依赖关系测试结果。电子设备可以生成依赖关系测试报告,以供用户参考每个层级配置的依赖关系测试结果,从多个层级配置中选择表现最佳的层级配置,并根据表现最佳的层级配置生成最终使用的工程代码。
上述代码测试方法中,通过预先定义层级配置文件,基于不同的层级配置整合和拆分代码模块,相对于相关技术中基于单一层级配置去测试代码模块之间的依赖关系,能够从不同的层级配置全面排查代码模块之间的依赖关系,从而最大化地降低代码出错率。通过预先配置组件文件之间的层级关系,以及各个层级内部代码模块之间的参考依赖关系,和/或,跨层级的代码模块之间的参考依赖关系,针对当前层级配置,在确定互相之间存在依赖关系的待测试代码模块后,获取待测试代码模块所属当前组件文件的目标层级,根据与目标层级对应的参考依赖关系,确定待测试代码模块之间的依赖关系测试结果,从而可以以灵活、低成本、高效率的方式对代码的依赖关系进行测试,尽早地排查出结构不合理的代码,避免劣化代码上线使用的情况发生。
在一示例性实施例中,当目标层级为相同层级时,参考依赖关系为非环形依赖关系,即,同层级内部的代码模块可以单向依赖,不能有环依赖;当目标层级包括不同的多个层级时,参考依赖关系为高层级对低层级的单向依赖关系,即,高层级代码模块可以依赖低层级的代码模块,但是低层级的代码模块不可以依赖高层级的代码模块。在本实施例中,步骤S140,根据与目标层级对应的参考依赖关系,确定当前层级配置下待测试代码模块之间的依赖关系是否正确,包括:当出现以下情况中的任一种时,生成依赖关系错误的测试结果:
(1)当电子设备获取一组待测试代码模块对应的目标层级为同一个层级,但是待测试代码模块对应的依赖关系为环形依赖关系。例如,具有依赖关系的代码模块A和代码模块B的层级都为基础组件层,那么目标层级为基础组件层。若代码模块A和代码模块B之间为环形依赖关系,则生成依赖关系错误的测试结果。
相应地,当电子设备获取一组待测试代码模块对应的目标层级为同一个层级,但是待测试代码模块对应的依赖关系为非环形依赖关系(即单向依赖关系),那么可以生成依赖关系正确的测试结果。
(2)待测试代码模块对应的目标层级包括不同的层级,待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,但是,第一代码模块的层级低于第二代码模块的层级。例如,代码模块A属于基础组件层,代码模块B属于功能组件,那么目标层级为基础组件层和功能组件层。功能组件的层级高于基础组件层。若代码模块A依赖代码模块B,则生成依赖关系错误的测试结果。
相应地,若电子设备获取待测试代码模块对应的目标层级包括多个不同的层级,待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,且第一代码模块的层级高于第二代码模块的层级,则生成依赖关系正确的测试结果。
本实施例中,通过部署与目标层级对应的参考依赖关系,基于参考依赖关系确定待测试代码模块之间的依赖关系是否正确,可以通过部署简单的规则便可完成对代码的依赖关系进行测试,实现成本低,易于后期维度和扩展。
在一示例性实施例中,在生成依赖关系错误的测试结果之后,电子设备还可以生成文件提示信息,文件提示信息包括待测试代码模块的关联信息、修改指向信息中的至少一个。其中,关联信息可以但不限于是代码模块的标识、版本、所属的代码库、所属的组件文件等信息。修改指向信息用于指示对当前层级配置下待测试代码模块的依赖关系进行修改,可以但不限于包括参考依赖关系、修改建议、参考文档、负责人信息(例如,负责人姓名、联系电话等)。
以下为一个示例中电子设备生成的文件提示信息:
>[gundam]POD gifPlatformBaseModule
>[gundam]依赖关系错误的组件文件
>[gundam]FILE KSPlatformStartupConfig.m
>[gundam]可以参考文档,以及参考文档链接
>[gundam]Invalid import:#import<KSRegionAPI/KSRegionAPIManager.h>-KSRegionAPI
>[gundam]如有疑问优先联系Pod Owner(负责人),联系不到可以联系@某某某
>[gundam]pod gifPlatformBaseModule invalid depend_on["KSRegionAPI"]
>[gundam]请检查上述错误的依赖并修复,只能依赖podspec中声明的依赖关系(dependency),请检查出错pod的podspec并考虑是否可以直接添加dependency
一个实施例中,电子设备还可以定期生成依赖关系的测试报表,测试报表中可以包括代码模块的累计错误信息、用户维度的累计错误信息等,从而使用户能够有针对性地对薄弱环节进行改进。
本实施例中,在确定待测试工程代码中存在依赖关系错误的情况下,电子设备自动生成文件提示信息,给予用户修改方向和相关的代码模块信息,使用户能够快速地对错误的依赖关系进行修复,减轻了用户的工作量,提升了代码修复的效率。
在一示例性实施例中,当多个代码模块中存在未在第一配置文件(pod spec)中显式声明依赖关系的第三代码模块时,那么电子设备可以对第三代码模块进行扫描,若根据第三代码模块的描述文件(例如头文件)的引入内容确定第三代码模块与第四代码模块具有依赖关系,则将第三代码模块以及第四代码模块作为待测试代码模块。例如,代码模块A的头文件中包括“import B”(引出B),表明代码模块A依赖代码模块B,则将代码模块A和代码模块B作为一组待测试代码模块。
本实施中,结合两种依赖关系的获取方式确定具有依赖关系的代码模块,一方面,可以提高依赖关系的确定效率;另一方面,还可以提升依赖关系测试的全面性,避免遗漏部分代码模块。
在一示例性实施例中,所述方法还包括:获取预先配置的第二配置文件,第二配置文件中包括黑名单,黑名单中的代码模块为默认不需要测试的代码模块。当待测试代码模块中的全部代码模块,或者部分代码模块存在于黑名单中时,电子设备可以取消该待测试代码模块的测试。
进一步地,第二配置文件中还可以包括白名单,白名单中的代码模块为默认需要测试的代码模块。当电子设备获取存在白名单时,可以优先对白名单中代码模块的依赖关系进行测试。
本实施例中,通过引入黑名单机制,使电子设备避免对无需测试的代码模块进行测试,可以节省资源,减轻电子设备的运行压力;通过引入白名单机制,使电子设备能够优先对指定需要测试的代码模块进行测试,可以满足用户的多样化需求,提升代码测试的灵活性。
在一示例性实施例中,当待测试代码模块的数量为多组时,电子设备可以按照预先配置的测试顺序,确定当前层级配置下待测试代码模块之间的依赖关系测试结果。测试顺序的确定方式可以为以下方式中的任意一种:
(1)随机测试。具体地,电子设备可以对多组待测试代码模块进行排序,并对随机排序后的多组待测试代码模块进行测试。
(2)根据待测试代码模块的优先级确定测试顺序。其中,待测试代码模块的优先级可以根据待测试代码模块中包含的各个代码模块的优先级确定。例如,将所包含的代码模块中的最高或者最低优先级作为待测试代码模块的优先级。电子设备按照优先级从高到低的顺序依次对多组待测试代码模块进行测试。
(3)按照待测试代码模块的产生时间确定测试顺序。其中,待测试代码模块的产生时间可以根据待测试代码模块中包含的各个代码模块的产生时间确定。例如,将所包含的代码模块中的最晚或者最早产生时间作为待测试代码模块的产生时间。电子设备按照产生时间从早到晚,或者从晚到早的顺序依次对多组待测试代码模块进行测试。
本实施例中,通过部署多种测试顺序,允许用户按照需求指定相应的测试顺序,使电子设备按照指定的测试顺序完成对多组待测试代码模块的测试,可以完善代码测试的功能,使代码测试更具灵活性。
图2是根据一示例性实施例示出的一种代码测试方法的流程图,如图2所示,代码测试方法用于电子设备中,包括以下步骤。
在步骤S202中,响应于代码测试请求,基于层级配置文件获取当前层级配置。层级配置文件中包括多个层级配置,每个层级配置包括多个层级,以及与每个层级对应的对代码模块进行整合和拆分的条件。
在步骤S204中,确定属于每个层级的当前组件文件,根据多个层级下的当前组件文件生成当前工程代码。
在步骤S206中,对当前工程代码解析安装,得到当前工程代码的第一配置文件。根据第一配置文件中已声明的依赖关系,确定互相之间存在依赖关系的代码模块,作为待测试代码模块。
在步骤S208中,当多个代码模块中存在未在第一配置文件中声明依赖关系的第三代码模块时,根据第三代码模块的描述文件确定与第三代码模块具有依赖关系的第四代码模块,将第三代码模块以及第四代码模块作为待测试代码模块。
在步骤S210中,获取待测试代码模块中各个代码模块所属当前组件文件的层级,得到待测试代码模块的目标层级。
在步骤S212中,根据与目标层级对应的参考依赖关系,确定当前层级配置下待测试代码模块之间的依赖关系是否正确。
一个示例中,对应用程序的一种层级配置进行说明。该应用程序包含多种版本,例如,主应用程序、极速版应用程序。按照由上至下的顺序预先定义多个层级:壳工程层、业务组件层、功能组件层、基础组件层、中台层、三方库层。其中:
壳工程层:包含主应用程序和壳工程
业务组件层:各个版本的应用程序的业务组件。内部代码模块没有直接依赖,对上层没有依赖。
功能组件层:各个版本的应用程序的功能组件不,包括基础功能组件和辅助功能组件。其中,基础功能组件可以提供给其他特性团队(Feature Team)使用,需要显式声明依赖关系。基础功能组件中的代码模块对上层不可依赖,同层可以有单向依赖,不能有环依赖。辅助功能组件只能提供给自己的特性团队使用。辅助功能组件中的代码模块在同层没有依赖,对上层也没有依赖。
基础组件层:各个版本的应用程序的通用组件,包括一些启动框架、基础模型、通过界面组件、通用工具、代码bug调试等。基础组件层中的代码模块对上层没有依赖,同层可以有依赖,但是不能有环依赖。
中台层:一种软件开发工具包(SDK),可以提供给各个版本的应用程序使用,可以包括基础架构组件、设计中台组件、跨端引擎组件、性能组件,音视频/MMU(内存管理单元)/Y-Teac组件(一种组件)、安全组件等。中台中的代码模块对上层没有依赖,同层可以依赖,但是不能有环依赖。
三方库层:开源三方库和部分定制化过的三方库。
在步骤S214中,当生成依赖关系错误的测试结果时,生成文件提示信息,文件提示信息包括待测试代码模块的关联信息、修改指向信息中的至少一个,修改指向信息用于指示对待测试代码模块的依赖关系进行修改。
在步骤S216中,基于层级配置文件获取新的层级配置,作为当前层级配置,重复上述步骤S202~步骤S216,得到与每个层级配置对应的依赖关系测试结果。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
图3是根据一示例性实施例示出的一种代码测试装置300框图。参照图3,该装置包括层级配置获取模块302、第一依赖关系确定模块304、依赖关系测试模块306、循环测试模块308。
层级配置获取模块302,被配置为执行响应于代码测试请求,基于层级配置文件获取当前层级配置,层级配置文件中包括多个层级配置,每个层级配置包括多个层级,以及与每个层级对应的对代码模块进行整合和拆分的条件;第一依赖关系确定模块304,被配置为执行确定属于每个层级的当前组件文件,根据当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块,当前组件文件是根据当前层级配置对多个代码模块进行整合和拆分得到的;依赖关系测试模块306,被配置为执行获取待测试代码模块所属当前组件文件的目标层级,根据与目标层级对应的参考依赖关系,确定当前层级配置下待测试代码模块之间的依赖关系测试结果;循环测试模块308,被配置为执行基于层级配置文件获取新的层级配置,作为当前层级配置,重复进行测试当前层级配置下待测试代码之间的依赖关系的步骤,直至对层级配置文件中的层级配置处理完毕,得到与每个层级配置对应的依赖关系测试结果。
在一示例性实施例中,当目标层级为相同层级时,参考依赖关系为非环形依赖关系;当目标层级包括不同的多个层级时,参考依赖关系为高层级对低层级的单向依赖关系;依赖关系测试模块306,被配置为执行当出现以下情况中的任一种时,生成当前层级配置下依赖关系错误的测试结果:待测试代码模块对应的目标层级为同一个层级,待测试代码模块之间的依赖关系为环形依赖关系;待测试代码模块对应的目标层级包括不同的层级,待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,第一代码模块的层级低于第二代码模块的层级。
在一示例性实施例中,装置300还包括:提示信息生成模块,被配置为执行生成文件提示信息,文件提示信息包括待测试代码模块的关联信息、修改指向信息中的至少一个,修改指向信息用于指示对当前层级配置下待测试代码模块的依赖关系进行修改。
在一示例性实施例中,第一依赖关系确定模块302,包括:工程代码生成单元,被配置为执行根据多个层级下的当前组件文件,生成当前工程代码;配置文件获取单元,被配置为执行获取待测试工程代码的第一配置文件,第一配置文件是对待测试工程代码安装后得到的文件;依赖关系确定单元,被配置为执行根据第一配置文件中已声明的依赖关系,确定互相之间存在依赖关系的代码模块,作为待测试代码模块。
在一示例性实施例中,装置300还包括:第二依赖关系确定模块,被配置为执行当多个代码模块中存在未在第一配置文件中声明依赖关系的第三代码模块时,根据第三代码模块的描述文件确定与第三代码模块具有依赖关系的第四代码模块,将第三代码模块以及第四代码模块作为待测试代码模块。
在一示例性实施例中,装置300还包括:配置文件获取模块,被配置为执行获取预先配置的第二配置文件,第二配置文件中包括黑名单,黑名单中的代码模块为默认不需要测试的代码模块;测试取消模块,被配置为执行当待测试代码模块为黑名单中的代码模块时,取消待测试代码模块的依赖关系的测试。
在一示例性实施例中,当待测试代码模块的数量为多组时,依赖关系测试模块306,被配置为执行按照预先配置的测试顺序,确定待测试代码模块之间的依赖关系测试结果,测试顺序的确定方式包括以下方式中的任意一种:随机测试;根据待测试代码模块的优先级确定测试顺序;按照待测试代码模块的产生时间确定测试顺序。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种用于测试代码依赖关系的电子设备Z00的框图。例如,电子设备Z00可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图4,电子设备Z00可以包括以下一个或多个组件:处理组件Z02、存储器Z04、电源组件Z06、多媒体组件Z08、音频组件Z10、输入/输出(I/O)的接口Z12、传感器组件Z14以及通信组件Z16。
处理组件Z02通常控制电子设备Z00的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件Z02可以包括一个或多个处理器Z20来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件Z02可以包括一个或多个模块,便于处理组件Z02和其他组件之间的交互。例如,处理组件Z02可以包括多媒体模块,以方便多媒体组件Z08和处理组件Z02之间的交互。
存储器Z04被配置为存储各种类型的数据以支持在电子设备Z00的操作。这些数据的示例包括用于在电子设备Z00上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器Z04可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
电源组件Z06为电子设备Z00的各种组件提供电力。电源组件Z06可以包括电源管理系统,一个或多个电源,及其他与为电子设备Z00生成、管理和分配电力相关联的组件。
多媒体组件Z08包括在所述电子设备Z00和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件Z08包括前置摄像头和/或后置摄像头。当电子设备Z00处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件Z10被配置为输出和/或输入音频信号。例如,音频组件Z10包括麦克风(MIC),当电子设备Z00处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器Z04或经由通信组件Z16发送。在一些实施例中,音频组件Z10还包括扬声器,用于输出音频信号。
I/O接口Z12为处理组件Z02和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件Z14包括一个或多个传感器,用于为电子设备Z00提供各个方面的状态评估。例如,传感器组件Z14可以检测到电子设备Z00的打开/关闭状态,组件的相对定位,例如所述组件为电子设备Z00的显示器和小键盘,传感器组件Z14还可以检测电子设备Z00或电子设备Z00组件的位置改变,用户与电子设备Z00接触的存在或不存在,设备Z00方位或加速/减速和电子设备Z00的温度变化。传感器组件Z14可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件Z14还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件Z14还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件Z16被配置为便于电子设备Z00和其他设备之间有线或无线方式的通信。电子设备Z00可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件Z16经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件Z16还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备Z00可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器Z04,上述指令可由电子设备Z00的处理器Z20执行以完成上述方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备Z00的处理器Z20执行以完成上述方法。
图5是根据一示例性实施例示出的另一种用于测试代码依赖关系的电子设备S00的框图。例如,电子设备S00可以为服务器。参照图5,电子设备S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述方法。
电子设备S00还可以包括:电源组件S24被配置为执行电子设备S00的电源管理,有线或无线网络接口S26被配置为将电子设备S00连接到网络,和输入输出(I/O)接口S28。电子设备S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器S22,上述指令可由电子设备S00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备S00的处理器执行以完成上述方法。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种代码测试方法,其特征在于,包括:
响应于代码测试请求,基于层级配置文件获取当前层级配置,所述层级配置文件中包括多个层级配置,每个所述层级配置包括多个层级,以及与每个所述层级对应的对代码模块进行整合和拆分的条件;
确定属于每个所述层级的当前组件文件,根据所述当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块,所述当前组件文件是根据所述当前层级配置对多个代码模块进行整合和拆分得到的;
获取所述待测试代码模块所属当前组件文件的目标层级,根据与所述目标层级对应的参考依赖关系,确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果;
基于所述层级配置文件获取新的层级配置,作为所述当前层级配置,重复进行测试所述当前层级配置下待测试代码之间的依赖关系的步骤,直至对所述层级配置文件中的层级配置处理完毕,得到与每个所述层级配置对应的依赖关系测试结果。
2.根据权利要求1所述的代码测试方法,其特征在于,当所述目标层级为相同层级时,所述参考依赖关系为非环形依赖关系;当所述目标层级包括不同的多个层级时,所述参考依赖关系为高层级对低层级的单向依赖关系;
所述根据与所述目标层级对应的参考依赖关系,确定所述当前层级配置下待测试代码模块之间的依赖关系测试结果,包括:
当出现以下情况中的任一种时,生成所述当前层级配置下依赖关系错误的测试结果:
所述待测试代码模块对应的目标层级为同一个层级,所述待测试代码模块之间的依赖关系为环形依赖关系;
所述待测试代码模块对应的目标层级包括不同的层级,所述待测试代码模块中的第一代码模块对第二代码模块存在单向依赖关系,所述第一代码模块的层级低于所述第二代码模块的层级。
3.根据权利要求2所述的代码测试方法,其特征在于,在所述生成依赖关系错误的测试结果之后,还包括:
生成文件提示信息,所述文件提示信息包括所述待测试代码模块的关联信息、修改指向信息中的至少一个,所述修改指向信息用于指示对所述当前层级配置下所述待测试代码模块的依赖关系进行修改。
4.根据权利要求1所述的代码测试方法,其特征在于,所述根据所述当前组件文件确定存在依赖关系的代码模块,包括:
根据多个所述层级下的所述当前组件文件,生成当前工程代码;
对所述当前工程代码进行安装,得到的第一配置文件;
根据所述第一配置文件中已声明的依赖关系,确定互相之间存在依赖关系的所述代码模块,作为所述待测试代码模块。
5.根据权利要求4所述的代码测试方法,其特征在于,所述方法还包括:
当多个所述代码模块中存在未在所述第一配置文件中声明依赖关系的第三代码模块时,根据所述第三代码模块的描述文件确定与所述第三代码模块具有依赖关系的第四代码模块,将所述第三代码模块以及所述第四代码模块作为所述待测试代码模块。
6.根据权利要求1~5任一项所述的代码测试方法,其特征在于,所述方法还包括:
获取预先配置的第二配置文件,所述第二配置文件中包括黑名单,所述黑名单中的代码模块为默认不需要测试的代码模块;
当所述待测试代码模块为所述黑名单中的代码模块时,取消所述待测试代码模块的依赖关系的测试。
7.一种代码测试装置,其特征在于,包括:
层级配置获取模块,被配置为执行响应于代码测试请求,基于层级配置文件获取当前层级配置,所述层级配置文件中包括多个层级配置,每个所述层级配置包括多个层级,以及与每个所述层级对应的对代码模块进行整合和拆分的条件;
第一依赖关系确定模块,被配置为执行确定属于每个所述层级的当前组件文件,根据所述当前组件文件确定互相之间存在依赖关系的代码模块,作为待测试代码模块,所述当前组件文件是根据所述当前层级配置对多个代码模块进行整合和拆分得到的;
依赖关系测试模块,被配置为执行获取所述待测试代码模块所属当前组件文件的目标层级,根据与所述目标层级对应的参考依赖关系,确定所述当前层级配置下所述待测试代码模块之间的依赖关系测试结果;
循环测试模块,被配置为执行基于所述层级配置文件获取新的层级配置,作为所述当前层级配置,重复进行测试所述当前层级配置下待测试代码之间的依赖关系的步骤,直至对所述层级配置文件中的层级配置处理完毕,得到与每个所述层级配置对应的依赖关系测试结果。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的代码测试方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的代码测试方法。
10.一种计算机程序产品,所述计算机程序产品中包括指令,其特征在于,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6任一项所述的代码测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111161815.4A CN113835751B (zh) | 2021-09-30 | 2021-09-30 | 代码测试方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111161815.4A CN113835751B (zh) | 2021-09-30 | 2021-09-30 | 代码测试方法、装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835751A true CN113835751A (zh) | 2021-12-24 |
CN113835751B CN113835751B (zh) | 2024-01-09 |
Family
ID=78967764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111161815.4A Active CN113835751B (zh) | 2021-09-30 | 2021-09-30 | 代码测试方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835751B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408101A (zh) * | 2018-09-12 | 2019-03-01 | 深圳点猫科技有限公司 | 一种用于编程的代码开发维护方法及电子设备 |
CN110851139A (zh) * | 2019-11-07 | 2020-02-28 | 北京字节跳动网络技术有限公司 | 用于检查代码的方法、装置和电子设备 |
CN111475164A (zh) * | 2020-03-02 | 2020-07-31 | 百度在线网络技术(北京)有限公司 | 组件依赖关系检测方法、装置以及电子设备 |
CN112486481A (zh) * | 2020-12-03 | 2021-03-12 | 北京展心展力信息科技有限公司 | 多模块分层架构实现方法、装置、电子设备及介质 |
CN112699019A (zh) * | 2020-12-01 | 2021-04-23 | 北京航空航天大学 | 结合缺陷预测和关联矩阵的面向任务的软件测试策略生成方法 |
CN112965905A (zh) * | 2021-03-11 | 2021-06-15 | 京东数科海益信息科技有限公司 | 数据测试方法、装置、设备及存储介质 |
-
2021
- 2021-09-30 CN CN202111161815.4A patent/CN113835751B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408101A (zh) * | 2018-09-12 | 2019-03-01 | 深圳点猫科技有限公司 | 一种用于编程的代码开发维护方法及电子设备 |
CN110851139A (zh) * | 2019-11-07 | 2020-02-28 | 北京字节跳动网络技术有限公司 | 用于检查代码的方法、装置和电子设备 |
CN111475164A (zh) * | 2020-03-02 | 2020-07-31 | 百度在线网络技术(北京)有限公司 | 组件依赖关系检测方法、装置以及电子设备 |
CN112699019A (zh) * | 2020-12-01 | 2021-04-23 | 北京航空航天大学 | 结合缺陷预测和关联矩阵的面向任务的软件测试策略生成方法 |
CN112486481A (zh) * | 2020-12-03 | 2021-03-12 | 北京展心展力信息科技有限公司 | 多模块分层架构实现方法、装置、电子设备及介质 |
CN112965905A (zh) * | 2021-03-11 | 2021-06-15 | 京东数科海益信息科技有限公司 | 数据测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113835751B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101770931B1 (ko) | 통신 모듈 펌웨어와 플러그인 생성 방법, 장치, 프로그램 및 컴퓨터 판독가능한 기록매체 | |
CN111221559B (zh) | 应用更新方法、装置、存储介质、终端及服务器 | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
CN105426386A (zh) | 文件同步方法、装置和终端设备 | |
CN107423218B (zh) | 应用测试方法、装置及终端 | |
CN106598677A (zh) | 下载安装包的方法及装置 | |
CN115185717A (zh) | 接口调用方法、装置、电子设备和存储介质 | |
CN107463372B (zh) | 一种数据驱动的页面更新方法和装置 | |
CN111338971A (zh) | 应用测试方法、装置、电子设备及存储介质 | |
CN111538502A (zh) | 安装包的处理方法、装置、电子设备及存储介质 | |
CN109684112B (zh) | 程序文件运行方法、装置、终端及存储介质 | |
CN113835751B (zh) | 代码测试方法、装置、电子设备、存储介质 | |
CN114780334A (zh) | 功耗监测方法、功耗监测装置及存储介质 | |
CN111984531B (zh) | 一种代码耦合检测的方法及装置 | |
CN114722087A (zh) | 数据采集方法、设备、存储介质及程序产品 | |
CN114896165A (zh) | 会话机器人系统的测试方法、装置、电子设备和存储介质 | |
CN110750787B (zh) | 一种病毒扫描方法、装置及介质 | |
CN107193622B (zh) | 代码编译的处理方法、装置及终端 | |
CN113778687A (zh) | 内存分配信息处理方法、装置、电子设备及存储介质 | |
CN112416545A (zh) | 一种任务处理方法及装置 | |
CN107463414B (zh) | 应用安装方法及装置 | |
CN111597106A (zh) | 一种埋点管理方法及装置 | |
CN112306883A (zh) | 软件测试方法、装置及介质 | |
CN107257384B (zh) | 服务状态监控方法及装置 | |
CN106569931B (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 |