CN110008124B - 一种信息处理方法及装置 - Google Patents
一种信息处理方法及装置 Download PDFInfo
- Publication number
- CN110008124B CN110008124B CN201910249319.0A CN201910249319A CN110008124B CN 110008124 B CN110008124 B CN 110008124B CN 201910249319 A CN201910249319 A CN 201910249319A CN 110008124 B CN110008124 B CN 110008124B
- Authority
- CN
- China
- Prior art keywords
- program
- preset
- subroutines
- information
- indication
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 21
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012795 verification 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
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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种信息处理方法及装置,其中方法包括:获取第一时刻使用第一程序执行预设测试集得到的第一信息,并获取第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的预设信息,若确定第一程序与一个或多个第二程序匹配,则使用第一信息中包括的M个第一子程序对应的指示值更新预设信息中N个第二子程序对应的指示值,得到目标信息。本发明实施例中,通过以完成预设功能的子程序为单位获取子程序的指示值,可以根据子程序对多个测试结果中的子程序的指示值进行合并,从而可以避免将不同子程序的指示值进行合并所造成的子程序的测试结果丢失的技术问题,从而可以提高合并得到的覆盖率数据的准确性。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种信息处理方法及装置。
背景技术
在金融科技(Fintech)领域中,通过使用智能科技对信息进行处理,可以综合评估信息的质量,从而为用户的决策提供依据。在对程序进行测试的过程中,获取程序对应的覆盖率信息是金融科技领域一种常用的测试方法。程序对应的覆盖率信息是指在执行程序的过程中被执行的代码在全部代码中所占的比例信息和程度信息,通过确定程序对应的覆盖率信息,可以衡量程序中代码的质量。比如,若程序中代码被覆盖的程度较高,则可以确定程序中代码的质量较好;相应地,若程序中代码被覆盖的程度较低,则可以确定程序中代码的质量较差。因此,获取准确的覆盖率信息对于准确分析程序中代码的质量是非常重要的。
以类程序为例,采用逐行测试的方式是获取类程序对应的覆盖率信息的一种常用方法。具体地说,在测试类程序的过程中,可以记录类程序中每行字节码的执行结果,相应地,获取到的覆盖率信息中可以包括每行字节码的行号与每行字节码的测试结果。举例来说,若类程序中第5行字节码未被执行,则覆盖率信息中可以包括“5,0”,其中,“5”可以用于标识第5行字节码,“0”可以用于标识该行字节码的测试结果为未执行。采用上述方式,若在测试的过程中未修改类程序中的字节码,则可以获取到较为准确的覆盖率信息;然而,若执行了多次测试过程,且在测试的过程中修改了类程序中的部分字节码,则可能由于修改后的字节码的行号发生变化,导致多个测试过程对应的覆盖率信息紊乱,使得多个测试过程的合并过程出错。比如,若在类程序的第5行字节码之前插入一行新的字节码,且在执行类程序时该行新的字节码被调用,则修改前的覆盖率信息中可以包括“5,0”,而修改后的覆盖率信息中可以包括“5,1”;两个覆盖率信息中的“5”所指示的字节码实际是不相同的,为了实现两个覆盖率信息的合并,可能会在合并过程中丢弃修改前的覆盖率信息中的“5,0”,导致合并得到的覆盖率信息不准确。
综上,目前亟需一种信息处理方法,用以提高合并得到的覆盖率信息的准确性。
发明内容
本发明实施例提供一种信息处理方法及装置,用以提高合并得到的覆盖率信息的准确性。
第一方面,本发明实施例提供的一种信息处理方法,包括:
获取第一时刻使用第一程序执行预设测试集得到的第一信息,所述第一程序包括M个第一子程序,所述第一信息中包括所述M个第一子程序分别对应的指示值,每个第一子程序用于完成所述每个第一子程序对应的预设功能,每个第一子程序对应的指示值用于指示执行所述预设测试集时所述每个第一子程序是否被调用;获取预设信息,所述预设信息为所述第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的,所述预设信息中包括N个第二子程序分别对应的指示值;进一步地,若确定所述第一程序与所述一个或多个第二程序匹配,则使用所述M个第一子程序对应的指示值更新所述预设信息中所述N个第二子程序对应的指示值,得到目标信息。
上述技术方案中,通过以完成预设功能(即函数功能)的子程序为单位,获取子程序的指示值(即M第一子程序、N个第二子程序的测试结果),可以使得在合并同一个程序对应的多个测试结果的过程中,根据子程序对多个测试结果中的子程序的指示值进行合并,从而可以避免将不同子程序的指示值进行合并所造成的子程序的测试结果丢失的技术问题;也就是说,相比于现有技术采用以一行程序为单位进行合并的方式来说,上述技术方案可以提高合并得到的覆盖率信息的准确性。
可选地,若确定所述第一程序与所述一个或多个第二程序不匹配,则将所述N个第二子程序分别对应的指示值添加到所述预设信息中。
上述技术方案中,若确定测试结果对应的程序为新程序,则可以直接将新程序对应的测试结果添加在预设信息中;通过在合并预测结果之前预先判断测试结果对应的程序是否为新程序,可以简化操作过程,提高信息处理的效率。
可选地,所述第一信息中还包括所述第一程序的标识和所述第一程序的校验值,所述预设信息中还包括所述一个或多个第二程序的标识和所述一个或多个第二程序的校验值;所述若确定所述第一程序与所述一个或多个第二程序匹配,则使用所述M个第一子程序对应的指示值更新所述N个第二子程序对应的指示值,包括:若确定所述第一程序的校验值与所述一个或多个第二程序中第三程序的校验值相同,则从所述N个第二子程序中获取与所述M个第一子程序匹配的M个第二子程序,并根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值;若确定所述第一程序的标识与所述一个或多个第二程序中第四程序的标识相同,且所述第一程序的校验值与所述一个或多个第二程序的校验值均不相同,则从所述M个第一子程序中获取与所述N个第二子程序中的T个第二子程序匹配的T个第一子程序,并根据所述T个第一子程序对应的指示值更新所述T个第二子程序对应的指示值。
上述技术方案中,通过将程序的标识和程序的校验值作为合并测试结果的两个评判标准,可以使得合并过程更为完善;具体地说,若两个程序的校验值相同,则可以说明两个程序中的字节码完全相同,因此可以依次合并两个程序中所包括的M个子程序的指示值;若两个程序的校验值不同,而两个程序的标识相同,则可以说明两个程序中存在部分字节码不同,因此可以合并两个程序中字节码相同的T个子程序的指示值。由此可知,上述技术方案采用对比程序的标识和程序的校验值的方式,一方面可以简化操作,使得合并测试结果的过程更加便于实现,另一方面,可以提高合并得到的目标信息的准确性。
可选地,所述根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值,包括:若确定第I个第一子程序对应的指示值为第一指示值,第I个第二子程序对应的指示值为第二指示值,则将所述第I个第二子程序对应的指示值更新为第一指示值;所述第一指示值用于指示执行所述预设测试集时第一子程序或第二子程序被调用;其中,I<M。
可选地,所述M个第一子程序中包括第Y个第一子程序,所述第Y个第一子程序是通过如下方式确定的:按照预设字节码长度对所述第一程序中的字节码进行检测,若检测到第一预设指示字符,则记录所述第一预设指示字符在所述第一程序中的第一位置信息,所述第一指示字符用于指示所述第Y个第一子程序对应的初始字节码;对所述第一程序中位于所述第一预设指示字符后的字节码进行检测,若检测到与所述第一预设指示字符对应的第二预设指示字符,则记录所述第二预设指示字符在所述第一程序中的第二位置信息,所述第二指示字符用于指示所述第Y个第一子程序对应的终止字节码;根据所述第一位置信息和所述第二位置信息,获取所述第一程序中位于所述第一预设指示字符与所述第二预设指示字符之间的字节码,并将所述字节码作为第Y个第一子程序的字节码。
上述技术方案中,通过将第一预设指示字符和第二预设指示字符之间的字节码定义为第一子程序,可以使得第一子程序为第一程序中的函数或方法(即完成预设功能的程序段),采用基于函数或方法来更新覆盖率信息的方式,可以避免将不同函数的指示值进行合并,从而可以保证覆盖率信息的完整,进一步地提高合并得到的覆盖率信息的准确性。
第二方面,本发明实施例提供的一种信息处理装置,所述装置包括:
获取模块,用于获取第一时刻使用第一程序执行预设测试集得到的第一信息,所述第一程序包括M个第一子程序,所述第一信息中包括所述M个第一子程序分别对应的指示值,每个第一子程序对应的指示值用于指示执行所述预设测试集时所述每个第一子程序是否被调用;以及,获取预设信息,所述预设信息为所述第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的;所述预设信息中包括N个第二子程序分别对应的指示值;
更新模块,用于若确定所述第一程序与所述一个或多个第二程序匹配,则使用所述M个第一子程序对应的指示值更新所述预设信息中所述N个第二子程序对应的指示值,得到目标信息。
可选地,所述更新模块还用于:若确定所述第一程序与所述一个或多个第二程序不匹配,则将所述N个第二子程序分别对应的指示值添加到所述预设信息中。
可选地,所述第一信息中还包括所述第一程序的标识和所述第一程序的校验值,所述预设信息中还包括所述一个或多个第二程序的标识和所述一个或多个第二程序的校验值;
所述更新模块用于:若确定所述第一程序的校验值与所述一个或多个第二程序中第三程序的校验值相同,则从所述N个第二子程序中获取与所述M个第一子程序匹配的M个第二子程序,并根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值;若确定所述第一程序的标识与所述一个或多个第二程序中第四程序的标识相同,且所述第一程序的校验值与所述一个或多个第二程序的校验值均不相同,则从所述M个第一子程序中获取与所述N个第二子程序中的T个第二子程序匹配的T个第一子程序,并根据所述T个第一子程序对应的指示值更新所述T个第二子程序对应的指示值。
可选地,所述更新模块用于:若确定第I个第一子程序对应的指示值为第一指示值,第I个第二子程序对应的指示值为第二指示值,则将所述第I个第二子程序对应的指示值更新为第一指示值;所述第一指示值用于指示执行所述预设测试集时第一子程序或第二子程序被调用。
可选地,所述M个第一子程序中包括第Y个第一子程序,所述第Y个第一子程序是通过如下方式确定的:按照预设字节码长度对所述第一程序中的字节码进行检测,若检测到第一预设指示字符,则记录所述第一预设指示字符在所述第一程序中的第一位置信息,所述第一指示字符用于指示所述第Y个第一子程序对应的初始字节码;对所述第一程序中位于所述第一预设指示字符后的字节码进行检测,若检测到与所述第一预设指示字符对应的第二预设指示字符,则记录所述第二预设指示字符在所述第一程序中的第二位置信息,所述第二指示字符用于指示所述第Y个第一子程序对应的终止字节码;根据所述第一位置信息和所述第二位置信息,获取所述第一程序中位于所述第一预设指示字符与所述第二预设指示字符之间的字节码,并将所述字节码作为第Y个第一子程序的字节码。
第三方面,本发明实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述第一方面或第二方面任意所述的信息处理方法。
第四方面,本发明实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述第一方面或第二方面任意所述的信息处理方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种合并得到目标覆盖率信息的流程示意图;
图2为本发明实施例提供的一种信息处理方法对应的流程示意图;
图3为本发明实施例提供的一种第一覆盖率信息的数组存储示意图;
图4为本发明实施例提供的一种信息处理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中,程序可以是指类程序,类程序中可以包括多行字节码,一个子程序可以是指类程序中的一个方法(或者函数)所对应的程序段,即一个子程序可以包括完成该子程序对应的功能的多行字节码。信息可以是指覆盖率信息,即使用类程序执行预设测试集时类程序中的字节码的调用情况。本发明的下列实施例中以确定目标覆盖率信息的过程为例描述本发明实施例中的信息处理方法。
图1为本发明实施例提供的一种合并得到目标覆盖率信息的流程示意图,如图1所示,合并得到目标覆盖率信息的过程可以包括如下步骤:
步骤d,使用程序a1执行预设测试集得到第一覆盖率信息。
步骤e,对程序a1进行修改得到程序a2,并使用程序a2执行预设测试集得到第二覆盖率信息。
步骤f,对程序a2进行修改得到程序a3,并使用程序a3执行预设测试集得到第三覆盖率信息。
步骤g,对第一覆盖率信息、第二覆盖率信息和第三覆盖率信息进行合并,得到目标覆盖率信息。
在步骤d~步骤g中,程序a2可以为对程序a1进行修改得到的,即程序a2的生成时刻可以晚于程序a1的生成时刻,程序a3可以为对程序a2进行修改得到的,即程序a3的生成时刻可以晚于程序a2的生成时刻。因此,程序a1执行预设测试集的时刻可以早于程序a2执行预设测试集的时刻,程序a2执行预设测试集的时刻可以早于程序a3执行预设测试集的时刻;相应地,第一覆盖率信息的生成时刻可以早于第二覆盖率信息的生成时刻,第二覆盖率信息的生成时刻可以早于第三覆盖率信息的生成时刻。通过对依次生成的第一覆盖率信息、第二覆盖率信息和第三覆盖率信息进行合并,可以得到目标覆盖率信息,目标覆盖率信息中可以包括执行预设测试集的过程中程序a1、程序a2和程序a3所包括的字节码被调用的信息。
本发明实施例中,预设测试集可以由本领域技术人员根据实际需要进行设置,比如,预设测试集中可以包括一个测试样本,或者也可以包括至少两个测试样本,具体不作限定。以程序a1执行预设测试集为例,若预设测试集中包括至少两个测试样本,则程序a1可以执行至少两个测试样本中的一个测试样本,或者也可以执行至少两个测试样本中的多个测试样本(即两个或者两个以上测试样本),具体不作限定。
在一个示例中,如图1所示,预设测试集中可以包括测试样本w1、测试样本w2、测试样本w3、测试样本w4、测试样本w5,第一覆盖率信息可以为使用程序a1对测试样本w1和测试样本w2进行测试得到的,第二覆盖率信息可以为使用程序a2对测试样本w3得到的,第三覆盖率信息可以为使用程序a3对测试样本w4和测试样本w5进行测试得到的。在测试样本不同的情况下,程序a1、程序a2和程序a3中被调用的字节码可以不同,因此,通过对程序a1、程序a2和程序a3分别对应的第一覆盖率信息、第二覆盖率信息和第三覆盖率信息进行合并,可以确定完整的目标覆盖率信息。
需要说明的是,图1仅是一种示例性的简单说明,其所列举的多个程序(即程序a1、程序a2和程序a3)的对应关系仅是为了便于说明方案,并不构成对方案的限定。在具体实施中,多个程序之间可以具有对应关系,或者也可以不具有对应关系,比如程序a3可以为对程序a1进行修改得到的程序,或者程序a1、程序a2和程序a3可以为完全不同的程序,具体不作限定。
在一种可能的实现方式中,获取多个覆盖率信息后,可以按照预设顺序对多个覆盖率信息进行合并,预设顺序可以由本领域技术人员根据经验进行设置,具体不作限定。以合并第一覆盖率信息、第二覆盖率信息和第三覆盖率信息得到目标覆盖率信息为例,在一个示例中,可以按照生成时刻从晚到早的顺序对多个覆盖率信息进行合并,比如可以首先将第三覆盖率信息与第二覆盖率信息进行合并,得到覆盖率信息b1,进而可以将覆盖率信息b1与第一覆盖率信息进行合并,得到目标覆盖率信息;在另一个示例中,可以按照生成时刻从早到晚的顺序对多个覆盖率信息进行合并,比如可以首先将第一覆盖率信息与第二覆盖率信息进行合并,得到覆盖率信息b2,进而可以将覆盖率信息b2与第三覆盖率信息进行合并,得到目标覆盖率信息。
在另一种可能的实现方式中,获取多个覆盖率信息后,可以按照随机顺序对多个覆盖率信息进行合并,比如可以首先将第一覆盖率信息与第三覆盖率信息进行合并,得到覆盖率信息b3,进而可以将第二覆盖率信息与覆盖率信息b3进行合并,得到目标覆盖率信息,具体不作限定。
基于图1所示意的流程示意图,图2为本发明实施例提供的一种信息处理方法对应的流程示意图,该方法可以用于对任意两个覆盖率信息进行合并,比如可以用于对第三覆盖率信息与第二覆盖率信息进行合并,或者也可以用于对覆盖率信息b1与第一覆盖率信息进行合并。若需要对两个以上的覆盖率信息进行合并,则可以循环执行图2所示意的方法,直至得到目标覆盖率信息。
如图2所示,该方法可以包括:
步骤201,获取第一时刻使用第一程序执行预设测试集得到的第一信息。
以第一程序为程序a1为例,具体实施中,可以预先确定程序a1中包括的M个第一子程序,并可以在使用程序a1执行预设测试集的过程中,按照预设周期或实时监控程序a1中每个第一子程序的调用情况。进一步地,可以根据每个第一子程序的调用情况设置每个第一子程序对应的指示值,举例来说,若确定执行预设测试集的过程中某一个第一子程序被调用,则可以将该第一子程序对应的指示值设置为第一指示值(比如1);相应地,若确定在执行预设测试集的过程中某一个第一子程序均未被调用,则可以将该第一子程序对应的指示值设置为第二指示值(比如0)。当使用程序a1执行至预设测试集的结束位置时,可以根据程序a1中包括的M个第一子程序分别对应的指示值生成第一覆盖率信息。
具体实施中,确定程序a1中包括的M个第一子程序的方法可以有多种,在一种可能的实现方式中,可以依次遍历程序a1中的字节码,若检测到第一子程序定义的指示字符,则可以从第一子程序定义的指示字符开始存储字节码,直至检测到距离第一子程序定义的指示字符最近的第一子程序结束的指示字符,获取位于第一子程序定义的指示字符与第一子程序结束的指示字符之间的字节码,并可以将该段字节码作为一个第一子程序。在一个示例中,第一子程序对应的字节码中可以不包含行号。具体实施中,在从程序a1中获取字节码存储为第一子程序的过程中,若检测到指示行号的字节码(比如LINE NUMBER),则可以无需存储该字节码,直接获取下一字节码。举例来说,若程序程序a1中的某段字节码为“****LINE NUMBER%%%%”,则第一子程序中存储的字节码可以为“****%%%%”。
需要说明的是,上述仅是一种示例性的简单说明,其所示意的确定第一子程序的方法仅是为了便于说明方案,并不构成对方案的限定。具体实施中,也可采用其它方法确定P个第一子程序,比如,可以采用上述方法检测程序a1中的某一段字节码,确定该段字节码中包括的L个第一子程序,并可以采用人工检测的方法确定程序a1中除该段字节码以外的字节码包括的p-L个第一子程序,具体不作限定。
进一步地,在获取到一个第一子程序(比如第一子程序r11)对应的字节码后,可以设置第一子程序r11的标识和第一子程序r11的校验值。在一个示例中,第一子程序r11的标识可以用于唯一标识第一子程序r11,第一子程序r11的标识可以由第一部分和第二部分构成,第一部分可以为第一子程序r11的名称(即r11),第二部分可以为第一子程序r11的字节码中所包括的多个参数类型的全限定名,其中,多个参数类型的全限定名之间可以由预设符号进行分隔。比如,若第一子程序r11的标识为r11:i1:i3:i4,则可以确定第一子程序r11中包括类型为i1、i3和i4的参数。第一子程序r11的校验值可以用于唯一标识第一子程序r11的指示值中包括的字节码信息,第一子程序r11的校验值可以为对第一子程序r11中包括的字节码信息进行加密得到的密钥,比如可以在获取到第一子程序r11包括的全部字节码后,采用MD5加密方法确定第一子程序r11对应的MD5值,并可以将该MD5值作为第一子程序r11的校验值;或者也可以采用冗余循环加密方法确定第一子程序r11对应的CRC值,并可以将该CRC值作为第一子程序r11的校验值。
本发明实施例中,还可以确定程序a1的标识和程序a1的校验值。其中,程序a1的标识可以用于唯一标识程序a1,程序a1的标识可以由第一部分和第二部分构成,第一部分可以为程序a1的名称,第二部分可以为程序a1所属的范围(即程序a1所在的文件的位置信息);比如,若程序a1的标识为a1:D:\study,则可以确定程序a1的名称为a1,程度a1所在的文件的位置信息为D:\study。程序a1的校验值可以用于唯一标识程序a1中包括的字节码信息,本发明实施例中,确定程序a1的校验值的过程可以参照确定第一子程序r11的校验值的过程进行执行,不再赘述。
在一种可能的实现方式中,第一覆盖率信息可以包括程序a1的标识、程序a1的校验值、M个第一子程序的标识、M个第一子程序的校验值和M个第一子程序对应的指示值。第一覆盖率信息可以以表格的形式进行存储,或者也可以以数组的形式进行存储,具体不作限定。
示例性地,表1为本发明实施例提供的一种第一覆盖率信息以表格形式存储的示意表。
表1:一种第一覆盖率信息以表格形式存储的示意
如表1所示,第一覆盖率信息可以为使用程序a1对预设测试集进行测试得到的第一覆盖率信息,第一覆盖率信息中可以包括程序a1的标识a1:D:\study和程序a1的校验值12q345,其中,程序a1所在的文件夹的地址可以为D:\study。程序a1中可以包括第一子程序r11、第一子程序r12和第一子程序r13,第一子程序r11的标识可以为r11:i1:i3:i4,即第一子程序r11中可以包括类型为i1、i3和i4的参数,第一子程序r12的标识可以为r12:i1:i2:i7,即第一子程序r12中可以包括类型为i1、i2和i7的参数,第一子程序r13的标识可以为r13:i1:i2:i3,即第一子程序r13中可以包括类型为i1、i2和i3的参数。第一子程序r11的校验值可以为5452q5,第一子程序r12的校验值可以为32545z,第一子程序r13的校验值可以为P23545。根据表1所示意的第一子程序r11、第一子程序r12和第一子程序r13的指示值可以确定,在使用程序a1对预设测试集进行测试的过程中,第一子程序r11的字节码未被调用,第一子程序r12的字节码未被调用,第一子程序r13的字节码被调用。
表1示意的内容为采用一个测试程序执行预设测试集得到的测试结果文件,本发明实施例中,若测试程序包括多个(比如程序a1和程序b1),则使用测试程序对预设测试集执行一次测试得到的测试结果文件中可以包括程序a1和程序b1分别对应的覆盖率信息。在一种可能的实现方式中,每个程序的覆盖率信息可以对应设置有一个表格,相应地,测试结果文件中可以包括第一表格和第二表格,第一表格中可以存储有程序a1的覆盖率信息,第二表格中可以存储有程序b1的覆盖率信息。在另一种可能的实现方式中,多个程序的覆盖率信息可以存储在一个表格内,比如对预设测试集执行一次测试得到的测试文件中可以同时包括程序a1的覆盖率信息和程序b1的覆盖率信息。
示例性地,图3为本发明实施例提供的一种第一覆盖率信息的数组存储示意图,若第一覆盖率信息以数组的方式进行存储,则第一覆盖率信息对应的数组中可以存储有第一程序的标识、第一程序的校验值、多个第一子程序的标识、多个第一子程序的校验值,还可以存储有多个第一子程序中每个第一子程序的数组范围。如图3所示,图3所示意的第一覆盖率信息与表1所示意的第一覆盖率信息相对应,其中,数组中可以存储有程序a1的标识、程序a1的校验值、第一子程序r11~第一子程序r13的标识和第一子程序r11~第一子程序r13的校验值,且,第一子程序r11占用数组中的第1~第6位,即第一子程序r11的数组范围可以为[1,6];第一子程序r12占用数组中的第7~第15位,即第一子程序r12的数组范围可以为[7,15];第一子程序r13可以占用数组中的第16~第20位,即第一子程序r13的数组范围可以为[16,20]。具体实施中,多个子程序的数组范围也可以由本领域技术人员根据经验进行设置,以第一子程序r11为例,第一子程序r11的数组范围可以为[1,6],或者也可以为[1,6),或者还可以为(1,6],对此不作限定。
图3所示意的数组为采用一个测试程序执行预设测试集得到的测试结果文件,本发明实施例中,若测试程序包括多个(比如程序a1和程序b1),则使用测试程序对预设测试集执行一次测试得到的测试结果文件中可以包括程序a1和程序b1分别对应的覆盖率信息。在一种可能的实现方式中,每个程序的覆盖率信息可以对应设置有一个数组,相应地,测试结果文件中可以包括第一数组和第二数组,第一数组中可以存储有程序a1的覆盖率信息,第二数组中可以存储有程序b1的覆盖率信息。
步骤202,根据第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到预设信息。
此处,若预设信息为根据第一时刻之后的预设时间段内使用一个第二程序执行预设测试集得到的,则预设信息可以为使用程序a2执行预设测试集得到的第二覆盖率信息,或者可以为使用程序a3执行预设测试集得到的第三覆盖率信息。其中,获取第二覆盖率信息或第三覆盖率信息的过程参照步骤201进行实施,相应地,使用程序a2执行预设测试集得到的第二覆盖率信息中可以包括程序a2的标识、程序a2的校验值、从程序a2中确定的M个第二子程序的标识、M个第二子程序的校验值和M个第二子程序对应的指示值;使用程序a3执行预设测试集得到的第三覆盖率信息中可以包括程序a3的标识、程序a3的校验值、从程序a3中确定的M个第三子程序的标识、M个第三子程序的校验值和M个第三子程序对应的指示值。
若预设信息为根据第一时刻之后的预设时间段内使用多个第二程序执行预设测试集得到的,则预设信息可以为根据使用程序a2执行预设测试集得到的第二覆盖率信息以及使用程序a3执行预设测试集得到的第三覆盖率信息确定的。根据第二覆盖率信息和第三覆盖率信息确定预设信息的过程可以参照图2所示意的过程(即步骤201~步骤203)进行实现,比如,可以将使用程序a2执行预设测试集得到的第二覆盖率信息作为步骤201中的第一信息,并可以将使用程序a3执行预设测试集得到的第三覆盖率信息作为步骤202中的预设信息,执行步骤201~步骤203,确定得到的目标覆盖率信息即可为根据第一时刻之后的预设时间段内使用多个第二程序执行预设测试集得到的预设信息。
下面具体描述根据第一覆盖率信息和第二覆盖率信息合并得到目标覆盖率信息的过程。
表2a、表2b和表2c分别为本发明实施例提供的三种第二覆盖率信息以表格形式存储的示意表。
表2a:一种第二覆盖率信息以表格形式存储的示意
如表2a所示,第二覆盖率信息可以为使用程序a2对预设测试集进行测试得到的第二覆盖率信息,第二覆盖率信息中可以包括程序a2的标识a1:D:\study和程序a2的校验值12q345,其中,程序a2所在的文件夹的地址可以为D:\study。程序a2中可以包括第二子程序r11、第二子程序r12和第二子程序r13,第二子程序r11的标识可以为r11:i1:i3:i4,即第二子程序r11中可以包括类型为i1、i3和i4的参数,第二子程序r12的标识可以为r12:i1:i2:i7,即第二子程序r12中可以包括类型为i1、i2和i7的参数,第二子程序r13的标识可以为r13:i1:i2:i3,即第二子程序r13中可以包括类型为i1、i2和i3的参数。第二子程序r11的校验值可以为5452q5,第二子程序r12的校验值可以为32545z,第二子程序r13的校验值可以为P23545。根据表2a所示意的第二子程序r11、第二子程序r12和第二子程序r13的指示值可以确定,在使用程序a2对预设测试集进行测试的过程中,第二子程序r11的字节码被调用,第二子程序r12的字节码未被调用,第二子程序r13的字节码被调用。
表2b:另一种第二覆盖率信息以表格形式存储的示意
如表2b所示,第二覆盖率信息可以为使用程序a2对预设测试集进行测试得到的第二覆盖率信息,第二覆盖率信息中可以包括程序a2的标识a1:D:\study和程序a2的校验值1563k2,其中,程序a2所在的文件夹的地址可以为D:\study。程序a2中可以包括第二子程序r11和第二子程序r22,第二子程序r11的标识可以为r11:i1:i3:i4,即第二子程序r11中可以包括类型为i1、i3和i4的参数,第二子程序r22的标识可以为r22:i3:i6:i7,即第二子程序r22中可以包括类型为i3、i6和i7的参数。第二子程序r11的校验值可以为5452q5,第二子程序r22的校验值可以为32y4i4。根据表2b所示意的第二子程序r11和第二子程序r22的指示值可以确定,在使用程序a2对预设测试集进行测试的过程中,第二子程序r11的字节码被调用,第二子程序r22的字节码未被调用。
表2c:又一种第二覆盖率信息以表格形式存储的示意
如表2c所示,第二覆盖率信息可以为使用程序a2对预设测试集进行测试得到的第二覆盖率信息,第二覆盖率信息中可以包括程序a2的标识a2:D:\study和程序a2的校验值553k02,其中,程序a2所在的文件夹的地址可以为D:\study。程序a2中可以包括第二子程序r31和第二子程序r32,第二子程序r31的标识可以为r31:i1:i3:i4,即第二子程序r31中可以包括类型为i1、i3和i4的参数,第二子程序r32的标识可以为r32:i3:i6:i7,即第二子程序r32中可以包括类型为i3、i6和i7的参数。第二子程序r31的校验值可以为5452q5,第二子程序r32的校验值可以为32y4i4。根据表2c所示意的第二子程序r31和第二子程序r32的指示值可以确定,在使用程序a2对预设测试集进行测试的过程中,第二子程序r31的字节码未被调用,第二子程序r32的字节码被调用。
步骤203,根据第一覆盖率信息和预设信息,更新预设信息得到目标覆盖率信息。
具体实施中,可以预先确定第一覆盖率信息中包括的程序a1的校验值和第二覆盖率信息中包括的程序a2的校验值是否相同。参照表1和表2a所示意的第一覆盖率信息和第二覆盖率信息,程序a1的校验值可以为12q345,程序a2的校验值可以为12q345,即程序a1的校验值与程序a2的校验值相同,可以说明程序a1的字节码信息与程序a2的字节码信息完全相同,即从程序a1中确定出的第一子程序(即表1所示意出的第一子程序r11~第一子程序r13)与从程序a2中确定出的第二子程序(即表2所示意出的第二子程序r11~第二子程序r13)的字节码信息完全相同。因此,可以根据第一子程序r11~第一子程序r13对应的指示值更新第二子程序r11~第二子程序r13对应的指示值。
以根据第一子程序r13对应的指示值更新第二子程序r13对应的指示值为例,第二子程序r13的指示值为“0”,第一子程序r13的指示值为“1”,即可以确定使用程序a2对预设测试集进行测试的过程中第二子程序r13未被调用,而使用程序a1对预设测试集进行测试的过程中第一子程序r13被调用,因此可以确定在对预设测试集进行测试的过程中第二子程序r13被调用过,此时,可以将第二子程序r13的指示值更新为“1”。相应地,第二子程序r12的指示值为“0”,第一子程序r12的指示值为“0”,即可以确定使用程序a1和程序a2对预设测试集进行测试的过程中第二子程序r12均未被调用,因此可以无需对第二子程序r12的指示值进行更新,即第二子程序r12的指示值可以仍为“0”。第二子程序r11的指示值为“1”,第一子程序r11的指示值为“1”,即可以确定使用程序a1和程序a2对预设测试集进行测试的过程中第二子程序r11均被调用,因此可以无需对第二子程序r11的指示值进行更新,即第二子程序r11的指示值可以仍为“1”。
表3a为根据表1和表2a所示意的第一覆盖信息和第二覆盖信息,更新第二覆盖信息得到的目标覆盖率信息的一种示意表。
表3a:一种目标覆盖率信息以表格形式存储的示意
参照表1和表2b所示意的第一覆盖率信息和第二覆盖率信息,程序a1的校验值可以为12q345,程序a2的校验值可以为1563k2,即程序a1的校验值与程序a2的校验值不同,可以说明程序a1的字节码信息与程序a2的字节码信息不同,即从程序a1中确定出的第一子程序(即表1所示意出的第一子程序r11~第一子程序r13)与从程序a2中确定出的第二子程序(即表2所示意出的第二子程序r11和第二子程序r22)的数量或字节码信息不同。进一步地,程序a1的标识可以为a1:D:\study,程序a2的标识可以为a1:D:\study,即程序a1的标识与程序a2的标识相同,可以说明程序a2为对程序a1中的字节码信息进行修改得到的;此时,可以获取第二子程序r11和第二子程序r22中与第一子程序r11~第一子程序r13相匹配的第二子程序,即获取与第一子程序r11~第一子程序r13中的某一个第一子程序的标识和校验值均相同的第二子程序。根据表1和表2b可以确定,第二子程序r11与第一子程序r11相匹配,此时可以根据第一子程序r11对应的指示值更新第二子程序r11对应的指示值。更新的过程可以参照上述内容进行实现,具体不再赘述。
表3b为根据表1和表2b所示意的第一覆盖信息和第二覆盖信息,更新第二覆盖信息得到的目标覆盖率信息的一种示意表。
表3b:一种目标覆盖率信息以表格形式存储的示意
参照表1和表2c所示意的第一覆盖率信息和第二覆盖率信息,程序a1的校验值可以为12q345,程序a2的校验值可以为553k02,即程序a1的校验值与程序a2的校验值不同,可以说明程序a2和程序a1的字节码不同;程序a1的标识可以为a1:D:\study,程序a2的标识可以为a2:D:\study,即程序a1的标识与程序a2的标识不同,可以说明程序a2和程序a1所在的文件夹不同。因此,可以确定程序a2和程序a1是不同的程序,此时可以将从程序a1中确定的第一子程序r11~第一子程序r13对应的指示值添加到第二覆盖率信息中,得到目标覆盖率信息。
表3c为根据表1和表2c所示意的第一覆盖信息和第二覆盖信息,更新第二覆盖信息得到的目标覆盖率信息的一种示意表。
表3c:一种目标覆盖率信息以表格形式存储的示意
需要说明的是,表1~表3c仅是一种示例性的简单说明,并不构成对方案的限定。在具体实施中,对预设测试集执行测试得到的一次测试结果中也可以包括多个程序的覆盖率信息,此时,可以针对于每个程序的覆盖率信息进行合并,得到每个程序的目标覆盖率信息。
本发明的上述实施例中,获取第一时刻使用第一程序执行预设测试集得到的第一信息,并获取第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的预设信息;其中,第一程序包括M个第一子程序,第一信息中包括M个第一子程序分别对应的指示值,每个第一子程序用于完成每个第一子程序对应的预设功能,每个第一子程序对应的指示值用于指示执行预设测试集时每个第一子程序是否被调用,预设信息中包括N个第二子程序分别对应的指示值;进一步地,若确定第一程序与一个或多个第二程序匹配,则使用第一信息中包括的M个第一子程序对应的指示值更新预设信息中N个第二子程序对应的指示值,得到目标信息。本发明实施例中,通过以完成预设功能的子程序为单位获取子程序的指示值(即测试结果),可以使得在合并同一个程序对应的多个测试结果的过程中,根据子程序对多个测试结果中的子程序的指示值进行合并,从而可以避免将不同子程序的指示值进行合并所造成的子程序的测试结果丢失的技术问题;也就是说,相比于现有技术采用以一行程序为单位进行合并的方式来说,本发明实施例中的方案可以提高合并得到的覆盖率数据的准确性。
针对上述方法流程,本发明实施例还提供一种信息处理装置,该装置的具体内容可以参照上述方法实施。
图4为本发明实施例提供的一种信息处理装置的结构示意图,包括:
获取模块401,用于获取第一时刻使用第一程序执行预设测试集得到的第一信息,所述第一程序包括M个第一子程序,所述第一信息中包括所述M个第一子程序分别对应的指示值,每个第一子程序对应的指示值用于指示执行所述预设测试集时所述每个第一子程序是否被调用;以及,获取预设信息,所述预设信息为所述第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的;所述预设信息中包括N个第二子程序分别对应的指示值;其中,M,N>0;
更新模块402,用于若确定所述第一程序与所述一个或多个第二程序匹配,则使用所述M个第一子程序对应的指示值更新所述预设信息中所述N个第二子程序对应的指示值,得到目标信息。
可选地,所述更新模块402还用于:
若确定所述第一程序与所述一个或多个第二程序不匹配,则将所述N个第二子程序分别对应的指示值添加到所述预设信息中。
可选地,所述第一信息中还包括所述第一程序的标识和所述第一程序的校验值,所述预设信息中还包括所述一个或多个第二程序的标识和所述一个或多个第二程序的校验值;
所述更新模块402用于:
若确定所述第一程序的校验值与所述一个或多个第二程序中第三程序的校验值相同,则从所述N个第二子程序中获取与所述M个第一子程序匹配的M个第二子程序,并根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值;
若确定所述第一程序的标识与所述一个或多个第二程序中第四程序的标识相同,且所述第一程序的校验值与所述一个或多个第二程序的校验值均不相同,则从所述M个第一子程序中获取与所述N个第二子程序中的T个第二子程序匹配的T个第一子程序,并根据所述T个第一子程序对应的指示值更新所述T个第二子程序对应的指示值。
可选地,所述更新模块402用于:
若确定第I个第一子程序对应的指示值为第一指示值,第I个第二子程序对应的指示值为第二指示值,则将所述第I个第二子程序对应的指示值更新为第一指示值;所述第一指示值用于指示执行所述预设测试集时第一子程序或第二子程序被调用;其中,I<M。
可选地,所述M个第一子程序中包括第Y个第一子程序,所述第Y个第一子程序是通过如下方式确定的:
按照预设字节码长度对所述第一程序中的字节码进行检测,若检测到第一预设指示字符,则记录所述第一预设指示字符在所述第一程序中的第一位置信息;所述第一指示字符用于指示所述第Y个第一子程序对应的初始字节码;
对所述第一程序中位于所述第一预设指示字符后的字节码进行检测,若检测到与所述第一预设指示字符对应的第二预设指示字符,则记录所述第二预设指示字符在所述第一程序中的第二位置信息;所述第二指示字符用于指示所述第Y个第一子程序对应的终止字节码;
根据所述第一位置信息和所述第二位置信息,获取所述第一程序中位于所述第一预设指示字符与所述第二预设指示字符之间的字节码,并将所述字节码作为第Y个第一子程序的字节码。
从上述内容可以看出:本发明的上述实施例中,获取第一时刻使用第一程序执行预设测试集得到的第一信息,并获取第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的预设信息;其中,第一程序包括M个第一子程序,第一信息中包括M个第一子程序分别对应的指示值,每个第一子程序用于完成每个第一子程序对应的预设功能,每个第一子程序对应的指示值用于指示执行预设测试集时每个第一子程序是否被调用,预设信息中包括N个第二子程序分别对应的指示值;进一步地,若确定第一程序与一个或多个第二程序匹配,则使用第一信息中包括的M个第一子程序对应的指示值更新预设信息中N个第二子程序对应的指示值,得到目标信息。本发明实施例中,通过以完成预设功能的子程序为单位获取子程序的指示值(即测试结果),可以使得在合并同一个程序对应的多个测试结果的过程中,根据子程序对多个测试结果中的子程序的指示值进行合并,从而可以避免将不同子程序的指示值进行合并所造成的子程序的测试结果丢失的技术问题;也就是说,相比于现有技术采用以一行程序为单位进行合并的方式来说,本发明实施例中的方案可以提高合并得到的覆盖率数据的准确性。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述图2实施例所示的信息处理方法。
基于同一发明构思,本发明实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述图2实施例所示的信息处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种信息处理方法,其特征在于,所述方法包括:
获取第一时刻使用第一程序执行预设测试集得到的第一信息,所述第一程序包括M个第一子程序,所述第一信息包括所述M个第一子程序分别对应的指示值、所述第一程序的标识和所述第一程序的校验值;每个第一子程序用于完成所述每个第一子程序对应的预设功能,所述每个第一子程序对应的指示值用于指示执行所述预设测试集时所述每个第一子程序是否被调用;
获取预设信息,所述预设信息为所述第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的;所述预设信息中包括N个第二子程序分别对应的指示值、所述一个或多个第二程序的标识和所述一个或多个第二程序的校验值;其中,M,N>0;
若确定所述第一程序的校验值与所述一个或多个第二程序中第三程序的校验值相同,则从所述N个第二子程序中获取与所述M个第一子程序匹配的M个第二子程序,并根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值;
若确定所述第一程序的标识与所述一个或多个第二程序中第四程序的标识相同,且所述第一程序的校验值与所述一个或多个第二程序的校验值均不相同,则从所述M个第一子程序中获取与所述N个第二子程序中的T个第二子程序匹配的T个第一子程序,并根据所述T个第一子程序对应的指示值更新所述T个第二子程序对应的指示值,得到目标信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述第一程序与所述一个或多个第二程序不匹配,则将所述N个第二子程序分别对应的指示值添加到所述预设信息中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值,包括:
若确定第I个第一子程序对应的指示值为第一指示值,第I个第二子程序对应的指示值为第二指示值,则将所述第I个第二子程序对应的指示值更新为第一指示值;所述第一指示值用于指示执行所述预设测试集时第一子程序或第二子程序被调用;其中,I<M。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述M个第一子程序中包括第Y个第一子程序,所述第Y个第一子程序是通过如下方式确定的:
按照预设字节码长度对所述第一程序中的字节码进行检测,若检测到第一预设指示字符,则记录所述第一预设指示字符在所述第一程序中的第一位置信息;所述第一指示字符用于指示所述第Y个第一子程序对应的初始字节码;
对所述第一程序中位于所述第一预设指示字符后的字节码进行检测,若检测到与所述第一预设指示字符对应的第二预设指示字符,则记录所述第二预设指示字符在所述第一程序中的第二位置信息;所述第二指示字符用于指示所述第Y个第一子程序对应的终止字节码;
根据所述第一位置信息和所述第二位置信息,获取所述第一程序中位于所述第一预设指示字符与所述第二预设指示字符之间的字节码,并将所述字节码作为第Y个第一子程序的字节码。
5.一种信息处理装置,其特征在于,所述装置包括:
获取模块,用于获取第一时刻使用第一程序执行预设测试集得到的第一信息,所述第一程序包括M个第一子程序,所述第一信息中包括所述M个第一子程序分别对应的指示值、所述第一程序的标识和所述第一程序的校验值,每个第一子程序用于完成所述每个第一子程序对应的预设功能,每个第一子程序对应的指示值用于指示执行所述预设测试集时所述每个第一子程序是否被调用;以及,获取预设信息,所述预设信息为所述第一时刻之后的预设时间段内使用一个或多个第二程序执行预设测试集得到的;所述预设信息中包括N个第二子程序分别对应的指示值、所述一个或多个第二程序的标识和所述一个或多个第二程序的校验值;其中,M,N>0;
更新模块,用于若确定所述第一程序的校验值与所述一个或多个第二程序中第三程序的校验值相同,则从所述N个第二子程序中获取与所述M个第一子程序匹配的M个第二子程序,并根据所述M个第一子程序对应的指示值更新所述M个第二子程序对应的指示值;
若确定所述第一程序的标识与所述一个或多个第二程序中第四程序的标识相同,且所述第一程序的校验值与所述一个或多个第二程序的校验值均不相同,则从所述M个第一子程序中获取与所述N个第二子程序中的T个第二子程序匹配的T个第一子程序,并根据所述T个第一子程序对应的指示值更新所述T个第二子程序对应的指示值,得到目标信息。
6.根据权利要求5所述的装置,其特征在于,所述更新模块还用于:
若确定所述第一程序与所述一个或多个第二程序不匹配,则将所述N个第二子程序分别对应的指示值添加到所述预设信息中。
7.根据权利要求5所述的装置,其特征在于,所述更新模块用于:
若确定第I个第一子程序对应的指示值为第一指示值,第I个第二子程序对应的指示值为第二指示值,则将所述第I个第二子程序对应的指示值更新为第一指示值;所述第一指示值用于指示执行所述预设测试集时第一子程序或第二子程序被调用;其中,I<M。
8.根据权利要求5至7中任一项所述的装置,其特征在于,所述M个第一子程序中包括第Y个第一子程序,所述第Y个第一子程序是通过如下方式确定的:
按照预设字节码长度对所述第一程序中的字节码进行检测,若检测到第一预设指示字符,则记录所述第一预设指示字符在所述第一程序中的第一位置信息;所述第一指示字符用于指示所述第Y个第一子程序对应的初始字节码;
对所述第一程序中位于所述第一预设指示字符后的字节码进行检测,若检测到与所述第一预设指示字符对应的第二预设指示字符,则记录所述第二预设指示字符在所述第一程序中的第二位置信息;所述第二指示字符用于指示所述第Y个第一子程序对应的终止字节码;
根据所述第一位置信息和所述第二位置信息,获取所述第一程序中位于所述第一预设指示字符与所述第二预设指示字符之间的字节码,并将所述字节码作为第Y个第一子程序的字节码。
9.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至4任一项所述的方法。
10.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至4任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249319.0A CN110008124B (zh) | 2019-03-29 | 2019-03-29 | 一种信息处理方法及装置 |
PCT/CN2020/076491 WO2020199789A1 (zh) | 2019-03-29 | 2020-02-24 | 一种信息处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249319.0A CN110008124B (zh) | 2019-03-29 | 2019-03-29 | 一种信息处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008124A CN110008124A (zh) | 2019-07-12 |
CN110008124B true CN110008124B (zh) | 2024-06-28 |
Family
ID=67168786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910249319.0A Active CN110008124B (zh) | 2019-03-29 | 2019-03-29 | 一种信息处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110008124B (zh) |
WO (1) | WO2020199789A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008124B (zh) * | 2019-03-29 | 2024-06-28 | 深圳前海微众银行股份有限公司 | 一种信息处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502901A (zh) * | 2016-10-24 | 2017-03-15 | 网易(杭州)网络有限公司 | 覆盖率检测方法、装置和设备 |
CN107977309A (zh) * | 2016-10-25 | 2018-05-01 | 腾讯科技(北京)有限公司 | 一种数据处理方法及其装置、系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001264713A1 (en) * | 2000-05-19 | 2001-12-03 | Wu-Hon Francis Leung | Methods and apparatus for preventing software modifications from invalidating previously passed integration tests |
JP2007249696A (ja) * | 2006-03-16 | 2007-09-27 | Hows:Kk | 情報処理システム、情報処理装置、サーバ装置、およびプログラム |
CN101661425B (zh) * | 2008-08-26 | 2012-03-21 | 国际商业机器公司 | 测试覆盖分析方法和装置 |
CN103902606B (zh) * | 2012-12-28 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种数据库的数据处理方法和系统 |
CN105988926B (zh) * | 2015-02-13 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 多版本测试数据的处理方法和装置 |
CN106547680A (zh) * | 2015-09-17 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 覆盖率测试中的数据处理方法和装置 |
CN108959059B (zh) * | 2017-05-19 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种测试方法以及测试平台 |
CN108829580B (zh) * | 2018-05-07 | 2022-09-23 | 百度在线网络技术(北京)有限公司 | 多版本测试数据处理方法、装置、设备及存储介质 |
CN108958737A (zh) * | 2018-06-13 | 2018-12-07 | 上海微小卫星工程中心 | 一种星载软件在轨编程方法 |
CN109388566B (zh) * | 2018-09-27 | 2022-07-29 | 北京城市网邻信息技术有限公司 | 一种代码覆盖率分析方法、装置、设备及存储介质 |
CN110008124B (zh) * | 2019-03-29 | 2024-06-28 | 深圳前海微众银行股份有限公司 | 一种信息处理方法及装置 |
-
2019
- 2019-03-29 CN CN201910249319.0A patent/CN110008124B/zh active Active
-
2020
- 2020-02-24 WO PCT/CN2020/076491 patent/WO2020199789A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502901A (zh) * | 2016-10-24 | 2017-03-15 | 网易(杭州)网络有限公司 | 覆盖率检测方法、装置和设备 |
CN107977309A (zh) * | 2016-10-25 | 2018-05-01 | 腾讯科技(北京)有限公司 | 一种数据处理方法及其装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110008124A (zh) | 2019-07-12 |
WO2020199789A1 (zh) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019019647A1 (zh) | 应用程序测试范围确定方法、系统、服务器和存储介质 | |
CN107223257B (zh) | 测试方法、测试服务器及系统 | |
CN112307124B (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN113076310A (zh) | 实时数据仓库的数据校验方法、系统及计算机可读介质 | |
CN110275878B (zh) | 业务数据检测方法、装置、计算机设备及存储介质 | |
CN110134595B (zh) | Svn资源库测试前的分析方法、装置、计算机设备 | |
CN106201857B (zh) | 测试用例的选取方法及装置 | |
CN111124894B (zh) | 代码覆盖率的处理方法、装置和计算机设备 | |
CN112306495A (zh) | 图片校验方法、装置、计算机设备及计算机可读存储介质 | |
CN110008124B (zh) | 一种信息处理方法及装置 | |
CN111221721A (zh) | 一种单元测试案例自动化录制和执行方法及装置 | |
CN111737349B (zh) | 数据一致性校验方法及装置 | |
CN108763092B (zh) | 一种基于交叉验证的代码缺陷检测方法及装置 | |
CN111382052A (zh) | 代码质量评价方法、装置及电子设备 | |
CN111538673B (zh) | 基于测试用例的处理方法、装置、设备和存储介质 | |
CN114021131A (zh) | 一种获取数据分析图谱的方法、装置及电子设备 | |
CN113591147A (zh) | 一种数据抽取的方法、装置、计算机设备及存储介质 | |
CN111338956A (zh) | 一种自动化的压测方法、装置、设备和存储介质 | |
CN113450114B (zh) | 基于区块链的数据文件获取方法及装置 | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
CN107861725B (zh) | 一种iOS数据反向自动解析策略 | |
CN107885640B (zh) | 一种硬盘管理方法及装置 | |
CN110609790A (zh) | 解析程序测试方法、装置、介质和计算机设备 | |
CN110517010A (zh) | 一种数据处理方法、系统及存储介质 | |
CN105678166B (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 |