一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息处理方法、装置、服务器及存储介质与流程

2022-03-19 21:00:16 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,尤其涉及一种信息处理方法、装置、服务器及存储介质。


背景技术:

2.目前,测试的整个过程通常是黑盒的,无法评估整个测试过程是否有效、测试的功能是否覆盖全面。实践中,通常是通过计算代码覆盖率来量化和评估测试的功能是否覆盖全面。实际应用中,通常是预先对待测文件中的类进行指针插入,之后在测试执行过程中,通过统计被执行到的插入了指针的类,得到代码覆盖率。
3.相关技术中,预先对待测文件中的类进行指针插入的方式,需要预先对待测文件进行指针插入,较为繁琐,导致测试过程中得到待测文件的代码覆盖率的效率较低。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种信息处理方法、装置、服务器及存储介质,以解决相关技术中,预先对待测文件中的类进行指针插入的方式,需要预先对待测文件进行指针插入,较为繁琐,导致测试过程中得到待测文件的代码覆盖率的效率较低的问题。
5.本技术实施例的第一方面提供了一种信息处理方法,包括:
6.响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构,其中,代码结构为树形图结构,且代码结构包括至少一个代码节点;
7.响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代码节点的执行顺序,生成目标方法对应的节点执行序列;
8.根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
9.进一步地,方法还包括:
10.根据代码结构中的各个被执行的代码节点,对目标方法对应的代码结构进行节点标记处理,得到标记后的代码结构,其中,标记后的代码结构中每个代码节点具有执行指示信息,执行指示信息指示相应代码节点是否已被执行;
11.根据标记后的代码结构和预先存储的代码结构中各代码节点与目标方法中各代码段之间的映射关系,生成针对目标方法的标记后的代码,以及在待测文件中呈现标记后的代码,其中,标记后的代码中的对应已被执行的代码节点的代码颜色与对应未被执行的代码节点的代码颜色相异。
12.进一步地,根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,包括:
13.若目标方法的数目有多个,则根据各目标方法对应的代码结构中的代码节点的数目,确定针对待测文件的代码节点的总节点数;
14.按照预设处理周期,确定当前已被执行的代码节点的数目,以及根据当前已被执行的代码节点的数目和总节点数目,生成当前针对待测文件的代码覆盖率。
15.进一步地,按照预设处理周期,确定当前已被执行的代码节点的数目,包括:
16.按照预设处理周期,从目标消息队列中获取各目标方法对应的节点执行序列,以及将所获取的各目标方法对应的节点执行序列中的节点标识的数目的总和,确定为当前已被执行的代码节点的数目。
17.进一步地,提取待测文件中的目标方法及目标方法的代码结构,包括:
18.通过预先设置于测试服务器的代理服务,从测试服务器中提取待测文件中的目标方法及目标方法的代码结构;以及
19.检测目标方法对应的代码结构中的被执行的代码节点,包括:通过代理服务检测目标方法对应的代码结构中的被执行的代码节点。
20.进一步地,在根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率之前,方法还包括:
21.在待测文件中存在满足预设清洗条件的目标代码时,对待测文件进行代码清洗,其中,代码清洗用于按照预设代码删除规则删除待测文件中的部分代码;
22.其中,预设清洗条件包括:存在对应参数取值不同且代码逻辑相同的相邻代码。
23.进一步地,根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,包括:
24.若待测文件的数目有多个且各待测文件中的目标方法的数目有多个,则针对每个待测文件,根据该待测文件中的目标方法、各目标方法的代码结构、各目标方法对应的节点执行序列,生成针对该待测文件的代码覆盖率。
25.本技术实施例的第二方面提供了一种信息处理装置,包括:
26.信息提取单元,用于响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构,其中,代码结构为树形图结构,且代码结构包括至少一个代码节点;
27.测试执行单元,用于响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代码节点的执行顺序,生成目标方法对应的节点执行序列;
28.信息生成单元,用于根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
29.进一步地,装置还包括效果呈现单元。其中,效果呈现单元用于:
30.根据代码结构中的各个被执行的代码节点,对目标方法对应的代码结构进行节点标记处理,得到标记后的代码结构,其中,标记后的代码结构中每个代码节点具有执行指示信息,执行指示信息指示相应代码节点是否已被执行;
31.根据标记后的代码结构和预先存储的代码结构中各代码节点与目标方法中各代码段之间的映射关系,生成针对目标方法的标记后的代码,以及在待测文件中呈现标记后的代码,其中,标记后的代码中的对应已被执行的代码节点的代码颜色与对应未被执行的代码节点的代码颜色相异。
32.进一步地,信息生成单元,具体用于:
33.若目标方法的数目有多个,则根据各目标方法对应的代码结构中的代码节点的数目,确定针对待测文件的代码节点的总节点数;
34.按照预设处理周期,确定当前已被执行的代码节点的数目,以及根据当前已被执行的代码节点的数目和总节点数目,生成当前针对待测文件的代码覆盖率。
35.进一步地,信息生成单元,具体还用于:按照预设处理周期,从目标消息队列中获取各目标方法对应的节点执行序列,以及将所获取的各目标方法对应的节点执行序列中的节点标识的数目的总和,确定为当前已被执行的代码节点的数目。
36.进一步地,信息提取单元,具体用于:通过预先设置于测试服务器的代理服务,从测试服务器中提取待测文件中的目标方法及目标方法的代码结构;
37.以及上述测试执行单元,具体用于:通过代理服务检测目标方法对应的代码结构中的被执行的代码节点。
38.进一步地,装置还包括代码清洗单元。其中,代码清洗单元,用于:
39.在待测文件中存在满足预设清洗条件的目标代码时,对待测文件进行代码清洗,其中,代码清洗用于按照预设代码删除规则删除待测文件中的部分代码;
40.其中,预设清洗条件包括:存在对应参数取值不同且代码逻辑相同的相邻代码。
41.进一步地,信息生成单元,具体用于:
42.若待测文件的数目有多个且各待测文件中的目标方法的数目有多个,则针对每个待测文件,根据该待测文件中的目标方法、各目标方法的代码结构、各目标方法对应的节点执行序列,生成针对该待测文件的代码覆盖率。
43.本技术实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在服务器上运行的计算机程序,处理器执行计算机程序时实现第一方面提供的信息处理方法的各步骤。
44.本技术实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的信息处理方法的各步骤。
45.实施本技术实施例提供的一种信息处理方法、装置、服务器及存储介质具有以下有益效果:在对待测文件进行测试时,通过获取待测文件中的目标方法、目标方法的代码结构以及目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,无需在测试之前预先对待测文件进行处理,有助于实现快速有效地得到待测文件的代码覆盖率,实用性更好。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1是本技术实施例提供的一种信息处理方法的实现流程图;
48.图2是本技术实施例提供的另一种信息处理方法的实现流程图;
49.图3是本技术实施例提供的又一种信息处理方法的实现流程图;
50.图4是本技术实施例提供的一种信息处理装置的结构框图;
51.图5是本技术实施例提供的一种服务器的结构框图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
53.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
54.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
55.本技术实施例中,基于人工智能技术,以实现在对待测文件进行测试时,得到待测文件的代码覆盖率,以实现对测试效果进行评估。
56.本技术实施例所涉及的信息处理方法,可以由服务器执行。信息处理方法由服务器执行时,执行主体为服务器。
57.需要指出的是,上述服务器可以包括但不限于服务器、计算机、手机、平板或可穿戴智能设备等。另外,上述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
58.请参阅图1,图1示出了本技术实施例提供的一种信息处理方法的实现流程图,包括:
59.步骤101,响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构。
60.其中,上述代码结构为树形图结构,且代码结构包括至少一个代码节点。上述代码结构通常用于描述对应目标方法的逻辑结构。上述代码结构中的代码节点通常用于描述对应目标方法中的具体操作。其中,上述目标方法通常是预先设定的遵循预设格式的方法。如,若待测文件为c语言文件,则上述目标方法可以为程序代码中的函数。
61.实际应用中,针对每个目标方法对应的代码结构,该代码结构中的每个代码节点通常与该目标方法的代码段相对应。作为示例,若目标方法1与代码结构1相对应,若代码结构1中具有3个代码节点,则代码结构1中的每个代码节点可以与目标方法1中的部分或全部代码相对应。
62.其中,上述测试服务器通常是用于对待测文件进行测试的服务器。测试服务器与本技术的执行主体可以相同也可以不同。为了区别描述,必要时,可以将本技术的执行主体记作目标服务器。
63.其中,上述待测文件通常是需要测试的文件。如,待测文件可以是映射(mapper)文件。其中,mapper文件通常为可扩展标记语言(extensible markup language,xml)格式文件,且mapper文件需要遵循文档类型定义(document type definition,dtd)所规定的语法规则。
64.实际应用中,在待测文件为mapper文件时,目标方法可以包括如下4种类型:插入、删除、更新、选取,以及目标方法的代码结构中的代码节点可以包括如下8种类型:分别为choosesqlnode、foreachsqlnode、ifsqlnode、mixedsqlnode、statictextsqlnode、textsqlnode、trimsqlnode、vardeclsqlnode。
65.这里,上述执行主体可以检测测试服务器是否加载待测文件。作为示例,可以在测试服务器的测试应用中创建用于对测试服务器的测试过程进行监测的守护进程,通过该守护进程检测测试服务器是否加载待测文件。之后,在测试服务器加载待测文件时,上述执行主体可以对待测文件进行结构解析,以解析得到待测文件中的目标方法及目标方法的代码结构。
66.可选地,上述提取待测文件中的目标方法及目标方法的代码结构,可以包括:通过预先设置于测试服务器的代理服务,从测试服务器中提取待测文件中的目标方法及目标方法的代码结构。
67.这里,上述执行主体可以在测试服务器上预先设定基于沙箱容器的代理服务,该代理服务用于对测试服务器的测试过程进行监测,以及将所监测的数据传递给目标服务器。这样,上述执行主体可以通过该代理服务,检测到测试服务器加载待测文件的操作。另外,由于测试服务器加载待测文件时,通常会对待测文件进行结构解析,以得到待测文件中的目标方法及目标方法的代码结构。此时,代理服务可以在测试服务器对待测文件进行解析的过程中,实时拦截到待测文件中的目标方法及目标方法的代码结构。
68.步骤102,响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代码节点的执行顺序,生成目标方法对应的节点执行序列。
69.其中,上述用户输入参数,通常是用户针对上述待测文件输入的用于对上述待测文件进行测试的参数取值。
70.这里,在测试服务器接收到用户输入参数时,测试服务器可以采用用户输入参数,对上述待测文件进行测试。作为示例,上述执行主体可以通过测试服务器中创建的用于对测试服务器的测试过程进行监测的守护进程,检测到测试服务器执行对上述待测文件进行测试,以及实时监测上述待测文件中的目标方法对应的代码结构中的被执行的代码节点。
71.可选地,检测目标方法对应的代码结构中的被执行的代码节点,可以包括:通过上述代理服务检测目标方法对应的代码结构中的被执行的代码节点。
72.这里,上述执行主体可以通过代理服务检测到测试服务器对上述待测文件执行测试。在对上述待测文件执行测试的过程中,代理服务可以实时监测到目标方法中的各个被执行的代码节点。之后,上述执行主体可以基于代理服务监测到的目标方法中的各个被执行的代码节点,按照目标方法中的各个被执行的代码节点被执行的先后顺序,生成针对该目标方法的节点执行序列。
73.另外,实际应用中,待测文件中通常具有多个目标方法。在待测文件具有多个目标
方法时,上述执行主体可以针对每个目标方法,按照该目标方法中的各个被执行的代码节点被执行的先后顺序,生成该目标方法对应的节点执行序列。
74.需要指出的是,节点执行序列中通常记录有各个被执行的代码节点的节点标识。节点标识通常是用于指示代码节点的标识信息,如,可以是代码节点的名称、编号等。举例来说,若目标方法具有5个代码节点,且各代码节点的节点标识分别为001、002、003、004、005,若该目标方法中的001和003指示的代码节点先后被执行,则该目标方法对应的节点执行序列可以为{001,003}。
75.步骤103,根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
76.这里,上述执行主体可以对目标方法、目标方法的代码结构、目标方法对应的节点执行序列进行分析,从而得到上述待测文件的代码覆盖率。
77.举例来说,若上述待测文件中具有一个目标方法,该目标方法的代码结构中具有100个代码节点,而上述目标方法对应的节点执行序列中指示具有30个代码节点已被执行,则可以得到上述待测文件的代码覆盖率为30%。
78.本实施例提供的方法,在对待测文件进行测试时,通过获取待测文件中的目标方法、目标方法的代码结构以及目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,无需在测试之前预先对待测文件进行处理,有助于实现快速有效地得到待测文件的代码覆盖率,实用性更好。
79.在本实施例的一些可选的实现方式中,上述根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,可以包括:首先,若目标方法的数目有多个,则根据各目标方法对应的代码结构中的代码节点的数目,确定针对待测文件的代码节点的总节点数。然后,按照预设处理周期,确定当前已被执行的代码节点的数目,以及根据当前已被执行的代码节点的数目和总节点数目,生成当前针对待测文件的代码覆盖率。
80.其中,上述预设处理周期通常是预先设定的时间周期,如,可以是1秒,0.5秒等。实践中,由于对待测文件进行测试的时间不会太长,因此,上述预设处理周期的取值通常较小,如,通常为秒级或者是毫秒级,这样,可以实现在对待测文件进行测试过程中,实时地将最新的代码覆盖率呈现给测试人员。
81.这里,待测文件中通常具有多个目标方法。在待测文件中同时具有多个目标方法时,上述执行主体可以针对每个目标方法,分析出该目标方法对应的代码结构中的代码节点的数目。然后,上述执行主体可以将所有目标方法对应的代码节点的数目累加起来,得到上述总节点数目。之后,上述执行主体可以通过累计当前已被执行的代码节点的数目,以及在到达预设处理周期时,采用当前已被执行的代码节点的数目除以总节点数目,计算得到当前针对待测文件的代码覆盖率。
82.本实施例可以实现在对待测文件进行测试过程中,实时地将最新的代码覆盖率呈现给测试人员,以便测试人员直观地掌握测试进度,以及可以在测试出现问题时,如,代码覆盖率始终不变时,及时进行干预处理,有助于实现在得到代码覆盖率的同时,提高测试效率。
83.在一些可选的实现方式中,上述按照预设处理周期,确定当前已被执行的代码节
点的数目,可以包括:按照上述预设处理周期,从目标消息队列中获取各目标方法对应的节点执行序列,以及将所获取的各目标方法对应的节点执行序列中的节点标识的数目的总和,确定为当前已被执行的代码节点的数目。
84.其中,目标消息队列通常是代理服务与目标服务器之间传输消息的消息队列。
85.这里,上述执行主体可以通过上述代理服务得到目标方法对应的节点执行序列。上述代理服务可以按照各目标方法的执行顺序,将各目标方法对应的节点执行序列,先后存入目标消息队列中。这样,上述执行主体可以按照一定的周期,到目标消息队列中实时获取各目标方法对应的节点执行序列,从而基于已获取到的各目标方法对应的节点执行序列,计算各节点执行序列中的节点标识的数目,以及将各节点执行序列对应的节点标识的数目的总和,确定为已执行节点的数目。这样,可以采用当前已被执行的代码节点的数目除以总节点数目,计算得到当前针对待测文件的代码覆盖率,从而实现得到实时的代码覆盖率。
86.在本技术的各个实施例的可选的实现方式中,上述根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,可以包括:若待测文件的数目有多个且各待测文件中的目标方法的数目有多个,则针对每个待测文件,根据该待测文件中的目标方法、各目标方法的代码结构、各目标方法对应的节点执行序列,生成针对该待测文件的代码覆盖率。
87.这里,测试服务器可以同时对多个待测文件进行测试。在测试服务器同时对多个待测文件进行测试时,上述执行主体可以针对每个待测文件,采用该待测文件中的目标方法、各目标方法的代码结构、各目标方法对应的节点执行序列,生成针对该待测文件的代码覆盖率。实践中,在同时对多个待测文件进行测试时,可以针对每个待测文件,生成一个用于指示该待测文件的实时的代码覆盖率的进度条,这样,测试人员可以对各待测文件对应的进度条进行直观查看,以了解各待测文件的测试进度和实时代码覆盖率情况,以及在测试结束时,可以得到各待测文件的总代码覆盖率。
88.需要指出的是,上述执行主体可以以待测文件的文件标识作为区分,针对每个待测文件,独立呈现各待测文件对应的实时的代码覆盖率。这样,测试人员可以直观地掌握各个待测文件的测试进度,以及可以在某一个或某几个待测文件测试出现问题时,如,代码覆盖率始终不变时,及时进行干预处理,有助于实现在得到代码覆盖率的同时,进一步提高测试效率。
89.请参阅图2,图2是本技术实施例提供的一种信息处理方法的实现流程图。本实施例提供的信息处理方法,可以包括以下步骤:
90.步骤201,响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构。
91.其中,代码结构为树形图结构,且代码结构包括至少一个代码节点。
92.步骤202,响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代码节点的执行顺序,生成目标方法对应的节点执行序列。
93.在本实施例中,步骤201-202的具体操作与图1所示的实施例中步骤101-102的操作基本相同,在此不再赘述。
94.步骤203,根据代码结构中的各个被执行的代码节点,对目标方法对应的代码结构进行节点标记处理,得到标记后的代码结构。
95.其中,标记后的代码结构中每个代码节点具有执行指示信息,执行指示信息指示相应代码节点是否已被执行。上述执行指示信息通常是用于指示相应代码节点是否已被执行的信息。实践中,上述执行指示信息的取值可以为“1”,也可以为“true”,可以为“0”,也可以为“false”。本实施例对上述执行指示信息的具体形式不做限定。
96.其中,上述节点标记处理用于对代码结构中各代码节点进行信息标记。
97.这里,上述执行主体可以针对每个目标方法,采用该目标方法对应的代码结构中各个被执行的代码节点,对该目标方法对应的代码结构进行节点标记处理,使得该目标方法对应的代码结构中的每个代码节点具有执行指示信息。
98.步骤204,根据标记后的代码结构和预先存储的代码结构中各代码节点与目标方法中各代码段之间的映射关系,生成针对目标方法的标记后的代码,以及在待测文件中呈现标记后的代码。
99.其中,标记后的代码中的对应已被执行的代码节点的代码颜色与对应未被执行的代码节点的代码颜色相异。实践中,对应已被执行的代码节点的代码颜色可以为绿色,对应未被执行的代码节点的代码颜色可以为红色。这样,可以通过鲜明的颜色区分,使得测试人员一眼便能获悉代码的执行情况。
100.这里,由于针对每个目标方法对应的代码结构,该代码结构中的每个代码节点通常与该目标方法的代码段相对应。因此,上述执行主体可以基于标记后的代码结构和代码节点与代码段之间的映射关系,对已被执行的代码节点对应的代码段的颜色和未被执行的代码节点对应的代码段的颜色进行区别标记,然后将各代码节点对应的颜色标记后的代码段进行渲染拼接,得到针对该目标方法的标记后的代码。实现在待测文件中,测试人员可以直观地区分哪些代码已被执行,哪些代码未被执行。
101.这样,测试人员可以通过代码颜色,实时获悉测试进展,有助于进一步提升用户体验。
102.步骤205,根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
103.在本实施例中,步骤205的具体操作与图1所示的实施例中步骤103的操作基本相同,在此不再赘述。
104.本实施例可以实现在待测文件中,实时地、直观地呈现已被执行的代码段和未被执行的代码段。测试人员可以通过代码颜色,实时获悉测试进展,有助于进一步提升用户体验。
105.请参阅图3,图3是本技术实施例提供的一种信息处理方法的实现流程图。本实施例提供的信息处理方法,可以包括以下步骤:
106.步骤301,响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构。
107.其中,代码结构为树形图结构,且代码结构包括至少一个代码节点。
108.步骤302,响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代
码节点的执行顺序,生成目标方法对应的节点执行序列。
109.在本实施例中,步骤301-302的具体操作与图1所示的实施例中步骤101-102的操作基本相同,在此不再赘述。
110.步骤303,在待测文件中存在满足预设清洗条件的目标代码时,对待测文件进行代码清洗。
111.其中,代码清洗用于按照预设代码删除规则删除待测文件中的部分代码。
112.其中,上述预设清洗条件通常是预先设定的用于触发代码清洗的条件。实践中,上述预设清洗条件可以包括但不限于:存在对应参数取值不同且代码逻辑相同的相邻代码、存在对应代码逻辑相悖的代码。
113.其中,上述目标代码通常是满足预设清洗条件的代码。
114.其中,上述预设代码删除规则通常是预先设定的用于删除代码的规则。如,上述预设代码删除规则可以为:删除对应参数取值不同且代码逻辑相同的多个相邻代码中的、首个代码之后的各代码,也可以为删除目标代码的相邻代码,也可以为删除目标代码。
115.这里,在待测文件中存在满足预设清洗条件的目标代码时,上述执行主体可以对上述待测文件进行代码清洗,如,可以删除上述目标代码的对应参数取值不同且代码逻辑相同的相邻代码,仅保留其中的一个,这样,可以减少数据处理量,提高数据处理效率。
116.步骤304,根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
117.在本实施例中,步骤304的具体操作与图1所示的实施例中步骤103的操作基本相同,在此不再赘述。
118.本实施例通过对待测文件中的代码进行清洗,实现减少数据处理量,提高数据处理效率。
119.请参阅图4,图4是本技术实施例提供的一种信息处理装置400的结构框图。本实施例中该信息处理装置包括的各单元用于执行图1-图3对应的实施例中的各步骤。具体请参阅图1-图3以及图1-图3所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,信息处理装置400包括:
120.信息提取单元401,用于响应于检测到测试服务器加载待测文件,提取待测文件中的目标方法及目标方法的代码结构,其中,代码结构为树形图结构,且代码结构包括至少一个代码节点;
121.测试执行单元402,用于响应于检测到测试服务器基于用户输入参数对待测文件执行测试,检测目标方法对应的代码结构中的被执行的代码节点,以及根据代码结构中的各个被执行的代码节点的执行顺序,生成目标方法对应的节点执行序列;
122.信息生成单元403,用于根据待测文件中的目标方法、目标方法的代码结构、目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率。
123.作为本技术一实施例,装置还包括效果呈现单元(图中未示出)。其中,效果呈现单元用于:
124.根据代码结构中的各个被执行的代码节点,对目标方法对应的代码结构进行节点标记处理,得到标记后的代码结构,其中,标记后的代码结构中每个代码节点具有执行指示信息,执行指示信息指示相应代码节点是否已被执行;
125.根据标记后的代码结构和预先存储的代码结构中各代码节点与目标方法中各代码段之间的映射关系,生成针对目标方法的标记后的代码,以及在待测文件中呈现标记后的代码,其中,标记后的代码中的对应已被执行的代码节点的代码颜色与对应未被执行的代码节点的代码颜色相异。
126.作为本技术一实施例,信息生成单元403,具体用于:
127.若目标方法的数目有多个,则根据各目标方法对应的代码结构中的代码节点的数目,确定针对待测文件的代码节点的总节点数;
128.按照预设处理周期,确定当前已被执行的代码节点的数目,以及根据当前已被执行的代码节点的数目和总节点数目,生成当前针对待测文件的代码覆盖率。
129.作为本技术一实施例,信息生成单元403,具体还用于:按照预设处理周期,从目标消息队列中获取各目标方法对应的节点执行序列,以及将所获取的各目标方法对应的节点执行序列中的节点标识的数目的总和,确定为当前已被执行的代码节点的数目。
130.作为本技术一实施例,信息提取单元401,具体用于:通过预先设置于测试服务器的代理服务,从测试服务器中提取待测文件中的目标方法及目标方法的代码结构;
131.以及上述测试执行单元402,具体用于:通过代理服务检测目标方法对应的代码结构中的被执行的代码节点。
132.作为本技术一实施例,装置还包括代码清洗单元(图中未示出)。其中,代码清洗单元,用于:
133.在待测文件中存在满足预设清洗条件的目标代码时,对待测文件进行代码清洗,其中,代码清洗用于按照预设代码删除规则删除待测文件中的部分代码;
134.其中,预设清洗条件包括:存在对应参数取值不同且代码逻辑相同的相邻代码。
135.作为本技术一实施例,信息生成单元403,具体用于:
136.若待测文件的数目有多个且各待测文件中的目标方法的数目有多个,则针对每个待测文件,根据该待测文件中的目标方法、各目标方法的代码结构、各目标方法对应的节点执行序列,生成针对该待测文件的代码覆盖率。
137.本实施例提供的装置,在对待测文件进行测试时,通过获取待测文件中的目标方法、目标方法的代码结构以及目标方法对应的节点执行序列,生成针对待测文件的代码覆盖率,无需在测试之前预先对待测文件进行处理,有助于实现快速有效地得到待测文件的代码覆盖率,实用性更好。
138.应当理解的是,图4示出的信息处理装置的结构框图中,各单元用于执行图1-图3对应的实施例中的各步骤,而对于图1-图3对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1-图3以及图1-图3所对应的实施例中的相关描述,此处不再赘述。
139.图5是本技术另一实施例提供的一种服务器的结构框图。如图5所示,该实施例的服务器500包括:处理器501、存储器502以及存储在存储器502中并可在处理器501上运行的计算机程序503,例如信息处理方法的程序。处理器501执行计算机程序503时实现上述各个信息处理方法各实施例中的步骤,例如图1所示的步骤101至步骤103。或者,处理器501执行计算机程序503时实现上述图4对应的实施例中各单元的功能,例如,图4所示的单元401至403的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
140.示例性的,计算机程序503可以被分割成一个或多个单元,一个或者多个单元被存储在存储器502中,并由处理器501执行,以完成本技术。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在服务器500中的执行过程。例如,计算机程序503可以被分割成信息提取单元,测试执行单元,信息生成单元,各单元具体功能如上。
141.服务器可以包括,但不仅限于,处理器501、存储器502。本领域技术人员可以理解,图5仅仅是服务器500的示例,并不构成对服务器500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如转台设备还可以包括输入输出设备、网络接入设备、总线等。
142.所称处理器501可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
143.存储器502可以是服务器500的内部存储单元,例如服务器500的硬盘或内存。存储器502也可以是服务器500的外部存储设备,例如服务器500上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器502还可以既包括服务器500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及转台设备所需的其他程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
144.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
145.集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
146.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者
替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献